<?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>47422</bug_id>
          
          <creation_ts>2010-10-08 10:06:14 -0700</creation_ts>
          <short_desc>DOMWindow constructor directly callable</short_desc>
          <delta_ts>2011-01-04 16:20:23 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://direct.tesco.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>ossy</cc>
    
    <cc>tim.smith24</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>291731</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-10-08 10:06:14 -0700</bug_when>
    <thetext>This defect is a result of tracking down &lt;rdar://problem/8281342&gt;.

The original problem is that Safari SPODs on most mouse events on direct.tesco.com.

The problem was tracked down to a deep copy implementation that starts with the code
    var objectClone = new this.constructor()
Other browsers disallow calls to DOMWindow.constructor() while webcore defaults to the super class constructor for Object.

There are other issues with the deep copy javascript method specifically not handling reference loops which results in unbounded recursion (and thus the SPOD).  Disallowing direct calls to DOMWindow.constructor fixes the issue as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291894</commentid>
    <comment_count>1</comment_count>
      <attachid>70296</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-10-08 15:13:19 -0700</bug_when>
    <thetext>Created attachment 70296
Patch to add DOMWindow constructor

This patch adds a constructor to DOMWindow objects.  That constructor is not directly callable in javascript.

Several tests were updated and one test was added.

A separate &quot;patch&quot; highlights the changes to generated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291895</commentid>
    <comment_count>2</comment_count>
      <attachid>70297</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-10-08 15:15:37 -0700</bug_when>
    <thetext>Created attachment 70297
This patch shows the changes to generated code.

This &quot;patch&quot; shows the changes to JSDOMWindow.cpp that result from https://bugs.webkit.org/attachment.cgi?id=70296</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291904</commentid>
    <comment_count>3</comment_count>
      <attachid>70296</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-10-08 15:23:40 -0700</bug_when>
    <thetext>Comment on attachment 70296
Patch to add DOMWindow constructor

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

Code changes look sane, just not 100% happy with the .constructor test case.

&gt; LayoutTests/fast/dom/Window/window-constructor-expected.txt:1
&gt; +FAIL: Timed out waiting for notifyDone to be called

This indicates that you&apos;re not calling notifyDone() when the test finishes -- but is it really necessary for this test to be an onload?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291915</commentid>
    <comment_count>4</comment_count>
      <attachid>70296</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-08 15:40:04 -0700</bug_when>
    <thetext>Comment on attachment 70296
Patch to add DOMWindow constructor

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

&gt; LayoutTests/fast/dom/Window/window-constructor.html:6
&gt; +    window.layoutTestController.waitUntilDone();

No need to call waitUntilDone() here.

&gt; LayoutTests/fast/dom/Window/window-property-descriptors-expected.txt:500
&gt; +FAIL Object.getOwnPropertyDescriptor(window, &apos;constructor&apos;) should be undefined. Was [object Object]

You should change this test to have the correct assumption about constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291917</commentid>
    <comment_count>5</comment_count>
      <attachid>70305</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-10-08 15:42:34 -0700</bug_when>
    <thetext>Created attachment 70305
Patch updated with suggested test changes

This is the original patch with suggested test changes / simplifications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291936</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-08 16:12:45 -0700</bug_when>
    <thetext>There are still tests that changed from PASS to FAIL. If we believe that the new results are correct, expectations should be changed to keep tests passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291986</commentid>
    <comment_count>7</comment_count>
      <attachid>70323</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-10-08 17:48:16 -0700</bug_when>
    <thetext>Created attachment 70323
Patch with additional tests fixes

This patch fixes the other three tests that had new FAIL&apos;s which have been revised to PASSes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291988</commentid>
    <comment_count>8</comment_count>
      <attachid>70323</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-08 17:52:57 -0700</bug_when>
    <thetext>Comment on attachment 70323
Patch with additional tests fixes

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

Looks like we have good test coverage of this. Great fix.

&gt; WebCore/WebCore.xcodeproj/project.pbxproj:-21153
&gt; -			developmentRegion = English;

You are using the old Xcode?

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2851
&gt; -    push(@$outputArray, &quot;    putDirect(exec-&gt;propertyNames().prototype, ${protoClassName}::self(exec, globalObject), DontDelete | ReadOnly);\n&quot;);
&gt; +    if ($interfaceName eq &quot;DOMWindow&quot;) {
&gt; +        push(@$outputArray, &quot;    putDirect(exec-&gt;propertyNames().prototype, globalObject-&gt;prototype(), DontDelete | ReadOnly);\n&quot;);
&gt; +    } else {
&gt; +        push(@$outputArray, &quot;    putDirect(exec-&gt;propertyNames().prototype, ${protoClassName}::self(exec, globalObject), DontDelete | ReadOnly);\n&quot;);
&gt; +    }

Seems like it would be slightly cleaner to just use a variable for the prototype expression. But I think this is OK as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292002</commentid>
    <comment_count>9</comment_count>
      <attachid>70323</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-08 18:21:33 -0700</bug_when>
    <thetext>Comment on attachment 70323
Patch with additional tests fixes

Rejecting patch 70323 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--ignore-builders&apos;, &apos;--quiet&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 70323]&quot; exit_code: 1
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=70323&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=47422&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Updating working directory
Processing patch 70323 from bug 47422.
ERROR: /Projects/CommitQueue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/4342002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292535</commentid>
    <comment_count>10</comment_count>
      <attachid>70447</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-10-11 10:23:52 -0700</bug_when>
    <thetext>Created attachment 70447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292558</commentid>
    <comment_count>11</comment_count>
      <attachid>70447</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-11 11:01:48 -0700</bug_when>
    <thetext>Comment on attachment 70447
Patch

Rejecting patch 70447 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--ignore-builders&apos;, &apos;--quiet&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 70447]&quot; exit_code: 2
Last 500 characters of output:
/ToObject-001.js
	M	WebCore/ChangeLog
	M	WebCore/bindings/scripts/CodeGeneratorJS.pm
	M	WebCore/page/DOMWindow.idl
A repository hook failed: Commit blocked by pre-commit hook (exit code 1) with output:
svnlook: Can&apos;t write to stream: Broken pipe

    The following ChangeLog files contain OOPS:

        trunk/LayoutTests/ChangeLog

    Please don&apos;t ever say &quot;OOPS&quot; in a ChangeLog file.
 at /usr/local/git/libexec/git-core/git-svn line 572


Failed to run &quot;[u&apos;git&apos;, u&apos;svn&apos;, u&apos;dcommit&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4304028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292561</commentid>
    <comment_count>12</comment_count>
      <attachid>70454</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2010-10-11 11:07:59 -0700</bug_when>
    <thetext>Created attachment 70454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292831</commentid>
    <comment_count>13</comment_count>
      <attachid>70454</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-11 19:13:06 -0700</bug_when>
    <thetext>Comment on attachment 70454
Patch

Clearing flags on attachment: 70454

Committed r69553: &lt;http://trac.webkit.org/changeset/69553&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292832</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-11 19:13:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292845</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-11 20:13:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/69553 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292873</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-10-12 00:37:40 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; http://trac.webkit.org/changeset/69553 might have broken GTK Linux 64-bit Debug

And Qt bot too ... :S

Qt specific expected results updated: http://trac.webkit.org/changeset/69562</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293061</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-12 12:39:18 -0700</bug_when>
    <thetext>It looks like this broke Windows: http://build.webkit.org/results/Windows%20Release%20(Tests)/r69590%20(5075)/results.html

(The SVG failures are unrelated.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329282</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-04 16:20:23 -0800</bug_when>
    <thetext>*** Bug 44234 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70296</attachid>
            <date>2010-10-08 15:13:19 -0700</date>
            <delta_ts>2010-10-08 15:42:34 -0700</delta_ts>
            <desc>Patch to add DOMWindow constructor</desc>
            <filename>47422.patch</filename>
            <type>text/plain</type>
            <size>18725</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAtMDggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hhbmdlZCBET01XaW5kb3cgdG8gaGF2ZSBhIGNvbnN0cnVjdG9yLiAgVXBkYXRlZCB0aGUgY29k
ZSBnZW5lcmF0b3IKKyAgICAgICAgdG8gYWRkIHNlY3VyaXR5IGNoZWNrcyB0byB0aGUgY29uc3Ry
dWN0b3JzIGlmIENoZWNrRG9tYWluU2VjdXJpdHkgaXMgCisgICAgICAgIHNldC4gIEFsc28gY2hh
bmdlZCB0aGUgY29uc3RydWN0b3IgZ2VuZXJhdGlvbiBjb2RlIHRvIHVzZSAKKyAgICAgICAgZ2xv
YmFsT2JqZWN0LT5wcm90b3R5cGUoKSBmb3IgRE9NV2luZG93IG9iamVjdCBwcm90b3R5cGVzIGlu
c3RlYWQKKyAgICAgICAgb2YgInNlbGYiLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDc0MjIKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9XaW5kb3cv
d2luZG93LWNvbnN0cnVjdG9yLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMC0x
MC0wOCAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA2OTQxOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE2MzIsNiArMTYz
MiwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKVxuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IHN0YXRpY19j
YXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CisKKyAgICAgICAgICAg
ICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1
cml0eSJ9KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghZG9tT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKVxuIik7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtc
biIpOworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKGV4ZWMsIGRvbU9i
amVjdC0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG4iKTsKICAgICAgICAgICAgIH0KQEAgLTI4MzgsNyArMjg0NCwxMSBAQCBzdWIg
R2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIk
e2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoJHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX06OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgp
KSwgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0g
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVz
KCkucHJvdG90eXBlLCAke3Byb3RvQ2xhc3NOYW1lfTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3Qp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkpO1xuIik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJl
Y3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LT5wcm90b3R5
cGUoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIH0KICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVy
KGV4ZWMsICR7bnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzfSksIFJlYWRPbmx5IHwgRG9udERl
bGV0ZSB8IERvbnRFbnVtKTtcbiIpIGlmICRudW1iZXJPZmNvbnN0cnVjdFBhcmFtZXRlcnM7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIApJbmRleDogV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJl
dmlzaW9uIDY5NDE4KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDcgKzM4LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEN1c3RvbU5hdGl2
ZUNvbnZlcnRlciwKICAgICAgICAgQ3VzdG9tUHV0RnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFy
Z2V0LAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEV4dGVuZHNET01HbG9iYWxP
YmplY3QsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAogICAgICAgICBMZWdhY3lQ
YXJlbnQ9SlNET01XaW5kb3dCYXNlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2OTQyMikKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTEw
LTA4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIEFkZGVk
IGFuZCBjaGFuZ2VkIHRlc3RzIHRvIHZlcmlmeSB0aGF0IERPTVdpbmRvdyBvYmplY3RzIGFyZQor
ICAgICAgICBjcmVhdGUgd2l0aCBhcHByb3ByaWF0ZSBjb25zdHJ1Y3RvcnMgYW5kIHRoYXQgdGhv
c2UgY29uc3RydWN0b3JzCisgICAgICAgIGFyZSBub3QgY2FsbGFibGUgZGlyZWN0bHkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQyMgorCisgICAg
ICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3Jp
cHRvcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0
YW5jZS0yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvY29u
c3RydWN0b3JzLWNhY2hlZC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNv
bGUtZGlyLWdsb2JhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogamF2YS9sYzMvSlNPYmplY3Qv
VG9KU09iamVjdC0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGphdmEvbGMzL0pTT2JqZWN0
L1RvT2JqZWN0LTAwMS1leHBlY3RlZC50eHQ6CisKIDIwMTAtMTAtMDggIE1pY2hhZWwgU2Fib2Zm
ICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWlu
aGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtODEsNiArODEsNyBAQCBQQVNTIERPTVRva2VuTGlzdCBmcm9tIGlubmVyLmRvY3Vt
ZW50LmZvCiBQQVNTIERPTVRva2VuTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
Zm9ybXMudGVzdEZvcm0uMC5jbGFzc0xpc3QuY29uc3RydWN0b3IKIFBBU1MgRE9NVG9rZW5MaXN0
UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC4wLmNsYXNzTGlz
dC5fX3Byb3RvX18KIFBBU1MgRE9NV2luZG93IGZyb20gaW5uZXIKK1BBU1MgRE9NV2luZG93Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1l
bnQuZGVmYXVsdFZpZXcuY29uc3RydWN0b3IKIFBBU1MgRE9NV2luZG93UHJvdG90eXBlIGZyb20g
aW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3
Ll9fcHJvdG9fXwogUEFTUyBEb2N1bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZv
cm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5fX3Byb3RvX18uX19wcm90b19fCiBQQVNTIEVs
ZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLl9fcHJv
dG9fXy5fX3Byb3RvX18uX19wcm90b19fCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTMwLDcgKzEzMCw3IEBAIE90aGVyCiAKIFBBU1MganNXcmFwcGVyQ2xhc3Mod2lu
ZG93KSBpcyAnRE9NV2luZG93JwogUEFTUyBqc1dyYXBwZXJDbGFzcyh3aW5kb3cuX19wcm90b19f
KSBpcyAnRE9NV2luZG93UHJvdG90eXBlJwotRkFJTCBqc1dyYXBwZXJDbGFzcyh3aW5kb3cuY29u
c3RydWN0b3IpIHNob3VsZCBiZSBET01XaW5kb3dDb25zdHJ1Y3Rvci4gV2FzIEZ1bmN0aW9uLgor
UEFTUyBqc1dyYXBwZXJDbGFzcyh3aW5kb3cuY29uc3RydWN0b3IpIGlzICdET01XaW5kb3dDb25z
dHJ1Y3RvcicKIAogSFRNTCBET00KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWNvbnN0cnVjdG9y
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1IEBACitGQUlMOiBUaW1lZCBv
dXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKK1Rlc3QgZm9yIGJ1ZyA0NzQy
Mjogd2luZG93IGNvbnN0cnVjdG9yIHNob3VsZG4ndCBiZSBkaXJlY3RseSBjYWxsYWJsZS4KKwor
V2luZG93IGNvbnN0cnVjdG9yIHByb3RvdHlwZSBpcyB3aW5kb3cgcHJvdG90eXBlOiBQQVNTCitX
aW5kb3cgY29uc3RydWN0b3Igbm90IGNhbGxhYmxlOiBQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWNvbnN0cnVjdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACis8aHRtbD4KKzxoZWFkPjwvaGVhZD4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSwg
Y29sb3IpIAoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7
CisgICAgaWYgKGNvbG9yKQorICAgIHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBo
KTsKK30KKyAgICAKK2Z1bmN0aW9uIHRlc3RDb25zdHJ1Y3RvclByb3RvKCkKK3sKKyAgICB2YXIg
dGVzdE5hbWUgPSAiV2luZG93IGNvbnN0cnVjdG9yIHByb3RvdHlwZSBpcyB3aW5kb3cgcHJvdG90
eXBlIgorICAgIGlmICh3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlID09PSB3aW5kb3cuX19w
cm90b19fKQorICAgICAgICBsb2codGVzdE5hbWUgKyAiOiBQQVNTIiwgImdyZWVuIik7CisgICAg
ZWxzZQorICAgICAgICBsb2codGVzdE5hbWUgKyAiOiBGQUlMIiwgInJlZCIpOworfQorCitmdW5j
dGlvbiB0ZXN0Q29uc3RydWN0b3JOb3RDYWxsYWJsZSgpCit7CisgICAgdmFyIHRlc3ROYW1lID0g
IldpbmRvdyBjb25zdHJ1Y3RvciBub3QgY2FsbGFibGUiCisgICAgCisgICAgdmFyIHRocmV3RXhj
ID0gZmFsc2U7CisgICAgCisgICAgdHJ5IHsKKyAgICAgICAgbmV3VyA9IHdpbmRvdy5jb25zdHJ1
Y3RvcigpCisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHRocmV3RXhjID0gdHJ1ZTsKKyAgICB9
CisKKyAgICBpZiAodGhyZXdFeGMpIHsKKyAgICAgICAgbG9nKHRlc3ROYW1lICsgIjogUEFTUyIs
ICJncmVlbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGxvZyh0ZXN0TmFtZSArICI6IEZBSUwi
LCAicmVkIik7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB0ZXN0Q29uc3Ry
dWN0b3JQcm90bygpOworICAgIHRlc3RDb25zdHJ1Y3Rvck5vdENhbGxhYmxlKCk7ICAgICAgCit9
Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0ndGVzdCgpJz4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9
Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NDIyIj5idWcgNDc0MjI8
L2E+Ogord2luZG93IGNvbnN0cnVjdG9yIHNob3VsZG4ndCBiZSBkaXJlY3RseSBjYWxsYWJsZS48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0yMTkyLDYgKzIxOTIsNDYgQEAgd2luZG93LmNvbnNvbGUudGltZSBbZnVuY3Rpb25dCiB3aW5k
b3cuY29uc29sZS50aW1lRW5kIFtmdW5jdGlvbl0KIHdpbmRvdy5jb25zb2xlLnRyYWNlIFtmdW5j
dGlvbl0KIHdpbmRvdy5jb25zb2xlLndhcm4gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9y
IFtvYmplY3QgRE9NV2luZG93Q29uc3RydWN0b3JdCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90
eXBlIFtvYmplY3QgRE9NV2luZG93UHJvdG90eXBlXQord2luZG93LmNvbnN0cnVjdG9yLnByb3Rv
dHlwZS5hZGRFdmVudExpc3RlbmVyIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90
b3R5cGUuYWxlcnQgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5hdG9i
IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuYmx1ciBbZnVuY3Rpb25d
Cit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmJ0b2EgW2Z1bmN0aW9uXQord2luZG93LmNv
bnN0cnVjdG9yLnByb3RvdHlwZS5jYXB0dXJlRXZlbnRzIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25z
dHJ1Y3Rvci5wcm90b3R5cGUuY2xlYXJJbnRlcnZhbCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3Ry
dWN0b3IucHJvdG90eXBlLmNsZWFyVGltZW91dCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0
b3IucHJvdG90eXBlLmNsb3NlIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5
cGUuY29uZmlybSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmNyZWF0
ZUJsb2JVUkwgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5kaXNwYXRj
aEV2ZW50IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuZmluZCBbZnVu
Y3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmZvY3VzIFtmdW5jdGlvbl0KK3dp
bmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHlsZSBbZnVuY3Rpb25dCit3
aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmdldE1hdGNoZWRDU1NSdWxlcyBbZnVuY3Rpb25d
Cit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmdldFNlbGVjdGlvbiBbZnVuY3Rpb25dCit3
aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLm1vdmVCeSBbZnVuY3Rpb25dCit3aW5kb3cuY29u
c3RydWN0b3IucHJvdG90eXBlLm1vdmVUbyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3Iu
cHJvdG90eXBlLm9wZW4gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5v
cGVuRGF0YWJhc2UgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5wb3N0
TWVzc2FnZSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnByaW50IFtm
dW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucHJvbXB0IFtmdW5jdGlvbl0K
K3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucmVsZWFzZUV2ZW50cyBbZnVuY3Rpb25dCit3
aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgW2Z1bmN0aW9u
XQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5yZXNpemVCeSBbZnVuY3Rpb25dCit3aW5k
b3cuY29uc3RydWN0b3IucHJvdG90eXBlLnJlc2l6ZVRvIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25z
dHJ1Y3Rvci5wcm90b3R5cGUucmV2b2tlQmxvYlVSTCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3Ry
dWN0b3IucHJvdG90eXBlLnNjcm9sbCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJv
dG90eXBlLnNjcm9sbEJ5IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUu
c2Nyb2xsVG8gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zZXRJbnRl
cnZhbCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnNldFRpbWVvdXQg
W2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zaG93TW9kYWxEaWFsb2cg
W2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zdG9wIFtmdW5jdGlvbl0K
K3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUud2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVU
b1BhZ2UgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS53ZWJraXRDb252
ZXJ0UG9pbnRGcm9tUGFnZVRvTm9kZSBbZnVuY3Rpb25dCiB3aW5kb3cuY3J5cHRvIFt1bmRlZmlu
ZWRdCiB3aW5kb3cuZGVjb2RlVVJJIFtmdW5jdGlvbl0KIHdpbmRvdy5kZWNvZGVVUklDb21wb25l
bnQgW2Z1bmN0aW9uXQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ5
Nyw3ICs0OTcsNyBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnY2xlYXJUaW1lb3V0
JykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdp
bmRvdywgJ2Nsb3NlJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHdpbmRvdywgJ2NvbmZpcm0nKSBpcyB1bmRlZmluZWQuCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnY29uc3RydWN0b3InKSBpcyB1bmRlZmlu
ZWQuCitGQUlMIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnY29uc3Ry
dWN0b3InKSBzaG91bGQgYmUgdW5kZWZpbmVkLiBXYXMgW29iamVjdCBPYmplY3RdCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZGlzcGF0Y2hFdmVudCcpIGlz
IHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdmaW5kJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHdpbmRvdywgJ2ZvY3VzJykgaXMgdW5kZWZpbmVkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9ycy1jYWNoZWQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9ycy1jYWNoZWQuanMJ
KHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2Nv
bnN0cnVjdG9ycy1jYWNoZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzEsMTkgQEAKIGRl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IG9iamVjdHMgd2l0aCBzZWN1cml0eSBy
ZXN0cmljdGlvbnMgYXJlIGNhY2hlZCBjb3JyZWN0bHkiKTsKIAotdmFyIGNvbnN0cnVjdG9ycyA9
IFsiSW1hZ2UiLCAiT3B0aW9uIiwgIlhNTEh0dHBSZXF1ZXN0IiwgIkF1ZGlvIl07Cit2YXIgY3Rv
cnMgPSBbIkltYWdlIiwgIk9wdGlvbiIsICJYTUxIdHRwUmVxdWVzdCIsICJBdWRpbyJdOwogCi1m
b3IgKHZhciBpID0gMDsgaSA8IGNvbnN0cnVjdG9ycy5sZW5ndGg7IGkrKykgewotICAgIHZhciBj
b25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yc1tpXTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgY3RvcnMu
bGVuZ3RoOyBpKyspIHsKKyAgICB2YXIgY3RvciA9IGN0b3JzW2ldOwogICAgIHRyeSB7CiAgICAg
ICAgIC8vIFRlc3QgcmV0cmlldmluZyB0aGUgb2JqZWN0IHR3aWNlIHJlc3VsdHMgaW4gdGhlIHNh
bWUgb2JqZWN0Ci0gICAgICAgIHNob3VsZEJlKGNvbnN0cnVjdG9yLCBjb25zdHJ1Y3Rvcik7Cisg
ICAgICAgIHNob3VsZEJlKGN0b3IsIGN0b3IpOwogCiAgICAgICAgIC8vIEJlIHBhcmFub2lkIC0t
IG1ha2Ugc3VyZSB0aGF0IHNldHRpbmcgYSBwcm9wZXJ0eSByZXN1bHRzIGluIHRoYXQgcHJvcGVy
dHkKICAgICAgICAgLy8gc3RheXMKLSAgICAgICAgdGhpc1tjb25zdHJ1Y3Rvcl0udGVzdFByb3Bl
cnR5ID0gInByb3BlcnR5IHNldCBzdWNjZXNzZnVsbHkiOwotICAgICAgICBzaG91bGRCZShjb25z
dHJ1Y3RvciArICIudGVzdFByb3BlcnR5IiwgJyJwcm9wZXJ0eSBzZXQgc3VjY2Vzc2Z1bGx5Iicp
OworICAgICAgICB0aGlzW2N0b3JdLnRlc3RQcm9wZXJ0eSA9ICJwcm9wZXJ0eSBzZXQgc3VjY2Vz
c2Z1bGx5IjsKKyAgICAgICAgc2hvdWxkQmUoY3RvciArICIudGVzdFByb3BlcnR5IiwgJyJwcm9w
ZXJ0eSBzZXQgc3VjY2Vzc2Z1bGx5IicpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdGVz
dEZhaWxlZCgiVGVzdGluZyAiICsgY29uc3RydWN0b3IgKyAiIHRocmV3ICIgKyBlKTsKKyAgICAg
ICAgdGVzdEZhaWxlZCgiVGVzdGluZyAiICsgY3RvciArICIgdGhyZXcgIiArIGUpOwogICAgIH0K
IH0KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM3NCw2ICszNzQsOCBA
QCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpCiAKIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3
aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZy
YW1lLWlmcmFtZS1mb3ItZ2V0LXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwuIERvbWFp
bnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZy
YW1lLWZvci1nZXQtdGVzdC5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbC4gRG9tYWlucywgcHJv
dG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCiBUaGlzIHRlc3QgY2hlY2tzIGNyb3NzLWZy
YW1lIGFjY2VzcyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMwOSkuCiAKIApAQCAtNTE1
LDYgKzUxNyw3IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmNhcHR1cmVFdmVudHMKIFBB
U1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmNsZWFySW50ZXJ2YWwnKSBzaG91bGQgYmUgJ2ZhbHNl
JyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5jbGVhclRpbWVvdXQnKSBzaG91
bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5jb25maXJt
Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgorUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cu
Y29uc3RydWN0b3InKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3Rh
cmdldFdpbmRvdy5maW5kJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0
KCd0YXJnZXRXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmdldE1hdGNoZWRDU1NSdWxlcycpIHNob3Vs
ZCBiZSAnZmFsc2UnIGFuZCBpcy4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sCShyZXZpc2lv
biA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0LDcgQEAKICAgICAg
ICAgICAgICJjbGVhckludGVydmFsIiwgCiAgICAgICAgICAgICAiY2xlYXJUaW1lb3V0IiwgCiAg
ICAgICAgICAgICAiY29uZmlybSIsCisgICAgICAgICAgICAiY29uc3RydWN0b3IiLAogICAgICAg
ICAgICAgImZpbmQiLCAKICAgICAgICAgICAgICJnZXRDb21wdXRlZFN0eWxlIiwKICAgICAgICAg
ICAgICJnZXRNYXRjaGVkQ1NTUnVsZXMiLCAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCShy
ZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLXB1dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNiArMjA2LDcgQEAg
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJn
ZXRXaW5kb3csICJjbGVhclRpbWVvdXQiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJn
ZXRXaW5kb3csICJjbG9zZSIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRv
dywgImNvbmZpcm0iKTsKKyAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJj
b25zdHJ1Y3RvciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgImV2
YWwiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJmaW5kIik7CiAg
ICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiZm9jdXMiKTsKSW5kZXg6IExh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWRpci1nbG9iYWwtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWRpci1nbG9iYWwtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
LWRpci1nbG9iYWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQCBU
ZXN0cyB0aGF0IGNvbnNvbGUgZHVtcHMgZ2xvYmFsIG9iamVjdCB3CiB7CiAgICAgQXJyYXkgOiAx
CiAgICAgY29uc29sZSA6IDEKKyAgICBjb25zdHJ1Y3RvciA6IDEKICAgICBkb2N1bWVudCA6IDEK
ICAgICBkb2l0IDogMQogICAgIGV2YWwgOiAxCkluZGV4OiBMYXlvdXRUZXN0cy9qYXZhL2xjMy9K
U09iamVjdC9Ub0pTT2JqZWN0LTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2phdmEvbGMzL0pTT2JqZWN0L1RvSlNPYmplY3Qt
MDAxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTYsNyArMTYsOSBAQCBQQVNTIGpz
b2Muc2V0SlNPYmplY3QoIE15T2JqZWN0ICk7IGpzb2MuCiBQQVNTIGpzb2MuZ2V0SlNPYmplY3Qo
KS5jb25zdHJ1Y3RvciBpcyBGdW5jdGlvbgogRkFJTCBqc29jLnNldEpTT2JqZWN0KCBUSElTICk7
IGpzb2MuUFVCX0pTT0JKRUNUIHNob3VsZCBiZSBbb2JqZWN0IERPTVdpbmRvd10uIFdhcyBbb2Jq
ZWN0IERPTVdpbmRvd10uCiBQQVNTIGpzb2Muc2V0SlNPYmplY3QoIFRISVMgKTsganNvYy5nZXRK
U09iamVjdCgpIGlzIHRoaXMKLVBBU1MganNvYy5nZXRKU09iamVjdCgpLmNvbnN0cnVjdG9yIGlz
IE9iamVjdAorRkFJTCBqc29jLmdldEpTT2JqZWN0KCkuY29uc3RydWN0b3Igc2hvdWxkIGJlIGZ1
bmN0aW9uIE9iamVjdCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IChvZiB0eXBlIGZ1bmN0aW9u
KS4gV2FzIFtvYmplY3QgRE9NV2luZG93Q29uc3RydWN0b3JdIChvZiB0eXBlIG9iamVjdCkuCiBG
QUlMIGpzb2Muc2V0SlNPYmplY3QoIE1hdGggKTsganNvYy5QVUJfSlNPQkpFQ1Qgc2hvdWxkIGJl
IFtvYmplY3QgTWF0aF0uIFdhcyBbb2JqZWN0IE1hdGhdLgogUEFTUyBqc29jLnNldEpTT2JqZWN0
KCBNYXRoICk7IGpzb2MuZ2V0SlNPYmplY3QoKSBpcyBNYXRoCiBQQVNTIGpzb2MuZ2V0SlNPYmpl
Y3QoKS5jb25zdHJ1Y3RvciBpcyBPYmplY3QKSW5kZXg6IExheW91dFRlc3RzL2phdmEvbGMzL0pT
T2JqZWN0L1RvT2JqZWN0LTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvamF2YS9sYzMvSlNPYmplY3QvVG9PYmplY3QtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
Njk0MTgpCisrKyBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09iamVjdC9Ub09iamVjdC0wMDEtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw5IEBAIFBBU1MgZHQuc2V0T2Jq
ZWN0KCBNeU9iamVjdCApOyBkdC5nZXRPYmoKIFBBU1MgZHQuZ2V0T2JqZWN0KCkuY29uc3RydWN0
b3IgaXMgRnVuY3Rpb24KIEZBSUwgZHQuc2V0T2JqZWN0KCBUSElTICk7IGR0LlBVQl9PQkpFQ1Qg
c2hvdWxkIGJlIFtvYmplY3QgRE9NV2luZG93XS4gV2FzIFtvYmplY3QgRE9NV2luZG93XS4KIFBB
U1MgZHQuc2V0T2JqZWN0KCBUSElTICk7IGR0LmdldE9iamVjdCgpIGlzIHRoaXMKLVBBU1MgZHQu
Z2V0T2JqZWN0KCkuY29uc3RydWN0b3IgaXMgT2JqZWN0CitGQUlMIGR0LmdldE9iamVjdCgpLmNv
bnN0cnVjdG9yIHNob3VsZCBiZSBmdW5jdGlvbiBPYmplY3QoKSB7CisgICAgW25hdGl2ZSBjb2Rl
XQorfSAob2YgdHlwZSBmdW5jdGlvbikuIFdhcyBbb2JqZWN0IERPTVdpbmRvd0NvbnN0cnVjdG9y
XSAob2YgdHlwZSBvYmplY3QpLgogRkFJTCBkdC5zZXRPYmplY3QoIE1hdGggKTsgZHQuUFVCX09C
SkVDVCBzaG91bGQgYmUgW29iamVjdCBNYXRoXS4gV2FzIFtvYmplY3QgTWF0aF0uCiBQQVNTIGR0
LnNldE9iamVjdCggTWF0aCApOyBkdC5nZXRPYmplY3QoKSBpcyBNYXRoCiBQQVNTIGR0LmdldE9i
amVjdCgpLmNvbnN0cnVjdG9yIGlzIE9iamVjdAo=
</data>
<flag name="review"
          id="60116"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70297</attachid>
            <date>2010-10-08 15:15:37 -0700</date>
            <delta_ts>2010-10-11 11:08:24 -0700</delta_ts>
            <desc>This patch shows the changes to generated code.</desc>
            <filename>generated.patch</filename>
            <type>text/plain</type>
            <size>12711</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdp
bmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RPTVdpbmRvdy5oCShQcmlvcikKKysrIFdlYktpdEJ1aWxkL1JlbGVhc2UvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdy5oCShVcGRhdGVkKQpAQCAtNTcsNiArNTcs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlZmluZVNldHRlcihKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBz
ZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgdmlydHVhbCBKU0M6OkpT
VmFsdWUgbG9va3VwR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpOwogICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGxvb2t1cFNldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKKyAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU0dsb2JhbE9iamVjdCopOwogCiAgICAgLy8gQ3VzdG9tIGF0dHJpYnV0ZXMKICAgICBKU0M6
OkpTVmFsdWUgaGlzdG9yeShKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0OwpAQCAtMTAzNCw2ICsxMDM1
LDcgQEAgSlNDOjpKU1ZhbHVlIGpzRE9NV2luZG93RmlsZVJlYWRlckNvbnN0cgogdm9pZCBzZXRK
U0RPTVdpbmRvd0ZpbGVSZWFkZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzRE9NV2luZG93QmxvYkJ1aWxk
ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJik7CiB2b2lkIHNldEpTRE9NV2luZG93QmxvYkJ1aWxkZXJDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1Zh
bHVlIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5k
ZXg6IFdlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRv
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0QnVpbGQvUmVsZWFzZS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRE9NV2luZG93LmNwcAkoUHJpb3IpCisrKyBXZWJLaXRCdWlsZC9SZWxlYXNlL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3cuY3BwCShVcGRhdGVkKQpAQCAtMzkzLDcg
KzM5Myw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNET01XaW5kb3cpOwogI2RlZmlu
ZSBUSFVOS19HRU5FUkFUT1IoZ2VuZXJhdG9yKQogI2VuZGlmCiAKLXN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU0RPTVdpbmRvd1RhYmxlVmFsdWVzWzQ0M10gPQorc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTRE9NV2luZG93VGFibGVWYWx1ZXNbNDQ0XSA9CiB7CiAgICAgeyAic2Ny
ZWVuIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc0RPTVdpbmRvd1NjcmVlbiksIChpbnRwdHJfdClzZXRKU0RPTVdpbmRvd1Nj
cmVlbiBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJoaXN0b3J5IiwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzRE9NV2luZG93SGlzdG9yeSksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9
LApAQCAtOTAxLDExICs5MDEsNjAgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTRE9N
V2luZG93VAogI2lmIEVOQUJMRShCTE9CKQogICAgIHsgIkJsb2JCdWlsZGVyIiwgRG9udERlbGV0
ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RP
TVdpbmRvd0Jsb2JCdWlsZGVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qpc2V0SlNET01XaW5kb3dC
bG9iQnVpbGRlckNvbnN0cnVjdG9yIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogI2VuZGlmCisgICAg
eyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93Q29uc3RydWN0b3IpLCAo
aW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7IDAsIDAsIDAsIDAgVEhVTktf
R0VORVJBVE9SKDApIH0KIH07CiAKICN1bmRlZiBUSFVOS19HRU5FUkFUT1IKIHN0YXRpYyBKU0Nf
Q09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU0RPTVdpbmRvd1RhYmxlID0geyAxMTIxLCAxMDIz
LCBKU0RPTVdpbmRvd1RhYmxlVmFsdWVzLCAwIH07CisvKiBIYXNoIHRhYmxlIGZvciBjb25zdHJ1
Y3RvciAqLworI2lmIEVOQUJMRShKSVQpCisjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0
b3IpICwgZ2VuZXJhdG9yCisjZWxzZQorI2RlZmluZSBUSFVOS19HRU5FUkFUT1IoZ2VuZXJhdG9y
KQorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU0RPTVdpbmRvd0NvbnN0
cnVjdG9yVGFibGVWYWx1ZXNbMV0gPQoreworICAgIHsgMCwgMCwgMCwgMCBUSFVOS19HRU5FUkFU
T1IoMCkgfQorfTsKKworI3VuZGVmIFRIVU5LX0dFTkVSQVRPUgorc3RhdGljIEpTQ19DT05TVF9I
QVNIVEFCTEUgSGFzaFRhYmxlIEpTRE9NV2luZG93Q29uc3RydWN0b3JUYWJsZSA9IHsgMSwgMCwg
SlNET01XaW5kb3dDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAwIH07CitjbGFzcyBKU0RPTVdpbmRv
d0NvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICBKU0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqKTsKKworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHZpcnR1
YWwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZzX2lu
Zm87IH0KKyAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50KTsKKyAgICB9Citwcm90ZWN0ZWQ6CisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8IERPTUNvbnN0cnVjdG9yT2JqZWN0
OjpTdHJ1Y3R1cmVGbGFnczsKK307CisKK2NvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd0NvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJET01XaW5kb3dDb25zdHJ1Y3RvciIsIDAsICZKU0RPTVdpbmRv
d0NvbnN0cnVjdG9yVGFibGUsIDAgfTsKKworSlNET01XaW5kb3dDb25zdHJ1Y3Rvcjo6SlNET01X
aW5kb3dDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU0RPTVdpbmRvd0NvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGds
b2JhbE9iamVjdCkKK3sKKyAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3Rv
dHlwZSwgZ2xvYmFsT2JqZWN0LT5wcm90b3R5cGUoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsK
K30KKworYm9vbCBKU0RPTVdpbmRvd0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTRE9NV2luZG93Q29u
c3RydWN0b3IsIERPTU9iamVjdD4oZXhlYywgJkpTRE9NV2luZG93Q29uc3RydWN0b3JUYWJsZSwg
dGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU0RPTVdpbmRvd0NvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK3sK
KyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpTRE9NV2luZG93Q29uc3RydWN0
b3IsIERPTU9iamVjdD4oZXhlYywgJkpTRE9NV2luZG93Q29uc3RydWN0b3JUYWJsZSwgdGhpcywg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKK30KKwogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90
eXBlICovCiAjaWYgRU5BQkxFKEpJVCkKICNkZWZpbmUgVEhVTktfR0VORVJBVE9SKGdlbmVyYXRv
cikgLCBnZW5lcmF0b3IKQEAgLTUyNzcsNiArNTMyNiwxMyBAQCBKU1ZhbHVlIGpzRE9NV2luZG93
QmxvYkJ1aWxkZXJDb25zdHJ1Y3RvCiB9CiAjZW5kaWYKIAorSlNWYWx1ZSBqc0RPTVdpbmRvd0Nv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRp
ZmllciYpCit7CisgICAgSlNET01XaW5kb3cqIGRvbU9iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9N
V2luZG93Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBpZiAoIWRvbU9iamVjdC0+YWxsb3dz
QWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgcmV0
dXJuIEpTRE9NV2luZG93OjpnZXRDb25zdHJ1Y3RvcihleGVjLCBkb21PYmplY3QtPmdsb2JhbE9i
amVjdCgpKTsKK30KIHZvaWQgc2V0SlNET01XaW5kb3dTY3JlZW4oRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoIXN0YXRpY19j
YXN0PEpTRE9NV2luZG93Kj4odGhpc09iamVjdCktPmFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCkBA
IC04ODU1LDYgKzg5MTEsMTEgQEAgdm9pZCBzZXRKU0RPTVdpbmRvd0Jsb2JCdWlsZGVyQ29uc3Ry
dWN0bwogfQogI2VuZGlmCiAKK0pTVmFsdWUgSlNET01XaW5kb3c6OmdldENvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICByZXR1
cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNET01XaW5kb3dDb25zdHJ1Y3Rvcj4oZXhlYywgc3RhdGlj
X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKK30KKwogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uR2V0U2VsZWN0
aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRv
SlNET01XaW5kb3coZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpc09iamVjdChleGVjKSk7Cklu
ZGV4OiBXZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5k
b3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CkluZGV4OiBXZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IFdlYktpdEJ1aWxkL1Jl
bGVhc2UvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKioq
IE9yaWdEZXJpdmVkU3JjL0pTRE9NV2luZG93LmgJMjAxMC0xMC0wOCAxNDowNDo0NS4wMDAwMDAw
MDAgLTA3MDAKLS0tIFdlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RPTVdpbmRvdy5oCTIwMTAtMTAtMDggMTQ6MDg6MTMuMDAwMDAwMDAwIC0wNzAwCioqKioqKioq
KioqKioqKgoqKiogNTcsNjIgKioqKgotLS0gNTcsNjMgLS0tLQogICAgICB2aXJ0dWFsIHZvaWQg
ZGVmaW5lU2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIHNldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzKTsKICAgICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgbG9va3VwR2V0dGVyKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICB2aXJ0dWFs
IEpTQzo6SlNWYWx1ZSBsb29rdXBTZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CisgICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgCiAgICAg
IC8vIEN1c3RvbSBhdHRyaWJ1dGVzCiAgICAgIEpTQzo6SlNWYWx1ZSBoaXN0b3J5KEpTQzo6RXhl
Y1N0YXRlKikgY29uc3Q7CioqKioqKioqKioqKioqKgoqKiogMTAzNCwxMDM5ICoqKioKLS0tIDEw
MzUsMTA0MSAtLS0tCiAgdm9pZCBzZXRKU0RPTVdpbmRvd0ZpbGVSZWFkZXJDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogIEpTQzo6SlNW
YWx1ZSBqc0RPTVdpbmRvd0Jsb2JCdWlsZGVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogIHZvaWQgc2V0SlNET01XaW5k
b3dCbG9iQnVpbGRlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6SlNWYWx1ZSk7CisgSlNDOjpKU1ZhbHVlIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogIAog
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKICAKSW5kZXg6IFdlYktpdEJ1aWxkL1JlbGVhc2UvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoqKiogT3JpZ0Rl
cml2ZWRTcmMvSlNET01XaW5kb3cuY3BwCTIwMTAtMTAtMDggMTQ6MDQ6MzMuMDAwMDAwMDAwIC0w
NzAwCi0tLSBXZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01X
aW5kb3cuY3BwCTIwMTAtMTAtMDggMTQ6MDg6MTMuMDAwMDAwMDAwIC0wNzAwCioqKioqKioqKioq
KioqKgoqKiogMzkzLDM5OSAqKioqCiAgI2RlZmluZSBUSFVOS19HRU5FUkFUT1IoZ2VuZXJhdG9y
KQogICNlbmRpZgogIAohIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU0RPTVdpbmRvd1Rh
YmxlVmFsdWVzWzQ0M10gPQogIHsKICAgICAgeyAic2NyZWVuIiwgRG9udERlbGV0ZSwgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd1Nj
cmVlbiksIChpbnRwdHJfdClzZXRKU0RPTVdpbmRvd1NjcmVlbiBUSFVOS19HRU5FUkFUT1IoMCkg
fSwKICAgICAgeyAiaGlzdG9yeSIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd0hpc3Rvcnkp
LCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKLS0tIDM5MywzOTkgLS0tLQogICNk
ZWZpbmUgVEhVTktfR0VORVJBVE9SKGdlbmVyYXRvcikKICAjZW5kaWYKICAKISBzdGF0aWMgY29u
c3QgSGFzaFRhYmxlVmFsdWUgSlNET01XaW5kb3dUYWJsZVZhbHVlc1s0NDRdID0KICB7CiAgICAg
IHsgInNjcmVlbiIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dTY3JlZW4pLCAoaW50cHRyX3Qpc2V0SlNET01X
aW5kb3dTY3JlZW4gVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgIHsgImhpc3RvcnkiLCBEb250
RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNET01XaW5kb3dIaXN0b3J5KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJB
VE9SKDApIH0sCioqKioqKioqKioqKioqKgoqKiogOTAxLDkxMSAqKioqCi0tLSA5MDEsOTYwIC0t
LS0KICAjaWYgRU5BQkxFKEJMT0IpCiAgICAgIHsgIkJsb2JCdWlsZGVyIiwgRG9udERlbGV0ZSwg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdp
bmRvd0Jsb2JCdWlsZGVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qpc2V0SlNET01XaW5kb3dCbG9i
QnVpbGRlckNvbnN0cnVjdG9yIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICNlbmRpZgorICAgICB7
ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dDb25zdHJ1Y3RvciksIChp
bnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgICB7IDAsIDAsIDAsIDAgVEhVTktf
R0VORVJBVE9SKDApIH0KICB9OwogIAogICN1bmRlZiBUSFVOS19HRU5FUkFUT1IKICBzdGF0aWMg
SlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgSlNET01XaW5kb3dUYWJsZSA9IHsgMTEyMSwg
MTAyMywgSlNET01XaW5kb3dUYWJsZVZhbHVlcywgMCB9OworIC8qIEhhc2ggdGFibGUgZm9yIGNv
bnN0cnVjdG9yICovCisgI2lmIEVOQUJMRShKSVQpCisgI2RlZmluZSBUSFVOS19HRU5FUkFUT1Io
Z2VuZXJhdG9yKSAsIGdlbmVyYXRvcgorICNlbHNlCisgI2RlZmluZSBUSFVOS19HRU5FUkFUT1Io
Z2VuZXJhdG9yKQorICNlbmRpZgorIAorIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU0RP
TVdpbmRvd0NvbnN0cnVjdG9yVGFibGVWYWx1ZXNbMV0gPQorIHsKKyAgICAgeyAwLCAwLCAwLCAw
IFRIVU5LX0dFTkVSQVRPUigwKSB9CisgfTsKKyAKKyAjdW5kZWYgVEhVTktfR0VORVJBVE9SCisg
c3RhdGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTRE9NV2luZG93Q29uc3RydWN0
b3JUYWJsZSA9IHsgMSwgMCwgSlNET01XaW5kb3dDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAwIH07
CisgY2xhc3MgSlNET01XaW5kb3dDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9i
amVjdCB7CisgcHVibGljOgorICAgICBKU0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAKKyAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlTbG90Jik7CisgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5
RGVzY3JpcHRvciYpOworICAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0lu
Zm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9CisgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyBzX2luZm87CisgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgeworICAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQpOworICAg
ICB9CisgcHJvdGVjdGVkOgorICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hh
c0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOworIH07Cisg
CisgY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkRP
TVdpbmRvd0NvbnN0cnVjdG9yIiwgMCwgJkpTRE9NV2luZG93Q29uc3RydWN0b3JUYWJsZSwgMCB9
OworIAorIEpTRE9NV2luZG93Q29uc3RydWN0b3I6OkpTRE9NV2luZG93Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorICAgICA6IERP
TUNvbnN0cnVjdG9yT2JqZWN0KEpTRE9NV2luZG93Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQorIHsKKyAg
ICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIGdsb2JhbE9iamVj
dC0+cHJvdG90eXBlKCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CisgfQorIAorIGJvb2wgSlNE
T01XaW5kb3dDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCisgewor
ICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTRE9NV2luZG93Q29uc3RydWN0b3IsIERP
TU9iamVjdD4oZXhlYywgJkpTRE9NV2luZG93Q29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKKyB9CisgCisgYm9vbCBKU0RPTVdpbmRvd0NvbnN0cnVjdG9yOjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKKyB7CisgICAgIHJl
dHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNET01XaW5kb3dDb25zdHJ1Y3RvciwgRE9N
T2JqZWN0PihleGVjLCAmSlNET01XaW5kb3dDb25zdHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IpOworIH0KKyAKICAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUg
Ki8KICAjaWYgRU5BQkxFKEpJVCkKICAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0b3Ip
ICwgZ2VuZXJhdG9yCioqKioqKioqKioqKioqKgoqKiogNTI3Nyw1MjgyICoqKioKLS0tIDUzMjYs
NTMzOCAtLS0tCiAgfQogICNlbmRpZgogIAorIEpTVmFsdWUganNET01XaW5kb3dDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQor
IHsKKyAgICAgSlNET01XaW5kb3cqIGRvbU9iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICAgaWYgKCFkb21PYmplY3QtPmFsbG93c0FjY2Vz
c0Zyb20oZXhlYykpCisgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgcmV0dXJu
IEpTRE9NV2luZG93OjpnZXRDb25zdHJ1Y3RvcihleGVjLCBkb21PYmplY3QtPmdsb2JhbE9iamVj
dCgpKTsKKyB9CiAgdm9pZCBzZXRKU0RPTVdpbmRvd1NjcmVlbihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogIHsKICAgICAgaWYgKCFzdGF0aWNf
Y2FzdDxKU0RPTVdpbmRvdyo+KHRoaXNPYmplY3QpLT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQoq
KioqKioqKioqKioqKioKKioqIDg4NTUsODg2MCAqKioqCi0tLSA4OTExLDg5MjEgLS0tLQogIH0K
ICAjZW5kaWYKICAKKyBKU1ZhbHVlIEpTRE9NV2luZG93OjpnZXRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgeworICAgICByZXR1cm4g
Z2V0RE9NQ29uc3RydWN0b3I8SlNET01XaW5kb3dDb25zdHJ1Y3Rvcj4oZXhlYywgc3RhdGljX2Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKKyB9CisgCiAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uR2V0U2VsZWN0
aW9uKEV4ZWNTdGF0ZSogZXhlYykKICB7CiAgICAgIEpTRE9NV2luZG93KiBjYXN0ZWRUaGlzID0g
dG9KU0RPTVdpbmRvdyhleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGV4ZWMpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70305</attachid>
            <date>2010-10-08 15:42:34 -0700</date>
            <delta_ts>2010-10-08 17:48:16 -0700</delta_ts>
            <desc>Patch updated with suggested test changes</desc>
            <filename>47422-2.patch</filename>
            <type>text/plain</type>
            <size>18569</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAtMDggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hhbmdlZCBET01XaW5kb3cgdG8gaGF2ZSBhIGNvbnN0cnVjdG9yLiAgVXBkYXRlZCB0aGUgY29k
ZSBnZW5lcmF0b3IKKyAgICAgICAgdG8gYWRkIHNlY3VyaXR5IGNoZWNrcyB0byB0aGUgY29uc3Ry
dWN0b3JzIGlmIENoZWNrRG9tYWluU2VjdXJpdHkgaXMgCisgICAgICAgIHNldC4gIEFsc28gY2hh
bmdlZCB0aGUgY29uc3RydWN0b3IgZ2VuZXJhdGlvbiBjb2RlIHRvIHVzZSAKKyAgICAgICAgZ2xv
YmFsT2JqZWN0LT5wcm90b3R5cGUoKSBmb3IgRE9NV2luZG93IG9iamVjdCBwcm90b3R5cGVzIGlu
c3RlYWQKKyAgICAgICAgb2YgInNlbGYiLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDc0MjIKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9XaW5kb3cv
d2luZG93LWNvbnN0cnVjdG9yLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMC0x
MC0wOCAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA2OTQxOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE2MzIsNiArMTYz
MiwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKVxuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IHN0YXRpY19j
YXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CisKKyAgICAgICAgICAg
ICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1
cml0eSJ9KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghZG9tT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKVxuIik7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtc
biIpOworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKGV4ZWMsIGRvbU9i
amVjdC0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG4iKTsKICAgICAgICAgICAgIH0KQEAgLTI4MzgsNyArMjg0NCwxMSBAQCBzdWIg
R2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIk
e2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoJHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX06OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgp
KSwgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0g
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVz
KCkucHJvdG90eXBlLCAke3Byb3RvQ2xhc3NOYW1lfTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3Qp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkpO1xuIik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJl
Y3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LT5wcm90b3R5
cGUoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIH0KICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVy
KGV4ZWMsICR7bnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzfSksIFJlYWRPbmx5IHwgRG9udERl
bGV0ZSB8IERvbnRFbnVtKTtcbiIpIGlmICRudW1iZXJPZmNvbnN0cnVjdFBhcmFtZXRlcnM7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIApJbmRleDogV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJl
dmlzaW9uIDY5NDE4KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDcgKzM4LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEN1c3RvbU5hdGl2
ZUNvbnZlcnRlciwKICAgICAgICAgQ3VzdG9tUHV0RnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFy
Z2V0LAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEV4dGVuZHNET01HbG9iYWxP
YmplY3QsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAogICAgICAgICBMZWdhY3lQ
YXJlbnQ9SlNET01XaW5kb3dCYXNlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2OTQyMikKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTEw
LTA4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIEFkZGVk
IGFuZCBjaGFuZ2VkIHRlc3RzIHRvIHZlcmlmeSB0aGF0IERPTVdpbmRvdyBvYmplY3RzIGFyZQor
ICAgICAgICBjcmVhdGUgd2l0aCBhcHByb3ByaWF0ZSBjb25zdHJ1Y3RvcnMgYW5kIHRoYXQgdGhv
c2UgY29uc3RydWN0b3JzCisgICAgICAgIGFyZSBub3QgY2FsbGFibGUgZGlyZWN0bHkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQyMgorCisgICAg
ICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3Jp
cHRvcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0
YW5jZS0yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvY29u
c3RydWN0b3JzLWNhY2hlZC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNv
bGUtZGlyLWdsb2JhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogamF2YS9sYzMvSlNPYmplY3Qv
VG9KU09iamVjdC0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGphdmEvbGMzL0pTT2JqZWN0
L1RvT2JqZWN0LTAwMS1leHBlY3RlZC50eHQ6CisKIDIwMTAtMTAtMDggIE1pY2hhZWwgU2Fib2Zm
ICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWlu
aGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtODEsNiArODEsNyBAQCBQQVNTIERPTVRva2VuTGlzdCBmcm9tIGlubmVyLmRvY3Vt
ZW50LmZvCiBQQVNTIERPTVRva2VuTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
Zm9ybXMudGVzdEZvcm0uMC5jbGFzc0xpc3QuY29uc3RydWN0b3IKIFBBU1MgRE9NVG9rZW5MaXN0
UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC4wLmNsYXNzTGlz
dC5fX3Byb3RvX18KIFBBU1MgRE9NV2luZG93IGZyb20gaW5uZXIKK1BBU1MgRE9NV2luZG93Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1l
bnQuZGVmYXVsdFZpZXcuY29uc3RydWN0b3IKIFBBU1MgRE9NV2luZG93UHJvdG90eXBlIGZyb20g
aW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3
Ll9fcHJvdG9fXwogUEFTUyBEb2N1bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZv
cm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5fX3Byb3RvX18uX19wcm90b19fCiBQQVNTIEVs
ZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLl9fcHJv
dG9fXy5fX3Byb3RvX18uX19wcm90b19fCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTMwLDcgKzEzMCw3IEBAIE90aGVyCiAKIFBBU1MganNXcmFwcGVyQ2xhc3Mod2lu
ZG93KSBpcyAnRE9NV2luZG93JwogUEFTUyBqc1dyYXBwZXJDbGFzcyh3aW5kb3cuX19wcm90b19f
KSBpcyAnRE9NV2luZG93UHJvdG90eXBlJwotRkFJTCBqc1dyYXBwZXJDbGFzcyh3aW5kb3cuY29u
c3RydWN0b3IpIHNob3VsZCBiZSBET01XaW5kb3dDb25zdHJ1Y3Rvci4gV2FzIEZ1bmN0aW9uLgor
UEFTUyBqc1dyYXBwZXJDbGFzcyh3aW5kb3cuY29uc3RydWN0b3IpIGlzICdET01XaW5kb3dDb25z
dHJ1Y3RvcicKIAogSFRNTCBET00KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWNvbnN0cnVjdG9y
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitUZXN0IGZvciBidWcg
NDc0MjI6IHdpbmRvdyBjb25zdHJ1Y3RvciBzaG91bGRuJ3QgYmUgZGlyZWN0bHkgY2FsbGFibGUu
CisKK1dpbmRvdyBjb25zdHJ1Y3RvciBwcm90b3R5cGUgaXMgd2luZG93IHByb3RvdHlwZTogUEFT
UworV2luZG93IGNvbnN0cnVjdG9yIG5vdCBjYWxsYWJsZTogUEFTUwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctY29uc3RydWN0b3IuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctY29uc3RydWN0
b3IuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+Cis8aGVhZD48L2hl
YWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ3NDIyIj5idWcgNDc0MjI8L2E+Ogord2luZG93IGNvbnN0cnVjdG9y
IHNob3VsZG4ndCBiZSBkaXJlY3RseSBjYWxsYWJsZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24g
bG9nKG1lc3NhZ2UsIGNvbG9yKSAKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9
ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3Ig
PSBjb2xvcjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENo
aWxkKHBhcmFncmFwaCk7Cit9CisgICAgCitmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3JQcm90bygp
Cit7CisgICAgdmFyIHRlc3ROYW1lID0gIldpbmRvdyBjb25zdHJ1Y3RvciBwcm90b3R5cGUgaXMg
d2luZG93IHByb3RvdHlwZSIKKyAgICBpZiAod2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZSA9
PT0gd2luZG93Ll9fcHJvdG9fXykKKyAgICAgICAgbG9nKHRlc3ROYW1lICsgIjogUEFTUyIsICJn
cmVlbiIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKHRlc3ROYW1lICsgIjogRkFJTCIsICJyZWQi
KTsKK30KKworZnVuY3Rpb24gdGVzdENvbnN0cnVjdG9yTm90Q2FsbGFibGUoKQoreworICAgIHZh
ciB0ZXN0TmFtZSA9ICJXaW5kb3cgY29uc3RydWN0b3Igbm90IGNhbGxhYmxlIgorICAgIAorICAg
IHZhciB0aHJld0V4YyA9IGZhbHNlOworICAgIAorICAgIHRyeSB7CisgICAgICAgIG5ld1cgPSB3
aW5kb3cuY29uc3RydWN0b3IoKQorICAgIH0gY2F0Y2goZSkgeworICAgICAgICB0aHJld0V4YyA9
IHRydWU7CisgICAgfQorCisgICAgaWYgKHRocmV3RXhjKSB7CisgICAgICAgIGxvZyh0ZXN0TmFt
ZSArICI6IFBBU1MiLCAiZ3JlZW4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBsb2codGVzdE5h
bWUgKyAiOiBGQUlMIiwgInJlZCIpOworICAgIH0KK30KKwordGVzdENvbnN0cnVjdG9yUHJvdG8o
KTsKK3Rlc3RDb25zdHJ1Y3Rvck5vdENhbGxhYmxlKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0yMTkyLDYgKzIxOTIsNDYgQEAgd2luZG93LmNvbnNvbGUudGltZSBb
ZnVuY3Rpb25dCiB3aW5kb3cuY29uc29sZS50aW1lRW5kIFtmdW5jdGlvbl0KIHdpbmRvdy5jb25z
b2xlLnRyYWNlIFtmdW5jdGlvbl0KIHdpbmRvdy5jb25zb2xlLndhcm4gW2Z1bmN0aW9uXQord2lu
ZG93LmNvbnN0cnVjdG9yIFtvYmplY3QgRE9NV2luZG93Q29uc3RydWN0b3JdCit3aW5kb3cuY29u
c3RydWN0b3IucHJvdG90eXBlIFtvYmplY3QgRE9NV2luZG93UHJvdG90eXBlXQord2luZG93LmNv
bnN0cnVjdG9yLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyIFtmdW5jdGlvbl0KK3dpbmRvdy5j
b25zdHJ1Y3Rvci5wcm90b3R5cGUuYWxlcnQgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9y
LnByb3RvdHlwZS5hdG9iIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUu
Ymx1ciBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmJ0b2EgW2Z1bmN0
aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jYXB0dXJlRXZlbnRzIFtmdW5jdGlv
bl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuY2xlYXJJbnRlcnZhbCBbZnVuY3Rpb25d
Cit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmNsZWFyVGltZW91dCBbZnVuY3Rpb25dCit3
aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmNsb3NlIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25z
dHJ1Y3Rvci5wcm90b3R5cGUuY29uZmlybSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3Iu
cHJvdG90eXBlLmNyZWF0ZUJsb2JVUkwgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnBy
b3RvdHlwZS5kaXNwYXRjaEV2ZW50IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90
b3R5cGUuZmluZCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmZvY3Vz
IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHls
ZSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmdldE1hdGNoZWRDU1NS
dWxlcyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmdldFNlbGVjdGlv
biBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLm1vdmVCeSBbZnVuY3Rp
b25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLm1vdmVUbyBbZnVuY3Rpb25dCit3aW5k
b3cuY29uc3RydWN0b3IucHJvdG90eXBlLm9wZW4gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVj
dG9yLnByb3RvdHlwZS5vcGVuRGF0YWJhc2UgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9y
LnByb3RvdHlwZS5wb3N0TWVzc2FnZSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJv
dG90eXBlLnByaW50IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucHJv
bXB0IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucmVsZWFzZUV2ZW50
cyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlz
dGVuZXIgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5yZXNpemVCeSBb
ZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnJlc2l6ZVRvIFtmdW5jdGlv
bl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucmV2b2tlQmxvYlVSTCBbZnVuY3Rpb25d
Cit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnNjcm9sbCBbZnVuY3Rpb25dCit3aW5kb3cu
Y29uc3RydWN0b3IucHJvdG90eXBlLnNjcm9sbEJ5IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1
Y3Rvci5wcm90b3R5cGUuc2Nyb2xsVG8gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnBy
b3RvdHlwZS5zZXRJbnRlcnZhbCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90
eXBlLnNldFRpbWVvdXQgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5z
aG93TW9kYWxEaWFsb2cgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5z
dG9wIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUud2Via2l0Q29udmVy
dFBvaW50RnJvbU5vZGVUb1BhZ2UgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3Rv
dHlwZS53ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRvTm9kZSBbZnVuY3Rpb25dCiB3aW5kb3cu
Y3J5cHRvIFt1bmRlZmluZWRdCiB3aW5kb3cuZGVjb2RlVVJJIFtmdW5jdGlvbl0KIHdpbmRvdy5k
ZWNvZGVVUklDb21wb25lbnQgW2Z1bmN0aW9uXQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlw
dG9ycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iod2luCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93
LCAnY2xlYXJUaW1lb3V0JykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHdpbmRvdywgJ2Nsb3NlJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2NvbmZpcm0nKSBpcyB1bmRlZmluZWQu
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnY29uc3RydWN0
b3InKSBpcyB1bmRlZmluZWQuCitGQUlMIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
d2luZG93LCAnY29uc3RydWN0b3InKSBzaG91bGQgYmUgdW5kZWZpbmVkLiBXYXMgW29iamVjdCBP
YmplY3RdCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZGlz
cGF0Y2hFdmVudCcpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcih3aW5kb3csICdmaW5kJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2ZvY3VzJykgaXMgdW5kZWZpbmVkLgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9ycy1jYWNoZWQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVj
dG9ycy1jYWNoZWQuanMJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9ycy1jYWNoZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTkgKzEsMTkgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IG9iamVjdHMg
d2l0aCBzZWN1cml0eSByZXN0cmljdGlvbnMgYXJlIGNhY2hlZCBjb3JyZWN0bHkiKTsKIAotdmFy
IGNvbnN0cnVjdG9ycyA9IFsiSW1hZ2UiLCAiT3B0aW9uIiwgIlhNTEh0dHBSZXF1ZXN0IiwgIkF1
ZGlvIl07Cit2YXIgY3RvcnMgPSBbIkltYWdlIiwgIk9wdGlvbiIsICJYTUxIdHRwUmVxdWVzdCIs
ICJBdWRpbyJdOwogCi1mb3IgKHZhciBpID0gMDsgaSA8IGNvbnN0cnVjdG9ycy5sZW5ndGg7IGkr
KykgewotICAgIHZhciBjb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yc1tpXTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgY3RvcnMubGVuZ3RoOyBpKyspIHsKKyAgICB2YXIgY3RvciA9IGN0b3JzW2ldOwog
ICAgIHRyeSB7CiAgICAgICAgIC8vIFRlc3QgcmV0cmlldmluZyB0aGUgb2JqZWN0IHR3aWNlIHJl
c3VsdHMgaW4gdGhlIHNhbWUgb2JqZWN0Ci0gICAgICAgIHNob3VsZEJlKGNvbnN0cnVjdG9yLCBj
b25zdHJ1Y3Rvcik7CisgICAgICAgIHNob3VsZEJlKGN0b3IsIGN0b3IpOwogCiAgICAgICAgIC8v
IEJlIHBhcmFub2lkIC0tIG1ha2Ugc3VyZSB0aGF0IHNldHRpbmcgYSBwcm9wZXJ0eSByZXN1bHRz
IGluIHRoYXQgcHJvcGVydHkKICAgICAgICAgLy8gc3RheXMKLSAgICAgICAgdGhpc1tjb25zdHJ1
Y3Rvcl0udGVzdFByb3BlcnR5ID0gInByb3BlcnR5IHNldCBzdWNjZXNzZnVsbHkiOwotICAgICAg
ICBzaG91bGRCZShjb25zdHJ1Y3RvciArICIudGVzdFByb3BlcnR5IiwgJyJwcm9wZXJ0eSBzZXQg
c3VjY2Vzc2Z1bGx5IicpOworICAgICAgICB0aGlzW2N0b3JdLnRlc3RQcm9wZXJ0eSA9ICJwcm9w
ZXJ0eSBzZXQgc3VjY2Vzc2Z1bGx5IjsKKyAgICAgICAgc2hvdWxkQmUoY3RvciArICIudGVzdFBy
b3BlcnR5IiwgJyJwcm9wZXJ0eSBzZXQgc3VjY2Vzc2Z1bGx5IicpOwogICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgdGVzdEZhaWxlZCgiVGVzdGluZyAiICsgY29uc3RydWN0b3IgKyAiIHRocmV3
ICIgKyBlKTsKKyAgICAgICAgdGVzdEZhaWxlZCgiVGVzdGluZyAiICsgY3RvciArICIgdGhyZXcg
IiArIGUpOwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTM3NCw2ICszNzQsOCBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3Jp
CiAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRv
IGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVz
b3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZ2V0LXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdp
dGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
Z2V0Lmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNz
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMv
Y3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1nZXQtdGVzdC5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRt
bC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCiBUaGlzIHRlc3Qg
Y2hlY2tzIGNyb3NzLWZyYW1lIGFjY2VzcyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMw
OSkuCiAKIApAQCAtNTE1LDYgKzUxNyw3IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmNh
cHR1cmVFdmVudHMKIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmNsZWFySW50ZXJ2YWwnKSBz
aG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5jbGVh
clRpbWVvdXQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3Rhcmdl
dFdpbmRvdy5jb25maXJtJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgorUEFTUzogY2FuR2V0
KCd0YXJnZXRXaW5kb3cuY29uc3RydWN0b3InKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQ
QVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5maW5kJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlz
LgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZScpIHNob3VsZCBi
ZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmdldE1hdGNoZWRD
U1NSdWxlcycpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdl
dC5odG1sCShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNiAr
MTE0LDcgQEAKICAgICAgICAgICAgICJjbGVhckludGVydmFsIiwgCiAgICAgICAgICAgICAiY2xl
YXJUaW1lb3V0IiwgCiAgICAgICAgICAgICAiY29uZmlybSIsCisgICAgICAgICAgICAiY29uc3Ry
dWN0b3IiLAogICAgICAgICAgICAgImZpbmQiLCAKICAgICAgICAgICAgICJnZXRDb21wdXRlZFN0
eWxlIiwKICAgICAgICAgICAgICJnZXRNYXRjaGVkQ1NTUnVsZXMiLCAKSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLXB1dC5odG1sCShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDYsNiArMjA2LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICBzZXRGb3JiaWRk
ZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJjbGVhclRpbWVvdXQiKTsKICAgICBzZXRGb3JiaWRk
ZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJjbG9zZSIpOwogICAgIHNldEZvcmJpZGRlblByb3Bl
cnR5KHRhcmdldFdpbmRvdywgImNvbmZpcm0iKTsKKyAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0
YXJnZXRXaW5kb3csICJjb25zdHJ1Y3RvciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgImV2YWwiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5k
b3csICJmaW5kIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiZm9j
dXMiKTsKSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWRpci1nbG9iYWwtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWRp
ci1nbG9iYWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLWRpci1nbG9iYWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC00LDYgKzQsNyBAQCBUZXN0cyB0aGF0IGNvbnNvbGUgZHVtcHMgZ2xvYmFsIG9iamVjdCB3CiB7
CiAgICAgQXJyYXkgOiAxCiAgICAgY29uc29sZSA6IDEKKyAgICBjb25zdHJ1Y3RvciA6IDEKICAg
ICBkb2N1bWVudCA6IDEKICAgICBkb2l0IDogMQogICAgIGV2YWwgOiAxCkluZGV4OiBMYXlvdXRU
ZXN0cy9qYXZhL2xjMy9KU09iamVjdC9Ub0pTT2JqZWN0LTAwMS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2phdmEvbGMzL0pTT2Jq
ZWN0L1RvSlNPYmplY3QtMDAxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTYsNyAr
MTYsOSBAQCBQQVNTIGpzb2Muc2V0SlNPYmplY3QoIE15T2JqZWN0ICk7IGpzb2MuCiBQQVNTIGpz
b2MuZ2V0SlNPYmplY3QoKS5jb25zdHJ1Y3RvciBpcyBGdW5jdGlvbgogRkFJTCBqc29jLnNldEpT
T2JqZWN0KCBUSElTICk7IGpzb2MuUFVCX0pTT0JKRUNUIHNob3VsZCBiZSBbb2JqZWN0IERPTVdp
bmRvd10uIFdhcyBbb2JqZWN0IERPTVdpbmRvd10uCiBQQVNTIGpzb2Muc2V0SlNPYmplY3QoIFRI
SVMgKTsganNvYy5nZXRKU09iamVjdCgpIGlzIHRoaXMKLVBBU1MganNvYy5nZXRKU09iamVjdCgp
LmNvbnN0cnVjdG9yIGlzIE9iamVjdAorRkFJTCBqc29jLmdldEpTT2JqZWN0KCkuY29uc3RydWN0
b3Igc2hvdWxkIGJlIGZ1bmN0aW9uIE9iamVjdCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IChv
ZiB0eXBlIGZ1bmN0aW9uKS4gV2FzIFtvYmplY3QgRE9NV2luZG93Q29uc3RydWN0b3JdIChvZiB0
eXBlIG9iamVjdCkuCiBGQUlMIGpzb2Muc2V0SlNPYmplY3QoIE1hdGggKTsganNvYy5QVUJfSlNP
QkpFQ1Qgc2hvdWxkIGJlIFtvYmplY3QgTWF0aF0uIFdhcyBbb2JqZWN0IE1hdGhdLgogUEFTUyBq
c29jLnNldEpTT2JqZWN0KCBNYXRoICk7IGpzb2MuZ2V0SlNPYmplY3QoKSBpcyBNYXRoCiBQQVNT
IGpzb2MuZ2V0SlNPYmplY3QoKS5jb25zdHJ1Y3RvciBpcyBPYmplY3QKSW5kZXg6IExheW91dFRl
c3RzL2phdmEvbGMzL0pTT2JqZWN0L1RvT2JqZWN0LTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9PYmplY3QtMDAxLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09iamVjdC9U
b09iamVjdC0wMDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw5IEBA
IFBBU1MgZHQuc2V0T2JqZWN0KCBNeU9iamVjdCApOyBkdC5nZXRPYmoKIFBBU1MgZHQuZ2V0T2Jq
ZWN0KCkuY29uc3RydWN0b3IgaXMgRnVuY3Rpb24KIEZBSUwgZHQuc2V0T2JqZWN0KCBUSElTICk7
IGR0LlBVQl9PQkpFQ1Qgc2hvdWxkIGJlIFtvYmplY3QgRE9NV2luZG93XS4gV2FzIFtvYmplY3Qg
RE9NV2luZG93XS4KIFBBU1MgZHQuc2V0T2JqZWN0KCBUSElTICk7IGR0LmdldE9iamVjdCgpIGlz
IHRoaXMKLVBBU1MgZHQuZ2V0T2JqZWN0KCkuY29uc3RydWN0b3IgaXMgT2JqZWN0CitGQUlMIGR0
LmdldE9iamVjdCgpLmNvbnN0cnVjdG9yIHNob3VsZCBiZSBmdW5jdGlvbiBPYmplY3QoKSB7Cisg
ICAgW25hdGl2ZSBjb2RlXQorfSAob2YgdHlwZSBmdW5jdGlvbikuIFdhcyBbb2JqZWN0IERPTVdp
bmRvd0NvbnN0cnVjdG9yXSAob2YgdHlwZSBvYmplY3QpLgogRkFJTCBkdC5zZXRPYmplY3QoIE1h
dGggKTsgZHQuUFVCX09CSkVDVCBzaG91bGQgYmUgW29iamVjdCBNYXRoXS4gV2FzIFtvYmplY3Qg
TWF0aF0uCiBQQVNTIGR0LnNldE9iamVjdCggTWF0aCApOyBkdC5nZXRPYmplY3QoKSBpcyBNYXRo
CiBQQVNTIGR0LmdldE9iamVjdCgpLmNvbnN0cnVjdG9yIGlzIE9iamVjdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70323</attachid>
            <date>2010-10-08 17:48:16 -0700</date>
            <delta_ts>2010-10-11 10:23:49 -0700</delta_ts>
            <desc>Patch with additional tests fixes</desc>
            <filename>47422-3.patch</filename>
            <type>text/plain</type>
            <size>21449</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAtMDggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hhbmdlZCBET01XaW5kb3cgdG8gaGF2ZSBhIGNvbnN0cnVjdG9yLiAgVXBkYXRlZCB0aGUgY29k
ZSBnZW5lcmF0b3IKKyAgICAgICAgdG8gYWRkIHNlY3VyaXR5IGNoZWNrcyB0byB0aGUgY29uc3Ry
dWN0b3JzIGlmIENoZWNrRG9tYWluU2VjdXJpdHkgaXMgCisgICAgICAgIHNldC4gIEFsc28gY2hh
bmdlZCB0aGUgY29uc3RydWN0b3IgZ2VuZXJhdGlvbiBjb2RlIHRvIHVzZSAKKyAgICAgICAgZ2xv
YmFsT2JqZWN0LT5wcm90b3R5cGUoKSBmb3IgRE9NV2luZG93IG9iamVjdCBwcm90b3R5cGVzIGlu
c3RlYWQKKyAgICAgICAgb2YgInNlbGYiLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDc0MjIKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9XaW5kb3cv
d2luZG93LWNvbnN0cnVjdG9yLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMC0x
MC0wOCAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY5NDE4KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIxMTUwLDcgKzIxMTUwLDYg
QEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5
QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
UHJvamVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAy
LjQiOwotCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVu
Y29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNjk0
MTgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjMyLDYgKzE2MzIsMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUgJHtjb25zdHJ1
Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25z
dCBJZGVudGlmaWVyJilcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05h
bWV9KiBkb21PYmplY3QgPSBzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdEJh
c2UpKTtcbiIpOworCisgICAgICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkNoZWNrRG9tYWluU2VjdXJpdHkifSkgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWRvbU9iamVjdC0+YWxsb3dzQWNjZXNzRnJvbShl
eGVjKSlcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gJHtjbGFzc05hbWV9Ojpn
ZXRDb25zdHJ1Y3RvcihleGVjLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgICAgICAgICB9CkBA
IC0yODM4LDcgKzI4NDQsMTEgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OiR7Y29uc3Ry
dWN0b3JDbGFzc05hbWV9KEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdClcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICA6IERPTUNvbnN0cnVj
dG9yT2JqZWN0KCR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdClcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXRE
aXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgJHtwcm90b0NsYXNzTmFtZX06
OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOwor
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5
cGUsIGdsb2JhbE9iamVjdC0+cHJvdG90eXBlKCksIERvbnREZWxldGUgfCBSZWFkT25seSk7XG4i
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGly
ZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsICR7cHJvdG9DbGFzc05hbWV9Ojpz
ZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7XG4iKTsKKyAg
ICB9CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0
eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAke251bWJlck9mY29uc3RydWN0UGFyYW1l
dGVyc30pLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7XG4iKSBpZiAkbnVtYmVy
T2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7
CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiA2OTQxOCkKKysrIFdlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw2IEBAIG1vZHVsZSB3aW5k
b3cgewogICAgICAgICBDdXN0b21OYXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIEN1c3RvbVB1dEZ1
bmN0aW9uLAogICAgICAgICBFdmVudFRhcmdldCwKLSAgICAgICAgT21pdENvbnN0cnVjdG9yLAog
ICAgICAgICBFeHRlbmRzRE9NR2xvYmFsT2JqZWN0LAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNv
bnZlcnRlciwKICAgICAgICAgTGVnYWN5UGFyZW50PUpTRE9NV2luZG93QmFzZQpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gNjk0MjIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNiBAQAorMjAxMC0xMC0wOCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGRlZCBhbmQgY2hhbmdlZCB0ZXN0cyB0byB2ZXJpZnkgdGhh
dCBET01XaW5kb3cgb2JqZWN0cyBhcmUKKyAgICAgICAgY3JlYXRlIHdpdGggYXBwcm9wcmlhdGUg
Y29uc3RydWN0b3JzIGFuZCB0aGF0IHRob3NlIGNvbnN0cnVjdG9ycworICAgICAgICBhcmUgbm90
IGNhbGxhYmxlIGRpcmVjdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDc0MjIKKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5k
IGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25z
dHJ1Y3Rvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93
aW5kb3ctY29uc3RydWN0b3IuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9ycy1jYWNoZWQuanM6CisgICAgICAgICog
ZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLWRpci1nbG9iYWwtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGphdmEvbGMzL0pTT2JqZWN0L1RvSlNPYmplY3QtMDAxLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBqYXZhL2xjMy9KU09iamVjdC9Ub09iamVjdC0wMDEtZXhwZWN0ZWQudHh0OgorCiAy
MDEwLTEwLTA4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJv
dG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAgUEFTUyBET01U
b2tlbkxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5mbwogUEFTUyBET01Ub2tlbkxpc3RDb25zdHJ1
Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAuY2xhc3NMaXN0LmNvbnN0
cnVjdG9yCiBQQVNTIERPTVRva2VuTGlzdFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZv
cm1zLnRlc3RGb3JtLjAuMC5jbGFzc0xpc3QuX19wcm90b19fCiBQQVNTIERPTVdpbmRvdyBmcm9t
IGlubmVyCitQQVNTIERPTVdpbmRvd0NvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9y
bXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNvbnN0cnVjdG9yCiBQQVNT
IERPTVdpbmRvd1Byb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAu
b3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5fX3Byb3RvX18KIFBBU1MgRG9jdW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuX19w
cm90b19fLl9fcHJvdG9fXwogUEFTUyBFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1l
bnQuZm9ybXMudGVzdEZvcm0uMC5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nl
cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw3ICsxMzAsNyBAQCBPdGhlcgog
CiBQQVNTIGpzV3JhcHBlckNsYXNzKHdpbmRvdykgaXMgJ0RPTVdpbmRvdycKIFBBU1MganNXcmFw
cGVyQ2xhc3Mod2luZG93Ll9fcHJvdG9fXykgaXMgJ0RPTVdpbmRvd1Byb3RvdHlwZScKLUZBSUwg
anNXcmFwcGVyQ2xhc3Mod2luZG93LmNvbnN0cnVjdG9yKSBzaG91bGQgYmUgRE9NV2luZG93Q29u
c3RydWN0b3IuIFdhcyBGdW5jdGlvbi4KK1BBU1MganNXcmFwcGVyQ2xhc3Mod2luZG93LmNvbnN0
cnVjdG9yKSBpcyAnRE9NV2luZG93Q29uc3RydWN0b3InCiAKIEhUTUwgRE9NCiAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctY29uc3Ry
dWN0b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNCBAQAorVGVzdCBmb3IgYnVnIDQ3NDIyOiB3aW5kb3cgY29uc3RydWN0b3Igc2hvdWxk
bid0IGJlIGRpcmVjdGx5IGNhbGxhYmxlLgorCitXaW5kb3cgY29uc3RydWN0b3IgcHJvdG90eXBl
IGlzIHdpbmRvdyBwcm90b3R5cGU6IFBBU1MKK1dpbmRvdyBjb25zdHJ1Y3RvciBub3QgY2FsbGFi
bGU6IFBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctY29uc3Ry
dWN0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LWNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LWNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NTQgQEAKKzxodG1sPgorPGhlYWQ+PC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVm
PSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQyMiI+YnVnIDQ3NDIy
PC9hPjoKK3dpbmRvdyBjb25zdHJ1Y3RvciBzaG91bGRuJ3QgYmUgZGlyZWN0bHkgY2FsbGFibGUu
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlLCBjb2xvcikgCit7CisgICAgdmFy
IHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHBhcmFncmFw
aC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgcGFy
YWdyYXBoLnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAoY29sb3IpCisg
ICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorICAgIAorZnVuY3Rp
b24gdGVzdENvbnN0cnVjdG9yUHJvdG8oKQoreworICAgIHZhciB0ZXN0TmFtZSA9ICJXaW5kb3cg
Y29uc3RydWN0b3IgcHJvdG90eXBlIGlzIHdpbmRvdyBwcm90b3R5cGUiCisgICAgaWYgKHdpbmRv
dy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgPT09IHdpbmRvdy5fX3Byb3RvX18pCisgICAgICAgIGxv
Zyh0ZXN0TmFtZSArICI6IFBBU1MiLCAiZ3JlZW4iKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyh0
ZXN0TmFtZSArICI6IEZBSUwiLCAicmVkIik7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb25zdHJ1Y3Rv
ck5vdENhbGxhYmxlKCkKK3sKKyAgICB2YXIgdGVzdE5hbWUgPSAiV2luZG93IGNvbnN0cnVjdG9y
IG5vdCBjYWxsYWJsZSIKKyAgICAKKyAgICB2YXIgdGhyZXdFeGMgPSBmYWxzZTsKKyAgICAKKyAg
ICB0cnkgeworICAgICAgICBuZXdXID0gd2luZG93LmNvbnN0cnVjdG9yKCkKKyAgICB9IGNhdGNo
KGUpIHsKKyAgICAgICAgdGhyZXdFeGMgPSB0cnVlOworICAgIH0KKworICAgIGlmICh0aHJld0V4
YykgeworICAgICAgICBsb2codGVzdE5hbWUgKyAiOiBQQVNTIiwgImdyZWVuIik7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgbG9nKHRlc3ROYW1lICsgIjogRkFJTCIsICJyZWQiKTsKKyAgICB9Cit9
CisKK3Rlc3RDb25zdHJ1Y3RvclByb3RvKCk7Cit0ZXN0Q29uc3RydWN0b3JOb3RDYWxsYWJsZSgp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE5Miw2ICsyMTkyLDQ2
IEBAIHdpbmRvdy5jb25zb2xlLnRpbWUgW2Z1bmN0aW9uXQogd2luZG93LmNvbnNvbGUudGltZUVu
ZCBbZnVuY3Rpb25dCiB3aW5kb3cuY29uc29sZS50cmFjZSBbZnVuY3Rpb25dCiB3aW5kb3cuY29u
c29sZS53YXJuIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3RvciBbb2JqZWN0IERPTVdpbmRv
d0NvbnN0cnVjdG9yXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZSBbb2JqZWN0IERPTVdp
bmRvd1Byb3RvdHlwZV0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuYWRkRXZlbnRMaXN0
ZW5lciBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmFsZXJ0IFtmdW5j
dGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuYXRvYiBbZnVuY3Rpb25dCit3aW5k
b3cuY29uc3RydWN0b3IucHJvdG90eXBlLmJsdXIgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVj
dG9yLnByb3RvdHlwZS5idG9hIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5
cGUuY2FwdHVyZUV2ZW50cyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBl
LmNsZWFySW50ZXJ2YWwgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5j
bGVhclRpbWVvdXQgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jbG9z
ZSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmNvbmZpcm0gW2Z1bmN0
aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jcmVhdGVCbG9iVVJMIFtmdW5jdGlv
bl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuZGlzcGF0Y2hFdmVudCBbZnVuY3Rpb25d
Cit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmZpbmQgW2Z1bmN0aW9uXQord2luZG93LmNv
bnN0cnVjdG9yLnByb3RvdHlwZS5mb2N1cyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3Iu
cHJvdG90eXBlLmdldENvbXB1dGVkU3R5bGUgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9y
LnByb3RvdHlwZS5nZXRNYXRjaGVkQ1NTUnVsZXMgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVj
dG9yLnByb3RvdHlwZS5nZXRTZWxlY3Rpb24gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9y
LnByb3RvdHlwZS5tb3ZlQnkgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlw
ZS5tb3ZlVG8gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5vcGVuIFtm
dW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUub3BlbkRhdGFiYXNlIFtmdW5j
dGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucG9zdE1lc3NhZ2UgW2Z1bmN0aW9u
XQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5wcmludCBbZnVuY3Rpb25dCit3aW5kb3cu
Y29uc3RydWN0b3IucHJvdG90eXBlLnByb21wdCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0
b3IucHJvdG90eXBlLnJlbGVhc2VFdmVudHMgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9y
LnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1
Y3Rvci5wcm90b3R5cGUucmVzaXplQnkgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnBy
b3RvdHlwZS5yZXNpemVUbyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBl
LnJldm9rZUJsb2JVUkwgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5z
Y3JvbGwgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zY3JvbGxCeSBb
ZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnNjcm9sbFRvIFtmdW5jdGlv
bl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuc2V0SW50ZXJ2YWwgW2Z1bmN0aW9uXQor
d2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zZXRUaW1lb3V0IFtmdW5jdGlvbl0KK3dpbmRv
dy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuc2hvd01vZGFsRGlhbG9nIFtmdW5jdGlvbl0KK3dpbmRv
dy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuc3RvcCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0
b3IucHJvdG90eXBlLndlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlIFtmdW5jdGlvbl0K
K3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUud2Via2l0Q29udmVydFBvaW50RnJvbVBhZ2VU
b05vZGUgW2Z1bmN0aW9uXQogd2luZG93LmNyeXB0byBbdW5kZWZpbmVkXQogd2luZG93LmRlY29k
ZVVSSSBbZnVuY3Rpb25dCiB3aW5kb3cuZGVjb2RlVVJJQ29tcG9uZW50IFtmdW5jdGlvbl0KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRv
cnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQx
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3Jp
cHRvcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMzMsNiArMzMzLDcgQEAgUEFT
UyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcAogUEFTUyB0eXBlb2YgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdjbGllbnRJbmZvcm1hdGlvbicpIGlz
ICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdp
bmRvdywgJ2Nsb3NlZCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2NvbnNvbGUnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdjb25zdHJ1Y3Rvcicp
IGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvdywgJ2NyeXB0bycpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2RlYnVnJykgaXMgJ29iamVjdCcKIFBBU1MgdHlw
ZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZGVjb2RlVVJJJykg
aXMgJ29iamVjdCcKQEAgLTQ5Nyw3ICs0OTgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Iod2luCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2lu
ZG93LCAnY2xlYXJUaW1lb3V0JykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2Nsb3NlJykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2NvbmZpcm0nKSBpcyB1bmRlZmlu
ZWQuCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnY29uc3Ry
dWN0b3InKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Iod2luZG93LCAnZGlzcGF0Y2hFdmVudCcpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdmaW5kJykgaXMgdW5kZWZpbmVkLgogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2ZvY3VzJykgaXMgdW5k
ZWZpbmVkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93
aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMu
anMJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Njcmlw
dC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTcsNiArNyw3IEBAIHZhciBfX3NraXBfXyA9IHsKIAogICAgIC8vIERvbid0IGxvZyBEdW1wUmVu
ZGVyVHJlZSBpbmplY3RlZCBvYmplY3RzCiAgICAgImxheW91dFRlc3RDb250cm9sbGVyIiA6IDEs
IC8vIFdvcmsgYXJvdW5kIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MzczCisgICAgImNvbnN0cnVjdG9yIiA6IDAsICAvLyBXb3JrYXJvdW5kIHRvIGluY2x1ZGUgY29u
c3RydWN0b3IgaW4gd2luZG93UHJvcGVydHlOYW1lcwogICAgICJHQ0NvbnRyb2xsZXIiIDogMSwK
ICAgICAiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIiIDogMSwKICAgICAiYXBwbGVTY3JpcHRDb250
cm9sbGVyIiA6IDEsCkBAIC01OSw2ICs2MCw4IEBAIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvdG9Q
cm9wZXJ0eU5hbWVzLmwKICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRo
ZXkgZG8gbm90IGV4aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuCiAgICAgaWYgKHByb3RvUHJv
cGVydHlOYW1lc1tpXSA9PSAiY3JlYXRlQmxvYlVSTCIgfHwgcHJvdG9Qcm9wZXJ0eU5hbWVzW2ld
ID09ICJyZXZva2VCbG9iVVJMIikKICAgICAgICAgY29udGludWU7CisgICAgaWYgKHByb3RvUHJv
cGVydHlOYW1lc1tpXSA9PSAiY29uc3RydWN0b3IiKQorICAgICAgICBjb250aW51ZTsKICAgICBz
aG91bGRCZVVuZGVmaW5lZCgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICciICsgcHJvdG9Qcm9wZXJ0eU5hbWVzW2ldICsgIicpIik7CiB9CiAKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9jb25zdHJ1Y3RvcnMtY2FjaGVkLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9jb25zdHJ1Y3RvcnMtY2Fj
aGVkLmpzCShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10
ZXN0cy9jb25zdHJ1Y3RvcnMtY2FjaGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICsxLDE5
IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBvYmplY3RzIHdpdGggc2Vj
dXJpdHkgcmVzdHJpY3Rpb25zIGFyZSBjYWNoZWQgY29ycmVjdGx5Iik7CiAKLXZhciBjb25zdHJ1
Y3RvcnMgPSBbIkltYWdlIiwgIk9wdGlvbiIsICJYTUxIdHRwUmVxdWVzdCIsICJBdWRpbyJdOwor
dmFyIGN0b3JzID0gWyJJbWFnZSIsICJPcHRpb24iLCAiWE1MSHR0cFJlcXVlc3QiLCAiQXVkaW8i
XTsKIAotZm9yICh2YXIgaSA9IDA7IGkgPCBjb25zdHJ1Y3RvcnMubGVuZ3RoOyBpKyspIHsKLSAg
ICB2YXIgY29uc3RydWN0b3IgPSBjb25zdHJ1Y3RvcnNbaV07Citmb3IgKHZhciBpID0gMDsgaSA8
IGN0b3JzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIGN0b3IgPSBjdG9yc1tpXTsKICAgICB0cnkg
ewogICAgICAgICAvLyBUZXN0IHJldHJpZXZpbmcgdGhlIG9iamVjdCB0d2ljZSByZXN1bHRzIGlu
IHRoZSBzYW1lIG9iamVjdAotICAgICAgICBzaG91bGRCZShjb25zdHJ1Y3RvciwgY29uc3RydWN0
b3IpOworICAgICAgICBzaG91bGRCZShjdG9yLCBjdG9yKTsKIAogICAgICAgICAvLyBCZSBwYXJh
bm9pZCAtLSBtYWtlIHN1cmUgdGhhdCBzZXR0aW5nIGEgcHJvcGVydHkgcmVzdWx0cyBpbiB0aGF0
IHByb3BlcnR5CiAgICAgICAgIC8vIHN0YXlzCi0gICAgICAgIHRoaXNbY29uc3RydWN0b3JdLnRl
c3RQcm9wZXJ0eSA9ICJwcm9wZXJ0eSBzZXQgc3VjY2Vzc2Z1bGx5IjsKLSAgICAgICAgc2hvdWxk
QmUoY29uc3RydWN0b3IgKyAiLnRlc3RQcm9wZXJ0eSIsICcicHJvcGVydHkgc2V0IHN1Y2Nlc3Nm
dWxseSInKTsKKyAgICAgICAgdGhpc1tjdG9yXS50ZXN0UHJvcGVydHkgPSAicHJvcGVydHkgc2V0
IHN1Y2Nlc3NmdWxseSI7CisgICAgICAgIHNob3VsZEJlKGN0b3IgKyAiLnRlc3RQcm9wZXJ0eSIs
ICcicHJvcGVydHkgc2V0IHN1Y2Nlc3NmdWxseSInKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICAgIHRlc3RGYWlsZWQoIlRlc3RpbmcgIiArIGNvbnN0cnVjdG9yICsgIiB0aHJldyAiICsgZSk7
CisgICAgICAgIHRlc3RGYWlsZWQoIlRlc3RpbmcgIiArIGN0b3IgKyAiIHRocmV3ICIgKyBlKTsK
ICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zNzQsNiAr
Mzc0LDggQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaQogCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3Mg
ZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9j
cm9zcy1mcmFtZS1pZnJhbWUtZm9yLWdldC10ZXN0Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1s
LiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3
aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZy
YW1lLWlmcmFtZS1mb3ItZ2V0LXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwuIERvbWFp
bnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKwogVGhpcyB0ZXN0IGNoZWNrcyBj
cm9zcy1mcmFtZSBhY2Nlc3Mgc2VjdXJpdHkgKHJkYXI6Ly9wcm9ibGVtLzUyNTEzMDkpLgogCiAK
QEAgLTUxNSw2ICs1MTcsNyBAQCBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5jYXB0dXJlRXZl
bnRzCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5jbGVhckludGVydmFsJykgc2hvdWxkIGJl
ICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuY2xlYXJUaW1lb3V0
Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cu
Y29uZmlybScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KK1BBU1M6IGNhbkdldCgndGFyZ2V0
V2luZG93LmNvbnN0cnVjdG9yJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2Fu
R2V0KCd0YXJnZXRXaW5kb3cuZmluZCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6
IGNhbkdldCgndGFyZ2V0V2luZG93LmdldENvbXB1dGVkU3R5bGUnKSBzaG91bGQgYmUgJ2ZhbHNl
JyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5nZXRNYXRjaGVkQ1NTUnVsZXMn
KSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbAko
cmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1nZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYgKzExNCw3IEBA
CiAgICAgICAgICAgICAiY2xlYXJJbnRlcnZhbCIsIAogICAgICAgICAgICAgImNsZWFyVGltZW91
dCIsIAogICAgICAgICAgICAgImNvbmZpcm0iLAorICAgICAgICAgICAgImNvbnN0cnVjdG9yIiwK
ICAgICAgICAgICAgICJmaW5kIiwgCiAgICAgICAgICAgICAiZ2V0Q29tcHV0ZWRTdHlsZSIsCiAg
ICAgICAgICAgICAiZ2V0TWF0Y2hlZENTU1J1bGVzIiwgCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQu
aHRtbAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjA2LDYgKzIw
Niw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVy
dHkodGFyZ2V0V2luZG93LCAiY2xlYXJUaW1lb3V0Iik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVy
dHkodGFyZ2V0V2luZG93LCAiY2xvc2UiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJn
ZXRXaW5kb3csICJjb25maXJtIik7CisgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2lu
ZG93LCAiY29uc3RydWN0b3IiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5k
b3csICJldmFsIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiZmlu
ZCIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgImZvY3VzIik7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1kaXItZ2xvYmFsLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1kaXItZ2xvYmFs
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS1kaXItZ2xvYmFsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0
LDcgQEAgVGVzdHMgdGhhdCBjb25zb2xlIGR1bXBzIGdsb2JhbCBvYmplY3QgdwogewogICAgIEFy
cmF5IDogMQogICAgIGNvbnNvbGUgOiAxCisgICAgY29uc3RydWN0b3IgOiAxCiAgICAgZG9jdW1l
bnQgOiAxCiAgICAgZG9pdCA6IDEKICAgICBldmFsIDogMQpJbmRleDogTGF5b3V0VGVzdHMvamF2
YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2phdmEvbGMzL0pTT2JqZWN0L1RvSlNPYmplY3QtMDAxLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09iamVjdC9Ub0pT
T2JqZWN0LTAwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2LDcgKzE2LDcgQEAg
UEFTUyBqc29jLnNldEpTT2JqZWN0KCBNeU9iamVjdCApOyBqc29jLgogUEFTUyBqc29jLmdldEpT
T2JqZWN0KCkuY29uc3RydWN0b3IgaXMgRnVuY3Rpb24KIEZBSUwganNvYy5zZXRKU09iamVjdCgg
VEhJUyApOyBqc29jLlBVQl9KU09CSkVDVCBzaG91bGQgYmUgW29iamVjdCBET01XaW5kb3ddLiBX
YXMgW29iamVjdCBET01XaW5kb3ddLgogUEFTUyBqc29jLnNldEpTT2JqZWN0KCBUSElTICk7IGpz
b2MuZ2V0SlNPYmplY3QoKSBpcyB0aGlzCi1QQVNTIGpzb2MuZ2V0SlNPYmplY3QoKS5jb25zdHJ1
Y3RvciBpcyBPYmplY3QKK1BBU1MganNvYy5nZXRKU09iamVjdCgpLmNvbnN0cnVjdG9yIGlzIHRo
aXMuY29uc3RydWN0b3IKIEZBSUwganNvYy5zZXRKU09iamVjdCggTWF0aCApOyBqc29jLlBVQl9K
U09CSkVDVCBzaG91bGQgYmUgW29iamVjdCBNYXRoXS4gV2FzIFtvYmplY3QgTWF0aF0uCiBQQVNT
IGpzb2Muc2V0SlNPYmplY3QoIE1hdGggKTsganNvYy5nZXRKU09iamVjdCgpIGlzIE1hdGgKIFBB
U1MganNvYy5nZXRKU09iamVjdCgpLmNvbnN0cnVjdG9yIGlzIE9iamVjdApJbmRleDogTGF5b3V0
VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEuanMJKHJldmlzaW9u
IDY5NDE4KQorKysgTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEu
anMJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw3ICsxNzMsNyBAQCBhW2krK10gPSBuZXcgVGVzdE9i
amVjdCgKICAgImpzb2MuZ2V0SlNPYmplY3QoKSIsCiAgICJqc29jLmdldEpTT2JqZWN0KCkuY29u
c3RydWN0b3IiLAogICAndGhpcycsCi0gICdPYmplY3QnKTsKKyAgJ3RoaXMuY29uc3RydWN0b3In
KTsKIAogYVtpKytdID0gbmV3IFRlc3RPYmplY3QoCiAgICJqc29jLnNldEpTT2JqZWN0KCBNYXRo
ICkiLApJbmRleDogTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9PYmplY3QtMDAxLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09iamVjdC9U
b09iamVjdC0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3Rz
L2phdmEvbGMzL0pTT2JqZWN0L1RvT2JqZWN0LTAwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDcgKzQzLDcgQEAgUEFTUyBkdC5zZXRPYmplY3QoIE15T2JqZWN0ICk7IGR0Lmdl
dE9iagogUEFTUyBkdC5nZXRPYmplY3QoKS5jb25zdHJ1Y3RvciBpcyBGdW5jdGlvbgogRkFJTCBk
dC5zZXRPYmplY3QoIFRISVMgKTsgZHQuUFVCX09CSkVDVCBzaG91bGQgYmUgW29iamVjdCBET01X
aW5kb3ddLiBXYXMgW29iamVjdCBET01XaW5kb3ddLgogUEFTUyBkdC5zZXRPYmplY3QoIFRISVMg
KTsgZHQuZ2V0T2JqZWN0KCkgaXMgdGhpcwotUEFTUyBkdC5nZXRPYmplY3QoKS5jb25zdHJ1Y3Rv
ciBpcyBPYmplY3QKK1BBU1MgZHQuZ2V0T2JqZWN0KCkuY29uc3RydWN0b3IgaXMgdGhpcy5jb25z
dHJ1Y3RvcgogRkFJTCBkdC5zZXRPYmplY3QoIE1hdGggKTsgZHQuUFVCX09CSkVDVCBzaG91bGQg
YmUgW29iamVjdCBNYXRoXS4gV2FzIFtvYmplY3QgTWF0aF0uCiBQQVNTIGR0LnNldE9iamVjdCgg
TWF0aCApOyBkdC5nZXRPYmplY3QoKSBpcyBNYXRoCiBQQVNTIGR0LmdldE9iamVjdCgpLmNvbnN0
cnVjdG9yIGlzIE9iamVjdApJbmRleDogTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9P
YmplY3QtMDAxLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2phdmEvbGMzL0pTT2JqZWN0
L1RvT2JqZWN0LTAwMS5qcwkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9qYXZhL2xj
My9KU09iamVjdC9Ub09iamVjdC0wMDEuanMJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUs
NyBAQCBhW2krK10gPSBuZXcgVGVzdE9iamVjdCgKICAgImR0LmdldE9iamVjdCgpIiwKICAgImR0
LmdldE9iamVjdCgpLmNvbnN0cnVjdG9yIiwKICAgJ3RoaXMnLAotICAnT2JqZWN0Jyk7CisgICd0
aGlzLmNvbnN0cnVjdG9yJyk7CiAKIGFbaSsrXSA9IG5ldyBUZXN0T2JqZWN0KAogICAiZHQuc2V0
T2JqZWN0KCBNYXRoICkiLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70447</attachid>
            <date>2010-10-11 10:23:52 -0700</date>
            <delta_ts>2010-10-11 11:07:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47422-20101011102351.patch</filename>
            <type>text/plain</type>
            <size>20944</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAtMDggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ2hh
bmdlZCBET01XaW5kb3cgdG8gaGF2ZSBhIGNvbnN0cnVjdG9yLiAgVXBkYXRlZCB0aGUgY29kZSBn
ZW5lcmF0b3IKKyAgICAgICAgdG8gYWRkIHNlY3VyaXR5IGNoZWNrcyB0byB0aGUgY29uc3RydWN0
b3JzIGlmIENoZWNrRG9tYWluU2VjdXJpdHkgaXMgCisgICAgICAgIHNldC4gIEFsc28gY2hhbmdl
ZCB0aGUgY29uc3RydWN0b3IgZ2VuZXJhdGlvbiBjb2RlIHRvIHVzZSAKKyAgICAgICAgZ2xvYmFs
T2JqZWN0LT5wcm90b3R5cGUoKSBmb3IgRE9NV2luZG93IG9iamVjdCBwcm90b3R5cGVzIGluc3Rl
YWQKKyAgICAgICAgb2YgInNlbGYiLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDc0MjIKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LWNvbnN0cnVjdG9yLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMC0xMC0w
OCAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA2OTQxOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE2MzIsNiArMTYzMiwx
MiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKVxuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IHN0YXRpY19jYXN0
PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CisKKyAgICAgICAgICAgICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1cml0
eSJ9KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICgh
ZG9tT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKVxuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIp
OworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKGV4ZWMsIGRvbU9iamVj
dC0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG4iKTsKICAgICAgICAgICAgIH0KQEAgLTI4MzgsNyArMjg0NCwxMSBAQCBzdWIgR2Vu
ZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfTo6JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoJHtjb25zdHJ1Y3RvckNsYXNz
TmFtZX06OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwg
Z2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCku
cHJvdG90eXBlLCAke3Byb3RvQ2xhc3NOYW1lfTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpO1xuIik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3Qo
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LT5wcm90b3R5cGUo
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIH0KICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4
ZWMsICR7bnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzfSksIFJlYWRPbmx5IHwgRG9udERlbGV0
ZSB8IERvbnRFbnVtKTtcbiIpIGlmICRudW1iZXJPZmNvbnN0cnVjdFBhcmFtZXRlcnM7CiAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIApJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlz
aW9uIDY5NDE4KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDcgKzM4LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEN1c3RvbU5hdGl2ZUNv
bnZlcnRlciwKICAgICAgICAgQ3VzdG9tUHV0RnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0
LAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEV4dGVuZHNET01HbG9iYWxPYmpl
Y3QsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAogICAgICAgICBMZWdhY3lQYXJl
bnQ9SlNET01XaW5kb3dCYXNlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2OTQyMikKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEwLTEwLTA4
ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZGVkIGFuZCBjaGFuZ2VkIHRlc3RzIHRvIHZl
cmlmeSB0aGF0IERPTVdpbmRvdyBvYmplY3RzIGFyZQorICAgICAgICBjcmVhdGUgd2l0aCBhcHBy
b3ByaWF0ZSBjb25zdHJ1Y3RvcnMgYW5kIHRoYXQgdGhvc2UgY29uc3RydWN0b3JzCisgICAgICAg
IGFyZSBub3QgY2FsbGFibGUgZGlyZWN0bHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NzQyMgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvY29uc3RydWN0b3JzLWNhY2hlZC5qczoKKyAg
ICAgICAgKiBmYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUtZGlyLWdsb2JhbC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGphdmEvbGMzL0pTT2JqZWN0L1RvT2JqZWN0LTAwMS1leHBlY3RlZC50
eHQ6CisKIDIwMTAtMTAtMDggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsNyBAQCBQ
QVNTIERPTVRva2VuTGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LmZvCiBQQVNTIERPTVRva2VuTGlz
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5jbGFzc0xp
c3QuY29uc3RydWN0b3IKIFBBU1MgRE9NVG9rZW5MaXN0UHJvdG90eXBlIGZyb20gaW5uZXIuZG9j
dW1lbnQuZm9ybXMudGVzdEZvcm0uMC4wLmNsYXNzTGlzdC5fX3Byb3RvX18KIFBBU1MgRE9NV2lu
ZG93IGZyb20gaW5uZXIKK1BBU1MgRE9NV2luZG93Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY29uc3RydWN0
b3IKIFBBU1MgRE9NV2luZG93UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVz
dEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Ll9fcHJvdG9fXwogUEFTUyBEb2N1bWVu
dFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1
bWVudC5fX3Byb3RvX18uX19wcm90b19fCiBQQVNTIEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5l
ci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLl9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19f
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBl
ci1jbGFzc2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDcgKzEzMCw3IEBA
IE90aGVyCiAKIFBBU1MganNXcmFwcGVyQ2xhc3Mod2luZG93KSBpcyAnRE9NV2luZG93JwogUEFT
UyBqc1dyYXBwZXJDbGFzcyh3aW5kb3cuX19wcm90b19fKSBpcyAnRE9NV2luZG93UHJvdG90eXBl
JwotRkFJTCBqc1dyYXBwZXJDbGFzcyh3aW5kb3cuY29uc3RydWN0b3IpIHNob3VsZCBiZSBET01X
aW5kb3dDb25zdHJ1Y3Rvci4gV2FzIEZ1bmN0aW9uLgorUEFTUyBqc1dyYXBwZXJDbGFzcyh3aW5k
b3cuY29uc3RydWN0b3IpIGlzICdET01XaW5kb3dDb25zdHJ1Y3RvcicKIAogSFRNTCBET00KIApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0IEBACitUZXN0IGZvciBidWcgNDc0MjI6IHdpbmRvdyBjb25zdHJ1Y3Rv
ciBzaG91bGRuJ3QgYmUgZGlyZWN0bHkgY2FsbGFibGUuCisKK1dpbmRvdyBjb25zdHJ1Y3RvciBw
cm90b3R5cGUgaXMgd2luZG93IHByb3RvdHlwZTogUEFTUworV2luZG93IGNvbnN0cnVjdG9yIG5v
dCBjYWxsYWJsZTogUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1jb25zdHJ1Y3Rvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctY29uc3RydWN0b3IuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctY29uc3RydWN0b3IuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NCBAQAorPGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9y
IDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NDIyIj5i
dWcgNDc0MjI8L2E+Ogord2luZG93IGNvbnN0cnVjdG9yIHNob3VsZG4ndCBiZSBkaXJlY3RseSBj
YWxsYWJsZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UsIGNvbG9yKSAKK3sK
KyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
cGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsK
KyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChj
b2xvcikKKyAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Cit9CisgICAg
CitmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3JQcm90bygpCit7CisgICAgdmFyIHRlc3ROYW1lID0g
IldpbmRvdyBjb25zdHJ1Y3RvciBwcm90b3R5cGUgaXMgd2luZG93IHByb3RvdHlwZSIKKyAgICBp
ZiAod2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZSA9PT0gd2luZG93Ll9fcHJvdG9fXykKKyAg
ICAgICAgbG9nKHRlc3ROYW1lICsgIjogUEFTUyIsICJncmVlbiIpOworICAgIGVsc2UKKyAgICAg
ICAgbG9nKHRlc3ROYW1lICsgIjogRkFJTCIsICJyZWQiKTsKK30KKworZnVuY3Rpb24gdGVzdENv
bnN0cnVjdG9yTm90Q2FsbGFibGUoKQoreworICAgIHZhciB0ZXN0TmFtZSA9ICJXaW5kb3cgY29u
c3RydWN0b3Igbm90IGNhbGxhYmxlIgorICAgIAorICAgIHZhciB0aHJld0V4YyA9IGZhbHNlOwor
ICAgIAorICAgIHRyeSB7CisgICAgICAgIG5ld1cgPSB3aW5kb3cuY29uc3RydWN0b3IoKQorICAg
IH0gY2F0Y2goZSkgeworICAgICAgICB0aHJld0V4YyA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KHRocmV3RXhjKSB7CisgICAgICAgIGxvZyh0ZXN0TmFtZSArICI6IFBBU1MiLCAiZ3JlZW4iKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBsb2codGVzdE5hbWUgKyAiOiBGQUlMIiwgInJlZCIpOwor
ICAgIH0KK30KKwordGVzdENvbnN0cnVjdG9yUHJvdG8oKTsKK3Rlc3RDb25zdHJ1Y3Rvck5vdENh
bGxhYmxlKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMTkyLDYg
KzIxOTIsNDYgQEAgd2luZG93LmNvbnNvbGUudGltZSBbZnVuY3Rpb25dCiB3aW5kb3cuY29uc29s
ZS50aW1lRW5kIFtmdW5jdGlvbl0KIHdpbmRvdy5jb25zb2xlLnRyYWNlIFtmdW5jdGlvbl0KIHdp
bmRvdy5jb25zb2xlLndhcm4gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yIFtvYmplY3Qg
RE9NV2luZG93Q29uc3RydWN0b3JdCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlIFtvYmpl
Y3QgRE9NV2luZG93UHJvdG90eXBlXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5hZGRF
dmVudExpc3RlbmVyIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuYWxl
cnQgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5hdG9iIFtmdW5jdGlv
bl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuYmx1ciBbZnVuY3Rpb25dCit3aW5kb3cu
Y29uc3RydWN0b3IucHJvdG90eXBlLmJ0b2EgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9y
LnByb3RvdHlwZS5jYXB0dXJlRXZlbnRzIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5w
cm90b3R5cGUuY2xlYXJJbnRlcnZhbCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJv
dG90eXBlLmNsZWFyVGltZW91dCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90
eXBlLmNsb3NlIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuY29uZmly
bSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmNyZWF0ZUJsb2JVUkwg
W2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50IFtm
dW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuZmluZCBbZnVuY3Rpb25dCit3
aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmZvY3VzIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25z
dHJ1Y3Rvci5wcm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHlsZSBbZnVuY3Rpb25dCit3aW5kb3cuY29u
c3RydWN0b3IucHJvdG90eXBlLmdldE1hdGNoZWRDU1NSdWxlcyBbZnVuY3Rpb25dCit3aW5kb3cu
Y29uc3RydWN0b3IucHJvdG90eXBlLmdldFNlbGVjdGlvbiBbZnVuY3Rpb25dCit3aW5kb3cuY29u
c3RydWN0b3IucHJvdG90eXBlLm1vdmVCeSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3Iu
cHJvdG90eXBlLm1vdmVUbyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBl
Lm9wZW4gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5vcGVuRGF0YWJh
c2UgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5wb3N0TWVzc2FnZSBb
ZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnByaW50IFtmdW5jdGlvbl0K
K3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucHJvbXB0IFtmdW5jdGlvbl0KK3dpbmRvdy5j
b25zdHJ1Y3Rvci5wcm90b3R5cGUucmVsZWFzZUV2ZW50cyBbZnVuY3Rpb25dCit3aW5kb3cuY29u
c3RydWN0b3IucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgW2Z1bmN0aW9uXQord2luZG93
LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5yZXNpemVCeSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3Ry
dWN0b3IucHJvdG90eXBlLnJlc2l6ZVRvIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5w
cm90b3R5cGUucmV2b2tlQmxvYlVSTCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJv
dG90eXBlLnNjcm9sbCBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnNj
cm9sbEJ5IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuc2Nyb2xsVG8g
W2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zZXRJbnRlcnZhbCBbZnVu
Y3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnNldFRpbWVvdXQgW2Z1bmN0aW9u
XQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zaG93TW9kYWxEaWFsb2cgW2Z1bmN0aW9u
XQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zdG9wIFtmdW5jdGlvbl0KK3dpbmRvdy5j
b25zdHJ1Y3Rvci5wcm90b3R5cGUud2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UgW2Z1
bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS53ZWJraXRDb252ZXJ0UG9pbnRG
cm9tUGFnZVRvTm9kZSBbZnVuY3Rpb25dCiB3aW5kb3cuY3J5cHRvIFt1bmRlZmluZWRdCiB3aW5k
b3cuZGVjb2RlVVJJIFtmdW5jdGlvbl0KIHdpbmRvdy5kZWNvZGVVUklDb21wb25lbnQgW2Z1bmN0
aW9uXQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1k
ZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw2ICszMzMs
NyBAQCBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwCiBQQVNTIHR5cGVv
ZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2NsaWVudEluZm9ybWF0
aW9uJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3Iod2luZG93LCAnY2xvc2VkJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnY29uc29sZScpIGlzICdvYmplY3QnCitQ
QVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2NvbnN0
cnVjdG9yJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iod2luZG93LCAnY3J5cHRvJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZGVidWcnKSBpcyAnb2JqZWN0Jwog
UEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdkZWNv
ZGVVUkknKSBpcyAnb2JqZWN0JwpAQCAtNDk3LDcgKzQ5OCw2IEBAIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih3aW5kb3csICdjbGVhclRpbWVvdXQnKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnY2xvc2UnKSBpcyB1bmRlZmluZWQuCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnY29uZmlybScpIGlz
IHVuZGVmaW5lZC4KLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdjb25zdHJ1Y3RvcicpIGlzIHVuZGVmaW5lZC4KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICdkaXNwYXRjaEV2ZW50JykgaXMgdW5kZWZpbmVkLgogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2ZpbmQnKSBpcyB1bmRlZmlu
ZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZm9jdXMn
KSBpcyB1bmRlZmluZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0
LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNj
cmlwdG9ycy5qcwkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcwkod29ya2luZyBj
b3B5KQpAQCAtNyw2ICs3LDcgQEAgdmFyIF9fc2tpcF9fID0gewogCiAgICAgLy8gRG9uJ3QgbG9n
IER1bXBSZW5kZXJUcmVlIGluamVjdGVkIG9iamVjdHMKICAgICAibGF5b3V0VGVzdENvbnRyb2xs
ZXIiIDogMSwgLy8gV29yayBhcm91bmQgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzNzMKKyAgICAiY29uc3RydWN0b3IiIDogMCwgIC8vIFdvcmthcm91bmQgdG8gaW5j
bHVkZSBjb25zdHJ1Y3RvciBpbiB3aW5kb3dQcm9wZXJ0eU5hbWVzCiAgICAgIkdDQ29udHJvbGxl
ciIgOiAxLAogICAgICJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlciIgOiAxLAogICAgICJhcHBsZVNj
cmlwdENvbnRyb2xsZXIiIDogMSwKQEAgLTU5LDYgKzYwLDggQEAgZm9yICh2YXIgaSA9IDA7IGkg
PCBwcm90b1Byb3BlcnR5TmFtZXMubAogICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJl
Y2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4KICAgICBpZiAo
cHJvdG9Qcm9wZXJ0eU5hbWVzW2ldID09ICJjcmVhdGVCbG9iVVJMIiB8fCBwcm90b1Byb3BlcnR5
TmFtZXNbaV0gPT0gInJldm9rZUJsb2JVUkwiKQogICAgICAgICBjb250aW51ZTsKKyAgICBpZiAo
cHJvdG9Qcm9wZXJ0eU5hbWVzW2ldID09ICJjb25zdHJ1Y3RvciIpCisgICAgICAgIGNvbnRpbnVl
OwogICAgIHNob3VsZEJlVW5kZWZpbmVkKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvdywgJyIgKyBwcm90b1Byb3BlcnR5TmFtZXNbaV0gKyAiJykiKTsKIH0KIApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9ycy1jYWNoZWQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVj
dG9ycy1jYWNoZWQuanMJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9ycy1jYWNoZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTkgKzEsMTkgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IG9iamVjdHMg
d2l0aCBzZWN1cml0eSByZXN0cmljdGlvbnMgYXJlIGNhY2hlZCBjb3JyZWN0bHkiKTsKIAotdmFy
IGNvbnN0cnVjdG9ycyA9IFsiSW1hZ2UiLCAiT3B0aW9uIiwgIlhNTEh0dHBSZXF1ZXN0IiwgIkF1
ZGlvIl07Cit2YXIgY3RvcnMgPSBbIkltYWdlIiwgIk9wdGlvbiIsICJYTUxIdHRwUmVxdWVzdCIs
ICJBdWRpbyJdOwogCi1mb3IgKHZhciBpID0gMDsgaSA8IGNvbnN0cnVjdG9ycy5sZW5ndGg7IGkr
KykgewotICAgIHZhciBjb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yc1tpXTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgY3RvcnMubGVuZ3RoOyBpKyspIHsKKyAgICB2YXIgY3RvciA9IGN0b3JzW2ldOwog
ICAgIHRyeSB7CiAgICAgICAgIC8vIFRlc3QgcmV0cmlldmluZyB0aGUgb2JqZWN0IHR3aWNlIHJl
c3VsdHMgaW4gdGhlIHNhbWUgb2JqZWN0Ci0gICAgICAgIHNob3VsZEJlKGNvbnN0cnVjdG9yLCBj
b25zdHJ1Y3Rvcik7CisgICAgICAgIHNob3VsZEJlKGN0b3IsIGN0b3IpOwogCiAgICAgICAgIC8v
IEJlIHBhcmFub2lkIC0tIG1ha2Ugc3VyZSB0aGF0IHNldHRpbmcgYSBwcm9wZXJ0eSByZXN1bHRz
IGluIHRoYXQgcHJvcGVydHkKICAgICAgICAgLy8gc3RheXMKLSAgICAgICAgdGhpc1tjb25zdHJ1
Y3Rvcl0udGVzdFByb3BlcnR5ID0gInByb3BlcnR5IHNldCBzdWNjZXNzZnVsbHkiOwotICAgICAg
ICBzaG91bGRCZShjb25zdHJ1Y3RvciArICIudGVzdFByb3BlcnR5IiwgJyJwcm9wZXJ0eSBzZXQg
c3VjY2Vzc2Z1bGx5IicpOworICAgICAgICB0aGlzW2N0b3JdLnRlc3RQcm9wZXJ0eSA9ICJwcm9w
ZXJ0eSBzZXQgc3VjY2Vzc2Z1bGx5IjsKKyAgICAgICAgc2hvdWxkQmUoY3RvciArICIudGVzdFBy
b3BlcnR5IiwgJyJwcm9wZXJ0eSBzZXQgc3VjY2Vzc2Z1bGx5IicpOwogICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgdGVzdEZhaWxlZCgiVGVzdGluZyAiICsgY29uc3RydWN0b3IgKyAiIHRocmV3
ICIgKyBlKTsKKyAgICAgICAgdGVzdEZhaWxlZCgiVGVzdGluZyAiICsgY3RvciArICIgdGhyZXcg
IiArIGUpOwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTM3NCw2ICszNzQsOCBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3Jp
CiAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRv
IGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVz
b3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZ2V0LXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdp
dGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
Z2V0Lmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNz
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMv
Y3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1nZXQtdGVzdC5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRt
bC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCiBUaGlzIHRlc3Qg
Y2hlY2tzIGNyb3NzLWZyYW1lIGFjY2VzcyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMw
OSkuCiAKIApAQCAtNTE1LDYgKzUxNyw3IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmNh
cHR1cmVFdmVudHMKIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmNsZWFySW50ZXJ2YWwnKSBz
aG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5jbGVh
clRpbWVvdXQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3Rhcmdl
dFdpbmRvdy5jb25maXJtJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgorUEFTUzogY2FuR2V0
KCd0YXJnZXRXaW5kb3cuY29uc3RydWN0b3InKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQ
QVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5maW5kJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlz
LgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZScpIHNob3VsZCBi
ZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmdldE1hdGNoZWRD
U1NSdWxlcycpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdl
dC5odG1sCShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNiAr
MTE0LDcgQEAKICAgICAgICAgICAgICJjbGVhckludGVydmFsIiwgCiAgICAgICAgICAgICAiY2xl
YXJUaW1lb3V0IiwgCiAgICAgICAgICAgICAiY29uZmlybSIsCisgICAgICAgICAgICAiY29uc3Ry
dWN0b3IiLAogICAgICAgICAgICAgImZpbmQiLCAKICAgICAgICAgICAgICJnZXRDb21wdXRlZFN0
eWxlIiwKICAgICAgICAgICAgICJnZXRNYXRjaGVkQ1NTUnVsZXMiLCAKSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLXB1dC5odG1sCShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDYsNiArMjA2LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICBzZXRGb3JiaWRk
ZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJjbGVhclRpbWVvdXQiKTsKICAgICBzZXRGb3JiaWRk
ZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJjbG9zZSIpOwogICAgIHNldEZvcmJpZGRlblByb3Bl
cnR5KHRhcmdldFdpbmRvdywgImNvbmZpcm0iKTsKKyAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0
YXJnZXRXaW5kb3csICJjb25zdHJ1Y3RvciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgImV2YWwiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5k
b3csICJmaW5kIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiZm9j
dXMiKTsKSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWRpci1nbG9iYWwtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWRp
ci1nbG9iYWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLWRpci1nbG9iYWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC00LDYgKzQsNyBAQCBUZXN0cyB0aGF0IGNvbnNvbGUgZHVtcHMgZ2xvYmFsIG9iamVjdCB3CiB7
CiAgICAgQXJyYXkgOiAxCiAgICAgY29uc29sZSA6IDEKKyAgICBjb25zdHJ1Y3RvciA6IDEKICAg
ICBkb2N1bWVudCA6IDEKICAgICBkb2l0IDogMQogICAgIGV2YWwgOiAxCkluZGV4OiBMYXlvdXRU
ZXN0cy9qYXZhL2xjMy9KU09iamVjdC9Ub0pTT2JqZWN0LTAwMS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2phdmEvbGMzL0pTT2Jq
ZWN0L1RvSlNPYmplY3QtMDAxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTYsNyAr
MTYsNyBAQCBQQVNTIGpzb2Muc2V0SlNPYmplY3QoIE15T2JqZWN0ICk7IGpzb2MuCiBQQVNTIGpz
b2MuZ2V0SlNPYmplY3QoKS5jb25zdHJ1Y3RvciBpcyBGdW5jdGlvbgogRkFJTCBqc29jLnNldEpT
T2JqZWN0KCBUSElTICk7IGpzb2MuUFVCX0pTT0JKRUNUIHNob3VsZCBiZSBbb2JqZWN0IERPTVdp
bmRvd10uIFdhcyBbb2JqZWN0IERPTVdpbmRvd10uCiBQQVNTIGpzb2Muc2V0SlNPYmplY3QoIFRI
SVMgKTsganNvYy5nZXRKU09iamVjdCgpIGlzIHRoaXMKLVBBU1MganNvYy5nZXRKU09iamVjdCgp
LmNvbnN0cnVjdG9yIGlzIE9iamVjdAorUEFTUyBqc29jLmdldEpTT2JqZWN0KCkuY29uc3RydWN0
b3IgaXMgdGhpcy5jb25zdHJ1Y3RvcgogRkFJTCBqc29jLnNldEpTT2JqZWN0KCBNYXRoICk7IGpz
b2MuUFVCX0pTT0JKRUNUIHNob3VsZCBiZSBbb2JqZWN0IE1hdGhdLiBXYXMgW29iamVjdCBNYXRo
XS4KIFBBU1MganNvYy5zZXRKU09iamVjdCggTWF0aCApOyBqc29jLmdldEpTT2JqZWN0KCkgaXMg
TWF0aAogUEFTUyBqc29jLmdldEpTT2JqZWN0KCkuY29uc3RydWN0b3IgaXMgT2JqZWN0CkluZGV4
OiBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09iamVjdC9Ub0pTT2JqZWN0LTAwMS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09iamVjdC9Ub0pTT2JqZWN0LTAwMS5qcwko
cmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09iamVjdC9Ub0pTT2Jq
ZWN0LTAwMS5qcwkod29ya2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3IEBAIGFbaSsrXSA9IG5l
dyBUZXN0T2JqZWN0KAogICAianNvYy5nZXRKU09iamVjdCgpIiwKICAgImpzb2MuZ2V0SlNPYmpl
Y3QoKS5jb25zdHJ1Y3RvciIsCiAgICd0aGlzJywKLSAgJ09iamVjdCcpOworICAndGhpcy5jb25z
dHJ1Y3RvcicpOwogCiBhW2krK10gPSBuZXcgVGVzdE9iamVjdCgKICAgImpzb2Muc2V0SlNPYmpl
Y3QoIE1hdGggKSIsCkluZGV4OiBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09iamVjdC9Ub09iamVj
dC0wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2phdmEvbGMzL0pT
T2JqZWN0L1RvT2JqZWN0LTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5
b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9PYmplY3QtMDAxLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBQQVNTIGR0LnNldE9iamVjdCggTXlPYmplY3Qg
KTsgZHQuZ2V0T2JqCiBQQVNTIGR0LmdldE9iamVjdCgpLmNvbnN0cnVjdG9yIGlzIEZ1bmN0aW9u
CiBGQUlMIGR0LnNldE9iamVjdCggVEhJUyApOyBkdC5QVUJfT0JKRUNUIHNob3VsZCBiZSBbb2Jq
ZWN0IERPTVdpbmRvd10uIFdhcyBbb2JqZWN0IERPTVdpbmRvd10uCiBQQVNTIGR0LnNldE9iamVj
dCggVEhJUyApOyBkdC5nZXRPYmplY3QoKSBpcyB0aGlzCi1QQVNTIGR0LmdldE9iamVjdCgpLmNv
bnN0cnVjdG9yIGlzIE9iamVjdAorUEFTUyBkdC5nZXRPYmplY3QoKS5jb25zdHJ1Y3RvciBpcyB0
aGlzLmNvbnN0cnVjdG9yCiBGQUlMIGR0LnNldE9iamVjdCggTWF0aCApOyBkdC5QVUJfT0JKRUNU
IHNob3VsZCBiZSBbb2JqZWN0IE1hdGhdLiBXYXMgW29iamVjdCBNYXRoXS4KIFBBU1MgZHQuc2V0
T2JqZWN0KCBNYXRoICk7IGR0LmdldE9iamVjdCgpIGlzIE1hdGgKIFBBU1MgZHQuZ2V0T2JqZWN0
KCkuY29uc3RydWN0b3IgaXMgT2JqZWN0CkluZGV4OiBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09i
amVjdC9Ub09iamVjdC0wMDEuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvamF2YS9sYzMv
SlNPYmplY3QvVG9PYmplY3QtMDAxLmpzCShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3Rz
L2phdmEvbGMzL0pTT2JqZWN0L1RvT2JqZWN0LTAwMS5qcwkod29ya2luZyBjb3B5KQpAQCAtMTc1
LDcgKzE3NSw3IEBAIGFbaSsrXSA9IG5ldyBUZXN0T2JqZWN0KAogICAiZHQuZ2V0T2JqZWN0KCki
LAogICAiZHQuZ2V0T2JqZWN0KCkuY29uc3RydWN0b3IiLAogICAndGhpcycsCi0gICdPYmplY3Qn
KTsKKyAgJ3RoaXMuY29uc3RydWN0b3InKTsKIAogYVtpKytdID0gbmV3IFRlc3RPYmplY3QoCiAg
ICJkdC5zZXRPYmplY3QoIE1hdGggKSIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70454</attachid>
            <date>2010-10-11 11:07:59 -0700</date>
            <delta_ts>2010-10-11 19:13:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47422-20101011110758.patch</filename>
            <type>text/plain</type>
            <size>20888</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTQyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAtMDggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ2hh
bmdlZCBET01XaW5kb3cgdG8gaGF2ZSBhIGNvbnN0cnVjdG9yLiAgVXBkYXRlZCB0aGUgY29kZSBn
ZW5lcmF0b3IKKyAgICAgICAgdG8gYWRkIHNlY3VyaXR5IGNoZWNrcyB0byB0aGUgY29uc3RydWN0
b3JzIGlmIENoZWNrRG9tYWluU2VjdXJpdHkgaXMgCisgICAgICAgIHNldC4gIEFsc28gY2hhbmdl
ZCB0aGUgY29uc3RydWN0b3IgZ2VuZXJhdGlvbiBjb2RlIHRvIHVzZSAKKyAgICAgICAgZ2xvYmFs
T2JqZWN0LT5wcm90b3R5cGUoKSBmb3IgRE9NV2luZG93IG9iamVjdCBwcm90b3R5cGVzIGluc3Rl
YWQKKyAgICAgICAgb2YgInNlbGYiLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDc0MjIKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LWNvbnN0cnVjdG9yLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMC0xMC0w
OCAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA2OTQxOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE2MzIsNiArMTYzMiwx
MiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKVxuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IHN0YXRpY19jYXN0
PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CisKKyAgICAgICAgICAgICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1cml0
eSJ9KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICgh
ZG9tT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKVxuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIp
OworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKGV4ZWMsIGRvbU9iamVj
dC0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG4iKTsKICAgICAgICAgICAgIH0KQEAgLTI4MzgsNyArMjg0NCwxMSBAQCBzdWIgR2Vu
ZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfTo6JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoJHtjb25zdHJ1Y3RvckNsYXNz
TmFtZX06OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwg
Z2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCku
cHJvdG90eXBlLCAke3Byb3RvQ2xhc3NOYW1lfTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpO1xuIik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3Qo
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LT5wcm90b3R5cGUo
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIH0KICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4
ZWMsICR7bnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzfSksIFJlYWRPbmx5IHwgRG9udERlbGV0
ZSB8IERvbnRFbnVtKTtcbiIpIGlmICRudW1iZXJPZmNvbnN0cnVjdFBhcmFtZXRlcnM7CiAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIApJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlz
aW9uIDY5NDE4KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDcgKzM4LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEN1c3RvbU5hdGl2ZUNv
bnZlcnRlciwKICAgICAgICAgQ3VzdG9tUHV0RnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0
LAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEV4dGVuZHNET01HbG9iYWxPYmpl
Y3QsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAogICAgICAgICBMZWdhY3lQYXJl
bnQ9SlNET01XaW5kb3dCYXNlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2OTQyMikKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTEwLTA4
ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZGVkIGFuZCBjaGFuZ2VkIHRlc3RzIHRvIHZl
cmlmeSB0aGF0IERPTVdpbmRvdyBvYmplY3RzIGFyZQorICAgICAgICBjcmVhdGUgd2l0aCBhcHBy
b3ByaWF0ZSBjb25zdHJ1Y3RvcnMgYW5kIHRoYXQgdGhvc2UgY29uc3RydWN0b3JzCisgICAgICAg
IGFyZSBub3QgY2FsbGFibGUgZGlyZWN0bHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NzQyMgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctY29uc3RydWN0b3IuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdG9ycy1jYWNoZWQuanM6Cisg
ICAgICAgICogZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1
dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLWRpci1nbG9iYWwtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGphdmEvbGMzL0pTT2JqZWN0L1RvSlNPYmplY3QtMDAxLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBqYXZhL2xjMy9KU09iamVjdC9Ub09iamVjdC0wMDEtZXhwZWN0ZWQu
dHh0OgorCiAyMDEwLTEwLTA4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5o
ZXJpdGFuY2UtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAg
UEFTUyBET01Ub2tlbkxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5mbwogUEFTUyBET01Ub2tlbkxp
c3RDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAuY2xhc3NM
aXN0LmNvbnN0cnVjdG9yCiBQQVNTIERPTVRva2VuTGlzdFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmZvcm1zLnRlc3RGb3JtLjAuMC5jbGFzc0xpc3QuX19wcm90b19fCiBQQVNTIERPTVdp
bmRvdyBmcm9tIGlubmVyCitQQVNTIERPTVdpbmRvd0NvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNvbnN0cnVj
dG9yCiBQQVNTIERPTVdpbmRvd1Byb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRl
c3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5fX3Byb3RvX18KIFBBU1MgRG9jdW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9j
dW1lbnQuX19wcm90b19fLl9fcHJvdG9fXwogUEFTUyBFbGVtZW50UHJvdG90eXBlIGZyb20gaW5u
ZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9f
XwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBw
ZXItY2xhc3Nlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw3ICsxMzAsNyBA
QCBPdGhlcgogCiBQQVNTIGpzV3JhcHBlckNsYXNzKHdpbmRvdykgaXMgJ0RPTVdpbmRvdycKIFBB
U1MganNXcmFwcGVyQ2xhc3Mod2luZG93Ll9fcHJvdG9fXykgaXMgJ0RPTVdpbmRvd1Byb3RvdHlw
ZScKLUZBSUwganNXcmFwcGVyQ2xhc3Mod2luZG93LmNvbnN0cnVjdG9yKSBzaG91bGQgYmUgRE9N
V2luZG93Q29uc3RydWN0b3IuIFdhcyBGdW5jdGlvbi4KK1BBU1MganNXcmFwcGVyQ2xhc3Mod2lu
ZG93LmNvbnN0cnVjdG9yKSBpcyAnRE9NV2luZG93Q29uc3RydWN0b3InCiAKIEhUTUwgRE9NCiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctY29uc3RydWN0b3ItZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNCBAQAorVGVzdCBmb3IgYnVnIDQ3NDIyOiB3aW5kb3cgY29uc3RydWN0
b3Igc2hvdWxkbid0IGJlIGRpcmVjdGx5IGNhbGxhYmxlLgorCitXaW5kb3cgY29uc3RydWN0b3Ig
cHJvdG90eXBlIGlzIHdpbmRvdyBwcm90b3R5cGU6IFBBU1MKK1dpbmRvdyBjb25zdHJ1Y3RvciBu
b3QgY2FsbGFibGU6IFBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctY29uc3RydWN0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LWNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTQgQEAKKzxodG1sPgorPGhlYWQ+PC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZv
ciA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQyMiI+
YnVnIDQ3NDIyPC9hPjoKK3dpbmRvdyBjb25zdHJ1Y3RvciBzaG91bGRuJ3QgYmUgZGlyZWN0bHkg
Y2FsbGFibGUuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlLCBjb2xvcikgCit7
CisgICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
IHBhcmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7
CisgICAgcGFyYWdyYXBoLnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAo
Y29sb3IpCisgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorICAg
IAorZnVuY3Rpb24gdGVzdENvbnN0cnVjdG9yUHJvdG8oKQoreworICAgIHZhciB0ZXN0TmFtZSA9
ICJXaW5kb3cgY29uc3RydWN0b3IgcHJvdG90eXBlIGlzIHdpbmRvdyBwcm90b3R5cGUiCisgICAg
aWYgKHdpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgPT09IHdpbmRvdy5fX3Byb3RvX18pCisg
ICAgICAgIGxvZyh0ZXN0TmFtZSArICI6IFBBU1MiLCAiZ3JlZW4iKTsKKyAgICBlbHNlCisgICAg
ICAgIGxvZyh0ZXN0TmFtZSArICI6IEZBSUwiLCAicmVkIik7Cit9CisKK2Z1bmN0aW9uIHRlc3RD
b25zdHJ1Y3Rvck5vdENhbGxhYmxlKCkKK3sKKyAgICB2YXIgdGVzdE5hbWUgPSAiV2luZG93IGNv
bnN0cnVjdG9yIG5vdCBjYWxsYWJsZSIKKyAgICAKKyAgICB2YXIgdGhyZXdFeGMgPSBmYWxzZTsK
KyAgICAKKyAgICB0cnkgeworICAgICAgICBuZXdXID0gd2luZG93LmNvbnN0cnVjdG9yKCkKKyAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdGhyZXdFeGMgPSB0cnVlOworICAgIH0KKworICAgIGlm
ICh0aHJld0V4YykgeworICAgICAgICBsb2codGVzdE5hbWUgKyAiOiBQQVNTIiwgImdyZWVuIik7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgbG9nKHRlc3ROYW1lICsgIjogRkFJTCIsICJyZWQiKTsK
KyAgICB9Cit9CisKK3Rlc3RDb25zdHJ1Y3RvclByb3RvKCk7Cit0ZXN0Q29uc3RydWN0b3JOb3RD
YWxsYWJsZSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE5Miw2
ICsyMTkyLDQ2IEBAIHdpbmRvdy5jb25zb2xlLnRpbWUgW2Z1bmN0aW9uXQogd2luZG93LmNvbnNv
bGUudGltZUVuZCBbZnVuY3Rpb25dCiB3aW5kb3cuY29uc29sZS50cmFjZSBbZnVuY3Rpb25dCiB3
aW5kb3cuY29uc29sZS53YXJuIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3RvciBbb2JqZWN0
IERPTVdpbmRvd0NvbnN0cnVjdG9yXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZSBbb2Jq
ZWN0IERPTVdpbmRvd1Byb3RvdHlwZV0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuYWRk
RXZlbnRMaXN0ZW5lciBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmFs
ZXJ0IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuYXRvYiBbZnVuY3Rp
b25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmJsdXIgW2Z1bmN0aW9uXQord2luZG93
LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5idG9hIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rv
ci5wcm90b3R5cGUuY2FwdHVyZUV2ZW50cyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3Iu
cHJvdG90eXBlLmNsZWFySW50ZXJ2YWwgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnBy
b3RvdHlwZS5jbGVhclRpbWVvdXQgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3Rv
dHlwZS5jbG9zZSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmNvbmZp
cm0gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jcmVhdGVCbG9iVVJM
IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuZGlzcGF0Y2hFdmVudCBb
ZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLmZpbmQgW2Z1bmN0aW9uXQor
d2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5mb2N1cyBbZnVuY3Rpb25dCit3aW5kb3cuY29u
c3RydWN0b3IucHJvdG90eXBlLmdldENvbXB1dGVkU3R5bGUgW2Z1bmN0aW9uXQord2luZG93LmNv
bnN0cnVjdG9yLnByb3RvdHlwZS5nZXRNYXRjaGVkQ1NTUnVsZXMgW2Z1bmN0aW9uXQord2luZG93
LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5nZXRTZWxlY3Rpb24gW2Z1bmN0aW9uXQord2luZG93LmNv
bnN0cnVjdG9yLnByb3RvdHlwZS5tb3ZlQnkgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9y
LnByb3RvdHlwZS5tb3ZlVG8gW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlw
ZS5vcGVuIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUub3BlbkRhdGFi
YXNlIFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucG9zdE1lc3NhZ2Ug
W2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5wcmludCBbZnVuY3Rpb25d
Cit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnByb21wdCBbZnVuY3Rpb25dCit3aW5kb3cu
Y29uc3RydWN0b3IucHJvdG90eXBlLnJlbGVhc2VFdmVudHMgW2Z1bmN0aW9uXQord2luZG93LmNv
bnN0cnVjdG9yLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyIFtmdW5jdGlvbl0KK3dpbmRv
dy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUucmVzaXplQnkgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0
cnVjdG9yLnByb3RvdHlwZS5yZXNpemVUbyBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3Iu
cHJvdG90eXBlLnJldm9rZUJsb2JVUkwgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnBy
b3RvdHlwZS5zY3JvbGwgW2Z1bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5z
Y3JvbGxCeSBbZnVuY3Rpb25dCit3aW5kb3cuY29uc3RydWN0b3IucHJvdG90eXBlLnNjcm9sbFRv
IFtmdW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuc2V0SW50ZXJ2YWwgW2Z1
bmN0aW9uXQord2luZG93LmNvbnN0cnVjdG9yLnByb3RvdHlwZS5zZXRUaW1lb3V0IFtmdW5jdGlv
bl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuc2hvd01vZGFsRGlhbG9nIFtmdW5jdGlv
bl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuc3RvcCBbZnVuY3Rpb25dCit3aW5kb3cu
Y29uc3RydWN0b3IucHJvdG90eXBlLndlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlIFtm
dW5jdGlvbl0KK3dpbmRvdy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUud2Via2l0Q29udmVydFBvaW50
RnJvbVBhZ2VUb05vZGUgW2Z1bmN0aW9uXQogd2luZG93LmNyeXB0byBbdW5kZWZpbmVkXQogd2lu
ZG93LmRlY29kZVVSSSBbZnVuY3Rpb25dCiB3aW5kb3cuZGVjb2RlVVJJQ29tcG9uZW50IFtmdW5j
dGlvbl0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMzMsNiArMzMz
LDcgQEAgUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcAogUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdjbGllbnRJbmZvcm1h
dGlvbicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ2Nsb3NlZCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2NvbnNvbGUnKSBpcyAnb2JqZWN0Jwor
UEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdjb25z
dHJ1Y3RvcicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHdpbmRvdywgJ2NyeXB0bycpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2RlYnVnJykgaXMgJ29iamVjdCcK
IFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZGVj
b2RlVVJJJykgaXMgJ29iamVjdCcKQEAgLTQ5Nyw3ICs0OTgsNiBAQCBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3Iod2luZG93LCAnY2xlYXJUaW1lb3V0JykgaXMgdW5kZWZpbmVkLgogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2Nsb3NlJykgaXMgdW5kZWZpbmVkLgog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2NvbmZpcm0nKSBp
cyB1bmRlZmluZWQuCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93
LCAnY29uc3RydWN0b3InKSBpcyB1bmRlZmluZWQuCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Iod2luZG93LCAnZGlzcGF0Y2hFdmVudCcpIGlzIHVuZGVmaW5lZC4KIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdmaW5kJykgaXMgdW5kZWZp
bmVkLgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2ZvY3Vz
JykgaXMgdW5kZWZpbmVkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Njcmlw
dC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVz
Y3JpcHRvcnMuanMJKHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNiArNyw3IEBAIHZhciBfX3NraXBfXyA9IHsKIAogICAgIC8vIERvbid0IGxv
ZyBEdW1wUmVuZGVyVHJlZSBpbmplY3RlZCBvYmplY3RzCiAgICAgImxheW91dFRlc3RDb250cm9s
bGVyIiA6IDEsIC8vIFdvcmsgYXJvdW5kIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExMzczCisgICAgImNvbnN0cnVjdG9yIiA6IDAsICAvLyBXb3JrYXJvdW5kIHRvIGlu
Y2x1ZGUgY29uc3RydWN0b3IgaW4gd2luZG93UHJvcGVydHlOYW1lcwogICAgICJHQ0NvbnRyb2xs
ZXIiIDogMSwKICAgICAiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIiIDogMSwKICAgICAiYXBwbGVT
Y3JpcHRDb250cm9sbGVyIiA6IDEsCkBAIC01OSw2ICs2MCw4IEBAIGZvciAodmFyIGkgPSAwOyBp
IDwgcHJvdG9Qcm9wZXJ0eU5hbWVzLmwKICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBi
ZWNhdXNlIHRoZXkgZG8gbm90IGV4aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuCiAgICAgaWYg
KHByb3RvUHJvcGVydHlOYW1lc1tpXSA9PSAiY3JlYXRlQmxvYlVSTCIgfHwgcHJvdG9Qcm9wZXJ0
eU5hbWVzW2ldID09ICJyZXZva2VCbG9iVVJMIikKICAgICAgICAgY29udGludWU7CisgICAgaWYg
KHByb3RvUHJvcGVydHlOYW1lc1tpXSA9PSAiY29uc3RydWN0b3IiKQorICAgICAgICBjb250aW51
ZTsKICAgICBzaG91bGRCZVVuZGVmaW5lZCgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3csICciICsgcHJvdG9Qcm9wZXJ0eU5hbWVzW2ldICsgIicpIik7CiB9CiAKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9jb25zdHJ1Y3RvcnMtY2FjaGVkLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9jb25zdHJ1
Y3RvcnMtY2FjaGVkLmpzCShyZXZpc2lvbiA2OTQxOCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NjcmlwdC10ZXN0cy9jb25zdHJ1Y3RvcnMtY2FjaGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE5ICsxLDE5IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBvYmplY3Rz
IHdpdGggc2VjdXJpdHkgcmVzdHJpY3Rpb25zIGFyZSBjYWNoZWQgY29ycmVjdGx5Iik7CiAKLXZh
ciBjb25zdHJ1Y3RvcnMgPSBbIkltYWdlIiwgIk9wdGlvbiIsICJYTUxIdHRwUmVxdWVzdCIsICJB
dWRpbyJdOwordmFyIGN0b3JzID0gWyJJbWFnZSIsICJPcHRpb24iLCAiWE1MSHR0cFJlcXVlc3Qi
LCAiQXVkaW8iXTsKIAotZm9yICh2YXIgaSA9IDA7IGkgPCBjb25zdHJ1Y3RvcnMubGVuZ3RoOyBp
KyspIHsKLSAgICB2YXIgY29uc3RydWN0b3IgPSBjb25zdHJ1Y3RvcnNbaV07Citmb3IgKHZhciBp
ID0gMDsgaSA8IGN0b3JzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIGN0b3IgPSBjdG9yc1tpXTsK
ICAgICB0cnkgewogICAgICAgICAvLyBUZXN0IHJldHJpZXZpbmcgdGhlIG9iamVjdCB0d2ljZSBy
ZXN1bHRzIGluIHRoZSBzYW1lIG9iamVjdAotICAgICAgICBzaG91bGRCZShjb25zdHJ1Y3Rvciwg
Y29uc3RydWN0b3IpOworICAgICAgICBzaG91bGRCZShjdG9yLCBjdG9yKTsKIAogICAgICAgICAv
LyBCZSBwYXJhbm9pZCAtLSBtYWtlIHN1cmUgdGhhdCBzZXR0aW5nIGEgcHJvcGVydHkgcmVzdWx0
cyBpbiB0aGF0IHByb3BlcnR5CiAgICAgICAgIC8vIHN0YXlzCi0gICAgICAgIHRoaXNbY29uc3Ry
dWN0b3JdLnRlc3RQcm9wZXJ0eSA9ICJwcm9wZXJ0eSBzZXQgc3VjY2Vzc2Z1bGx5IjsKLSAgICAg
ICAgc2hvdWxkQmUoY29uc3RydWN0b3IgKyAiLnRlc3RQcm9wZXJ0eSIsICcicHJvcGVydHkgc2V0
IHN1Y2Nlc3NmdWxseSInKTsKKyAgICAgICAgdGhpc1tjdG9yXS50ZXN0UHJvcGVydHkgPSAicHJv
cGVydHkgc2V0IHN1Y2Nlc3NmdWxseSI7CisgICAgICAgIHNob3VsZEJlKGN0b3IgKyAiLnRlc3RQ
cm9wZXJ0eSIsICcicHJvcGVydHkgc2V0IHN1Y2Nlc3NmdWxseSInKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoIlRlc3RpbmcgIiArIGNvbnN0cnVjdG9yICsgIiB0aHJl
dyAiICsgZSk7CisgICAgICAgIHRlc3RGYWlsZWQoIlRlc3RpbmcgIiArIGN0b3IgKyAiIHRocmV3
ICIgKyBlKTsKICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0zNzQsNiArMzc0LDggQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2Ny
aQogCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWdldC10ZXN0Lmh0bWwgZnJvbSBmcmFtZSB3
aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNz
LWdldC5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiAKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2Vz
cyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2Vz
L2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZ2V0LXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0
bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKwogVGhpcyB0ZXN0
IGNoZWNrcyBjcm9zcy1mcmFtZSBhY2Nlc3Mgc2VjdXJpdHkgKHJkYXI6Ly9wcm9ibGVtLzUyNTEz
MDkpLgogCiAKQEAgLTUxNSw2ICs1MTcsNyBAQCBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5j
YXB0dXJlRXZlbnRzCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5jbGVhckludGVydmFsJykg
c2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuY2xl
YXJUaW1lb3V0Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJn
ZXRXaW5kb3cuY29uZmlybScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KK1BBU1M6IGNhbkdl
dCgndGFyZ2V0V2luZG93LmNvbnN0cnVjdG9yJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgog
UEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuZmluZCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LmdldENvbXB1dGVkU3R5bGUnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5nZXRNYXRjaGVk
Q1NTUnVsZXMnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1n
ZXQuaHRtbAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYg
KzExNCw3IEBACiAgICAgICAgICAgICAiY2xlYXJJbnRlcnZhbCIsIAogICAgICAgICAgICAgImNs
ZWFyVGltZW91dCIsIAogICAgICAgICAgICAgImNvbmZpcm0iLAorICAgICAgICAgICAgImNvbnN0
cnVjdG9yIiwKICAgICAgICAgICAgICJmaW5kIiwgCiAgICAgICAgICAgICAiZ2V0Q29tcHV0ZWRT
dHlsZSIsCiAgICAgICAgICAgICAiZ2V0TWF0Y2hlZENTU1J1bGVzIiwgCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1wdXQuaHRtbAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MjA2LDYgKzIwNiw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgc2V0Rm9yYmlk
ZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiY2xlYXJUaW1lb3V0Iik7CiAgICAgc2V0Rm9yYmlk
ZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiY2xvc2UiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9w
ZXJ0eSh0YXJnZXRXaW5kb3csICJjb25maXJtIik7CisgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHko
dGFyZ2V0V2luZG93LCAiY29uc3RydWN0b3IiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0
YXJnZXRXaW5kb3csICJldmFsIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2lu
ZG93LCAiZmluZCIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgImZv
Y3VzIik7CkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1kaXItZ2xvYmFsLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1k
aXItZ2xvYmFsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS1kaXItZ2xvYmFsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNCw2ICs0LDcgQEAgVGVzdHMgdGhhdCBjb25zb2xlIGR1bXBzIGdsb2JhbCBvYmplY3Qgdwog
ewogICAgIEFycmF5IDogMQogICAgIGNvbnNvbGUgOiAxCisgICAgY29uc3RydWN0b3IgOiAxCiAg
ICAgZG9jdW1lbnQgOiAxCiAgICAgZG9pdCA6IDEKICAgICBldmFsIDogMQpJbmRleDogTGF5b3V0
VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2phdmEvbGMzL0pTT2JqZWN0L1RvSlNPYmplY3QtMDAxLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0cy9qYXZhL2xjMy9KU09i
amVjdC9Ub0pTT2JqZWN0LTAwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2LDcg
KzE2LDcgQEAgUEFTUyBqc29jLnNldEpTT2JqZWN0KCBNeU9iamVjdCApOyBqc29jLgogUEFTUyBq
c29jLmdldEpTT2JqZWN0KCkuY29uc3RydWN0b3IgaXMgRnVuY3Rpb24KIEZBSUwganNvYy5zZXRK
U09iamVjdCggVEhJUyApOyBqc29jLlBVQl9KU09CSkVDVCBzaG91bGQgYmUgW29iamVjdCBET01X
aW5kb3ddLiBXYXMgW29iamVjdCBET01XaW5kb3ddLgogUEFTUyBqc29jLnNldEpTT2JqZWN0KCBU
SElTICk7IGpzb2MuZ2V0SlNPYmplY3QoKSBpcyB0aGlzCi1QQVNTIGpzb2MuZ2V0SlNPYmplY3Qo
KS5jb25zdHJ1Y3RvciBpcyBPYmplY3QKK1BBU1MganNvYy5nZXRKU09iamVjdCgpLmNvbnN0cnVj
dG9yIGlzIHRoaXMuY29uc3RydWN0b3IKIEZBSUwganNvYy5zZXRKU09iamVjdCggTWF0aCApOyBq
c29jLlBVQl9KU09CSkVDVCBzaG91bGQgYmUgW29iamVjdCBNYXRoXS4gV2FzIFtvYmplY3QgTWF0
aF0uCiBQQVNTIGpzb2Muc2V0SlNPYmplY3QoIE1hdGggKTsganNvYy5nZXRKU09iamVjdCgpIGlz
IE1hdGgKIFBBU1MganNvYy5nZXRKU09iamVjdCgpLmNvbnN0cnVjdG9yIGlzIE9iamVjdApJbmRl
eDogTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09iamVjdC0wMDEuanMJ
KHJldmlzaW9uIDY5NDE4KQorKysgTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9KU09i
amVjdC0wMDEuanMJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw3ICsxNzMsNyBAQCBhW2krK10gPSBu
ZXcgVGVzdE9iamVjdCgKICAgImpzb2MuZ2V0SlNPYmplY3QoKSIsCiAgICJqc29jLmdldEpTT2Jq
ZWN0KCkuY29uc3RydWN0b3IiLAogICAndGhpcycsCi0gICdPYmplY3QnKTsKKyAgJ3RoaXMuY29u
c3RydWN0b3InKTsKIAogYVtpKytdID0gbmV3IFRlc3RPYmplY3QoCiAgICJqc29jLnNldEpTT2Jq
ZWN0KCBNYXRoICkiLApJbmRleDogTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNPYmplY3QvVG9PYmpl
Y3QtMDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qYXZhL2xjMy9K
U09iamVjdC9Ub09iamVjdC0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2OTQxOCkKKysrIExh
eW91dFRlc3RzL2phdmEvbGMzL0pTT2JqZWN0L1RvT2JqZWN0LTAwMS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgUEFTUyBkdC5zZXRPYmplY3QoIE15T2JqZWN0
ICk7IGR0LmdldE9iagogUEFTUyBkdC5nZXRPYmplY3QoKS5jb25zdHJ1Y3RvciBpcyBGdW5jdGlv
bgogRkFJTCBkdC5zZXRPYmplY3QoIFRISVMgKTsgZHQuUFVCX09CSkVDVCBzaG91bGQgYmUgW29i
amVjdCBET01XaW5kb3ddLiBXYXMgW29iamVjdCBET01XaW5kb3ddLgogUEFTUyBkdC5zZXRPYmpl
Y3QoIFRISVMgKTsgZHQuZ2V0T2JqZWN0KCkgaXMgdGhpcwotUEFTUyBkdC5nZXRPYmplY3QoKS5j
b25zdHJ1Y3RvciBpcyBPYmplY3QKK1BBU1MgZHQuZ2V0T2JqZWN0KCkuY29uc3RydWN0b3IgaXMg
dGhpcy5jb25zdHJ1Y3RvcgogRkFJTCBkdC5zZXRPYmplY3QoIE1hdGggKTsgZHQuUFVCX09CSkVD
VCBzaG91bGQgYmUgW29iamVjdCBNYXRoXS4gV2FzIFtvYmplY3QgTWF0aF0uCiBQQVNTIGR0LnNl
dE9iamVjdCggTWF0aCApOyBkdC5nZXRPYmplY3QoKSBpcyBNYXRoCiBQQVNTIGR0LmdldE9iamVj
dCgpLmNvbnN0cnVjdG9yIGlzIE9iamVjdApJbmRleDogTGF5b3V0VGVzdHMvamF2YS9sYzMvSlNP
YmplY3QvVG9PYmplY3QtMDAxLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2phdmEvbGMz
L0pTT2JqZWN0L1RvT2JqZWN0LTAwMS5qcwkocmV2aXNpb24gNjk0MTgpCisrKyBMYXlvdXRUZXN0
cy9qYXZhL2xjMy9KU09iamVjdC9Ub09iamVjdC0wMDEuanMJKHdvcmtpbmcgY29weSkKQEAgLTE3
NSw3ICsxNzUsNyBAQCBhW2krK10gPSBuZXcgVGVzdE9iamVjdCgKICAgImR0LmdldE9iamVjdCgp
IiwKICAgImR0LmdldE9iamVjdCgpLmNvbnN0cnVjdG9yIiwKICAgJ3RoaXMnLAotICAnT2JqZWN0
Jyk7CisgICd0aGlzLmNvbnN0cnVjdG9yJyk7CiAKIGFbaSsrXSA9IG5ldyBUZXN0T2JqZWN0KAog
ICAiZHQuc2V0T2JqZWN0KCBNYXRoICkiLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>