<?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>112470</bug_id>
          
          <creation_ts>2013-03-15 15:00:24 -0700</creation_ts>
          <short_desc>Web Inspector: support changing local variables in frontend</short_desc>
          <delta_ts>2013-03-25 05:41:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Peter Rybin">prybin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rniwa</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>856315</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-15 15:00:24 -0700</bug_when>
    <thetext>V8/Backend/protocol support changing local variables (see https://bugs.webkit.org/show_bug.cgi?id=107829 )

However Frontend is yet to support it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856320</commentid>
    <comment_count>1</comment_count>
      <attachid>193379</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-15 15:08:07 -0700</bug_when>
    <thetext>Created attachment 193379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857061</commentid>
    <comment_count>2</comment_count>
      <attachid>193379</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-18 06:43:07 -0700</bug_when>
    <thetext>Comment on attachment 193379
Patch

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

Maybe test?

&gt; Source/WebCore/inspector/front-end/RemoteObject.js:59
&gt; +        this._scopeRef = scopeRef;

Why not do this._scopeRef = scopeRef; unconditionally ?

&gt; Source/WebCore/inspector/front-end/RemoteObject.js:122
&gt; +    console.assert(typeof payload === &quot;object&quot;, &quot;Remote object payload should only be an object&quot;);

Do really want to keep this check in production code?

&gt; Source/WebCore/inspector/front-end/RemoteObject.js:286
&gt; +        

Remove empty line.

&gt; Source/WebCore/inspector/front-end/RemoteObject.js:452
&gt; +    this.scopeHolder = scopeHolder;

I&apos;d merge these two objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858398</commentid>
    <comment_count>3</comment_count>
      <attachid>193849</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-19 10:06:12 -0700</bug_when>
    <thetext>Created attachment 193849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858401</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-19 10:07:58 -0700</bug_when>
    <thetext>&gt; Maybe test?

I included it into existing test.

&gt; &gt; Source/WebCore/inspector/front-end/RemoteObject.js:59
&gt; &gt; +        this._scopeRef = scopeRef;
&gt; Why not do this._scopeRef = scopeRef; unconditionally ?
Done

&gt; &gt; Source/WebCore/inspector/front-end/RemoteObject.js:122
&gt; &gt; +    console.assert(typeof payload === &quot;object&quot;, &quot;Remote object payload should only be an object&quot;);
&gt; Do really want to keep this check in production code?
Done

&gt; &gt; Source/WebCore/inspector/front-end/RemoteObject.js:286
&gt; &gt; +        
&gt; Remove empty line.
Done

&gt; &gt; Source/WebCore/inspector/front-end/RemoteObject.js:452
&gt; &gt; +    this.scopeHolder = scopeHolder;
&gt; I&apos;d merge these two objects.
Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858436</commentid>
    <comment_count>5</comment_count>
      <attachid>193849</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-19 10:32:37 -0700</bug_when>
    <thetext>Comment on attachment 193849
Patch

Attachment 193849 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17242090

New failing tests:
inspector/debugger/debugger-eval-while-paused.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858472</commentid>
    <comment_count>6</comment_count>
      <attachid>193849</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 10:55:39 -0700</bug_when>
    <thetext>Comment on attachment 193849
Patch

Attachment 193849 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17244029

New failing tests:
inspector/debugger/debugger-eval-while-paused.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858723</commentid>
    <comment_count>7</comment_count>
      <attachid>193918</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-19 14:15:59 -0700</bug_when>
    <thetext>Created attachment 193918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859435</commentid>
    <comment_count>8</comment_count>
      <attachid>193918</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-20 08:16:27 -0700</bug_when>
    <thetext>Comment on attachment 193918
Patch

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

&gt; LayoutTests/inspector/debugger/debugger-eval-while-paused-expected.txt:1
&gt; +Tests that evaluation in console works fine when script is paused. It also checks that stack and global variables are accessible from the console. Additionally it tries to modify local variable value and checks that it works.

Please put this in a separate test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859728</commentid>
    <comment_count>9</comment_count>
      <attachid>194123</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-20 14:18:24 -0700</bug_when>
    <thetext>Created attachment 194123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859731</commentid>
    <comment_count>10</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-20 14:20:46 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 193918 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=193918&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector/debugger/debugger-eval-while-paused-expected.txt:1
&gt; &gt; +Tests that evaluation in console works fine when script is paused. It also checks that stack and global variables are accessible from the console. Additionally it tries to modify local variable value and checks that it works.
&gt; 
&gt; Please put this in a separate test.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860271</commentid>
    <comment_count>11</comment_count>
      <attachid>194123</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-21 06:21:23 -0700</bug_when>
    <thetext>Comment on attachment 194123
Patch

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

&gt; LayoutTests/inspector/debugger/debugger-change-variable.html:45
&gt; +        InspectorTest.evaluateInConsole(&quot;localObject.a + globalVar.b&quot;, step5);

Steps 1-4 is just a clone of those in debugger-eval-while-paused.html and not related to the tested feature, please remove them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860371</commentid>
    <comment_count>12</comment_count>
      <attachid>194268</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-21 08:36:15 -0700</bug_when>
    <thetext>Created attachment 194268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860374</commentid>
    <comment_count>13</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-21 08:36:57 -0700</bug_when>
    <thetext>&gt; Steps 1-4 is just a clone of those in debugger-eval-while-paused.html and not related to the tested feature, please remove them.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861475</commentid>
    <comment_count>14</comment_count>
      <attachid>194268</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-22 08:07:50 -0700</bug_when>
    <thetext>Comment on attachment 194268
Patch

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

&gt; LayoutTests/inspector/debugger/debugger-change-variable.html:37
&gt; +        InspectorTest.evaluateInConsole(&quot;localObject.a + 10&quot;, step4);

Why +10?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861481</commentid>
    <comment_count>15</comment_count>
      <attachid>194551</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-22 08:12:11 -0700</bug_when>
    <thetext>Created attachment 194551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861482</commentid>
    <comment_count>16</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-22 08:12:48 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 194268 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=194268&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector/debugger/debugger-change-variable.html:37
&gt; &gt; +        InspectorTest.evaluateInConsole(&quot;localObject.a + 10&quot;, step4);
&gt; 
&gt; Why +10?

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861488</commentid>
    <comment_count>17</comment_count>
      <attachid>194553</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-22 08:21:23 -0700</bug_when>
    <thetext>Created attachment 194553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861512</commentid>
    <comment_count>18</comment_count>
      <attachid>194553</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-22 08:47:15 -0700</bug_when>
    <thetext>Comment on attachment 194553
Patch

Rejecting attachment 194553 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 194553, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 14015 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
55&gt;At revision 14015.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://webkit-commit-queue.appspot.com/results/17291066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862007</commentid>
    <comment_count>19</comment_count>
      <attachid>194662</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-22 17:17:23 -0700</bug_when>
    <thetext>Created attachment 194662
Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862017</commentid>
    <comment_count>20</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-22 17:25:08 -0700</bug_when>
    <thetext>Hope this rebase patch will pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862671</commentid>
    <comment_count>21</comment_count>
      <attachid>194662</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 05:41:16 -0700</bug_when>
    <thetext>Comment on attachment 194662
Rebase

Clearing flags on attachment: 194662

Committed r146759: &lt;http://trac.webkit.org/changeset/146759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862672</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 05:41:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193379</attachid>
            <date>2013-03-15 15:08:07 -0700</date>
            <delta_ts>2013-03-19 10:06:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112470-20130316020402.patch</filename>
            <type>text/plain</type>
            <size>12618</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1MDE0YTYwNGVkYWFm
YmJlMDAwZmJjOWJkNGQzYjU1NmRhYWY5ZC4uYTVkNDFkN2FmZjZmOGIzZGNjYzBkYTBhNzNkNWQ3
YWEwMDkzMjZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAzLTE1ICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBjaGFuZ2luZyBsb2NhbCB2YXJpYWJsZXMgaW4gZnJvbnRlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjb3BlUmVmIHR5cGUgaXMgYWRk
ZWQgdG8gUmVtb3RlT2JqZWN0IGFuZCBzZXRQcm9wZXJ0eVZhbHVlIGlzIHBhdGNoZWQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUucHJvdG90eXBl
LmdldCBpZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVz
U2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3BlTWFpblRyZWVF
bGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlLmRpZEdldERldGFpbHMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBlLm9ucG9wdWxh
dGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5wcm90b3R5cGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5wcm90b3R5cGUuc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLl9zZXREZWNsYXJhdGl2ZVZhcmlh
YmxlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjb3BlSG9sZGVyUmVmKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY29wZVJlZik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVD
aGFpblNpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUpOgorCiAyMDEzLTAzLTEzICBBbmRyZXkg
THVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBbQ29kZU1pcnJvcl0gdG9rZW4gaGlnaGxpZ2h0IHN0aWxsIGhhcyBzb21lIHByb2JsZW1z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9k
ZWwuanMKaW5kZXggZGIxNGM2NWQ1ODQwM2I5ZTFjYmExYjk1MTQ2NmZlOGJjNTUzYTZhMS4uYWI3
ZGVhNWRjOWJmYzcxMDkxNmE5ZjllOWI1MDE4MzZjOTAwNTI5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtNzA2LDYg
KzcwNiwxNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUucHJvdG90eXBl
ID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICov
CisgICAgZ2V0IGlkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wYXlsb2FkLmNhbGxG
cmFtZUlkOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcmV0dXJuIHtBcnJheS48RGVidWdn
ZXJBZ2VudC5TY29wZT59CiAgICAgICovCiAgICAgZ2V0IHNjb3BlQ2hhaW4oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2Vj
dGlvbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVy
dGllc1NlY3Rpb24uanMKaW5kZXggYzA2ZmU0M2MwMDU4ZjEwNWNlYTU2NDQzYTI1YzAwYTg5NTM5
NWVlMS4uOTk3MzE1ZjNjYjczMzEyZTA0YmQ2ZGYwNjBjMzg1OWEwMDVjMWVmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2Vj
dGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFBy
b3BlcnRpZXNTZWN0aW9uLmpzCkBAIC01MjMsNiArNTIzLDggQEAgV2ViSW5zcGVjdG9yLkZ1bmN0
aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIHNj
b3BlQ2hhaW4gPSByZXNwb25zZS5zY29wZUNoYWluOwogICAgICAgICAgICAgaWYgKCFzY29wZUNo
YWluKQogICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHZhciBzY29wZUhvbGRl
clJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVIb2xkZXJSZWYodW5kZWZpbmVkLCB0aGlzLl9y
ZW1vdGVPYmplY3Qub2JqZWN0SWQpOworICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBzY29wZUNoYWluLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAg
ICAgdmFyIHNjb3BlID0gc2NvcGVDaGFpbltpXTsKICAgICAgICAgICAgICAgICB2YXIgdGl0bGUg
PSBudWxsOwpAQCAtNTU0LDggKzU1NiwxNCBAQCBXZWJJbnNwZWN0b3IuRnVuY3Rpb25TY29wZU1h
aW5UcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
b2xlLmVycm9yKCJVbmtub3duIHNjb3BlIHR5cGU6ICIgKyBzY29wZS50eXBlKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgICAgIHZhciByZW1vdGVPYmplY3QgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Q
YXlsb2FkKHNjb3BlLm9iamVjdCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
dmFyIHNjb3BlUmVmOworICAgICAgICAgICAgICAgIGlmIChpc1RydWVPYmplY3QpCisgICAgICAg
ICAgICAgICAgICAgIHNjb3BlUmVmID0gdW5kZWZpbmVkOworICAgICAgICAgICAgICAgIGVsc2Ug
CisgICAgICAgICAgICAgICAgICAgIHNjb3BlUmVmID0gbmV3IFdlYkluc3BlY3Rvci5TY29wZVJl
ZihpLCBzY29wZUhvbGRlclJlZik7CisKKyAgICAgICAgICAgICAgICB2YXIgcmVtb3RlT2JqZWN0
ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tU2NvcGVQYXlsb2FkKHNjb3BlLm9iamVj
dCwgc2NvcGVSZWYpOwogICAgICAgICAgICAgICAgIGlmIChpc1RydWVPYmplY3QpIHsKICAgICAg
ICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFBy
b3BlcnR5LmZyb21TY29wZVZhbHVlKHRpdGxlLCByZW1vdGVPYmplY3QpOwogICAgICAgICAgICAg
ICAgICAgICBwcm9wZXJ0eS5wYXJlbnRPYmplY3QgPSBudWxsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwppbmRleCAzNWNiZjFiNmJm
YWUzNmUwNjJhNTExZTQwZDcwMzNhYmIyMjI5ZmM0Li4yMTYzMjg1MGYxNjAzNDgzMjU5NWM3MGNm
MjZlYjJjODAzMzQ3NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtMzYsOCArMzYsOSBAQAogICogQHBhcmFtIHsqfSB2
YWx1ZQogICogQHBhcmFtIHtzdHJpbmc9fSBkZXNjcmlwdGlvbgogICogQHBhcmFtIHtSdW50aW1l
QWdlbnQuT2JqZWN0UHJldmlldz19IHByZXZpZXcKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNj
b3BlUmVmPX0gc2NvcGVSZWYKICAqLwotV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGZ1bmN0
aW9uKG9iamVjdElkLCB0eXBlLCBzdWJ0eXBlLCB2YWx1ZSwgZGVzY3JpcHRpb24sIHByZXZpZXcp
CitXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5cGUsIHN1
YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbiwgcHJldmlldywgc2NvcGVSZWYpCiB7CiAgICAgdGhp
cy5fdHlwZSA9IHR5cGU7CiAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7CkBAIC01NCw2ICs1
NSw4IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3RJZCwgdHlw
ZSwgc3VidHlwZSwgdmFsdWUsIGRlc2NyaXB0aW9uCiAgICAgICAgIHRoaXMuX2hhc0NoaWxkcmVu
ID0gZmFsc2U7CiAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICB9CisgICAgaWYgKHNj
b3BlUmVmKQorICAgICAgICB0aGlzLl9zY29wZVJlZiA9IHNjb3BlUmVmOwogfQogCiAvKioKQEAg
LTExMCw2ICsxMTMsMTcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZCA9
IGZ1bmN0aW9uKHBheWxvYWQpCiB9CiAKIC8qKgorICogQHBhcmFtIHtSdW50aW1lQWdlbnQuUmVt
b3RlT2JqZWN0fSBwYXlsb2FkCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY29wZVJlZj19IHNj
b3BlUmVmCisgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0fQorICovCitXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQgPSBmdW5jdGlvbihwYXlsb2Fk
LCBzY29wZVJlZikKK3sKKyAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgcGF5bG9hZCA9PT0gIm9i
amVjdCIsICJSZW1vdGUgb2JqZWN0IHBheWxvYWQgc2hvdWxkIG9ubHkgYmUgYW4gb2JqZWN0Iik7
CisgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0KHBheWxvYWQub2JqZWN0
SWQsIHBheWxvYWQudHlwZSwgcGF5bG9hZC5zdWJ0eXBlLCBwYXlsb2FkLnZhbHVlLCBwYXlsb2Fk
LmRlc2NyaXB0aW9uLCBwYXlsb2FkLnByZXZpZXcsIHNjb3BlUmVmKTsKK30KKworLyoqCiAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3R9IHJlbW90ZU9iamVjdAogICogQHJldHVy
biB7c3RyaW5nfQogICovCkBAIC0yNDksMTggKzI2MywzNSBAQCBXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvciB8fCBy
ZXN1bHQuZGVzY3JpcHRpb24pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHRoaXMuX3Njb3BlUmVmKQorICAgICAg
ICAgICAgICAgIHRoaXMuX3NldERlY2xhcmF0aXZlVmFyaWFibGVWYWx1ZShyZXN1bHQsIG5hbWUs
IGNhbGxiYWNrKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0aGlzLl9zZXRP
YmplY3RQcm9wZXJ0eVZhbHVlKHJlc3VsdCwgbmFtZSwgY2FsbGJhY2spOwogCi0gICAgICAgICAg
ICB2YXIgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0aW9uID0gImZ1bmN0aW9uKGEsIGIpIHsgdGhpc1th
XSA9IGI7IH0iOwotCi0gICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIE5hTiwgSW5maW5p
dHkgYW5kIC1JbmZpbml0eQotICAgICAgICAgICAgaWYgKHJlc3VsdC50eXBlID09PSAibnVtYmVy
IiAmJiB0eXBlb2YgcmVzdWx0LnZhbHVlICE9PSAibnVtYmVyIikKLSAgICAgICAgICAgICAgICBz
ZXRQcm9wZXJ0eVZhbHVlRnVuY3Rpb24gPSAiZnVuY3Rpb24oYSkgeyB0aGlzW2FdID0gIiArIHJl
c3VsdC5kZXNjcmlwdGlvbiArICI7IH0iOwotCi0gICAgICAgICAgICBkZWxldGUgcmVzdWx0LmRl
c2NyaXB0aW9uOyAvLyBPcHRpbWl6ZSBvbiB0cmFmZmljLgotICAgICAgICAgICAgUnVudGltZUFn
ZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBzZXRQcm9wZXJ0eVZhbHVlRnVuY3Rp
b24sIFt7IHZhbHVlOm5hbWUgfSwgcmVzdWx0XSwgdHJ1ZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHByb3BlcnR5U2V0Q2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgICAgICAgICBpZiAocmVzdWx0
Ll9vYmplY3RJZCkKICAgICAgICAgICAgICAgICBSdW50aW1lQWdlbnQucmVsZWFzZU9iamVjdChy
ZXN1bHQuX29iamVjdElkKTsKICAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0fSByZXN1bHQKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gbmFtZQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nPSl9IGNhbGxi
YWNrCisgICAgICovCisgICAgX3NldE9iamVjdFByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uKHJlc3Vs
dCwgbmFtZSwgY2FsbGJhY2spCisgICAgeworICAgICAgICAvLyBOb3RlIHRoYXQgaXQgaXMgbm90
IHRoYXQgc2ltcGxlIHdpdGggYWNjZXNzb3IgcHJvcGVydGllcy4gVGhlIHByb3RvIG9iamVjdCBt
YXkgY29udGFpbiB0aGUgcHJvcGVydHksCisgICAgICAgIC8vIGhvd2V2ZXIgbm90IHRoZSBwcm90
byBvYmplY3QgbXVzdCBiZSAndGhpcycsIGJ1dCB0aGUgbWFpbiBvYmplY3QuIAorICAgICAgICAK
KyAgICAgICAgdmFyIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7
IHRoaXNbYV0gPSBiOyB9IjsKKworICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIE5hTiwgSW5m
aW5pdHkgYW5kIC1JbmZpbml0eQorICAgICAgICBpZiAocmVzdWx0LnR5cGUgPT09ICJudW1iZXIi
ICYmIHR5cGVvZiByZXN1bHQudmFsdWUgIT09ICJudW1iZXIiKQorICAgICAgICAgICAgc2V0UHJv
cGVydHlWYWx1ZUZ1bmN0aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQu
ZGVzY3JpcHRpb24gKyAiOyB9IjsKKworICAgICAgICBkZWxldGUgcmVzdWx0LmRlc2NyaXB0aW9u
OyAvLyBPcHRpbWl6ZSBvbiB0cmFmZmljLgorICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0
aW9uT24odGhpcy5fb2JqZWN0SWQsIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiwgW3sgdmFsdWU6
bmFtZSB9LCByZXN1bHRdLCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRD
YWxsYmFjay5iaW5kKHRoaXMpKTsKIAogICAgICAgICAvKioKICAgICAgICAgICogQHBhcmFtIHs/
UHJvdG9jb2wuRXJyb3J9IGVycm9yCkBAIC0yNzgsNiArMzA5LDQyIEBAIFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3R9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSBuYW1lCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmc9KX0gY2FsbGJhY2sKKyAg
ICAgKi8KKyAgICBfc2V0RGVjbGFyYXRpdmVWYXJpYWJsZVZhbHVlOiBmdW5jdGlvbihyZXN1bHQs
IG5hbWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIG5ld1ZhbHVlOworICAgICAgICAK
KyAgICAgICAgc3dpdGNoIChyZXN1bHQudHlwZSkgeworICAgICAgICAgICAgY2FzZSAidW5kZWZp
bmVkIjoKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHt9OworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAgICAgIGNhc2UgImZ1bmN0
aW9uIjoKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHsgb2JqZWN0SWQ6IHJlc3VsdC5vYmpl
Y3RJZCB9OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHsgdmFsdWU6IHJlc3VsdC52YWx1ZSB9OworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBEZWJ1Z2dlckFnZW50LnNldFZhcmlhYmxlVmFsdWUodGhp
cy5fc2NvcGVSZWYubnVtYmVyLCBuYW1lLCBuZXdWYWx1ZSwgdGhpcy5fc2NvcGVSZWYuc2NvcGVI
b2xkZXIuY2FsbEZyYW1lSWQsIHRoaXMuX3Njb3BlUmVmLnNjb3BlSG9sZGVyLmZ1bmN0aW9uSWQs
IHNldFZhcmlhYmxlVmFsdWVDYWxsYmFjay5iaW5kKHRoaXMpKTsKKworICAgICAgICAvKioKKyAg
ICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9yCisgICAgICAgICAqLworICAg
ICAgICBmdW5jdGlvbiBzZXRWYXJpYWJsZVZhbHVlQ2FsbGJhY2soZXJyb3IpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9y
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBj
YWxsYmFjaygpOworICAgICAgICB9CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7
ZnVuY3Rpb24oP0RPTUFnZW50Lk5vZGVJZCl9IGNhbGxiYWNrCiAgICAgICovCiAgICAgcHVzaE5v
ZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTM2NSw2ICs0MzIsMjggQEAgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAKIC8qKgogICogQGNvbnN0cnVj
dG9yCisgKiBAcGFyYW0ge3N0cmluZz19IGNhbGxGcmFtZUlkCisgKiBAcGFyYW0ge3N0cmluZz19
IGZ1bmN0aW9uSWQKKyAqLworV2ViSW5zcGVjdG9yLlNjb3BlSG9sZGVyUmVmID0gZnVuY3Rpb24o
Y2FsbEZyYW1lSWQsIGZ1bmN0aW9uSWQpCit7CisgICAgdGhpcy5jYWxsRnJhbWVJZCA9IGNhbGxG
cmFtZUlkOworICAgIHRoaXMuZnVuY3Rpb25JZCA9IGZ1bmN0aW9uSWQ7Cit9CisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyCisgKiBAcGFyYW0geyFXZWJJ
bnNwZWN0b3IuU2NvcGVIb2xkZXJSZWZ9IHNjb3BlSG9sZGVyCisgKi8KK1dlYkluc3BlY3Rvci5T
Y29wZVJlZiA9IGZ1bmN0aW9uKG51bWJlciwgc2NvcGVIb2xkZXIpCit7CisgICAgdGhpcy5udW1i
ZXIgPSBudW1iZXI7CisgICAgdGhpcy5zY29wZUhvbGRlciA9IHNjb3BlSG9sZGVyOworfQorCisv
KioKKyAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gdmFsdWUKICAqIEBwYXJhbSB7T2JqZWN0PX0gZGVz
Y3JpcHRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y29wZUNoYWluU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcwppbmRleCAxMjA5NTI2YjdlYmIzY2VlOGM4MjQ0
ZDMzOTZmMzQ2YmJkZTFlZjBjLi5lNTEzYTk3YmY5MDg5NGFjY2EwMDgwODNjMDBlNDdjNmFhYTll
MmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3Bl
Q2hhaW5TaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcwpAQCAtNjMsMTMgKzYzLDE1IEBAIFdlYkluc3Bl
Y3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBm
b3VuZExvY2FsU2NvcGUgPSBmYWxzZTsKICAgICAgICAgdmFyIHNjb3BlQ2hhaW4gPSBjYWxsRnJh
bWUuc2NvcGVDaGFpbjsKKyAgICAgICAgdmFyIHNjb3BlSG9sZGVyUmVmID0gbmV3IFdlYkluc3Bl
Y3Rvci5TY29wZUhvbGRlclJlZihjYWxsRnJhbWUuaWQsIHVuZGVmaW5lZCk7CiAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgc2NvcGVDaGFpbi5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAg
dmFyIHNjb3BlID0gc2NvcGVDaGFpbltpXTsKICAgICAgICAgICAgIHZhciB0aXRsZSA9IG51bGw7
CiAgICAgICAgICAgICB2YXIgc3VidGl0bGUgPSBzY29wZS5vYmplY3QuZGVzY3JpcHRpb247CiAg
ICAgICAgICAgICB2YXIgZW1wdHlQbGFjZWhvbGRlciA9IG51bGw7CiAgICAgICAgICAgICB2YXIg
ZXh0cmFQcm9wZXJ0aWVzID0gbnVsbDsKLQorICAgICAgICAgICAgdmFyIGRlY2xhcmF0aXZlU2Nv
cGU7CisgICAgICAgICAgICAKICAgICAgICAgICAgIHN3aXRjaCAoc2NvcGUudHlwZSkgewogICAg
ICAgICAgICAgICAgIGNhc2UgImxvY2FsIjoKICAgICAgICAgICAgICAgICAgICAgZm91bmRMb2Nh
bFNjb3BlID0gdHJ1ZTsKQEAgLTg3LDI4ICs4OSw0MCBAQCBXZWJJbnNwZWN0b3IuU2NvcGVDaGFp
blNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHRyYVByb3BlcnRpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5
KCI8ZXhjZXB0aW9uPiIsIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQoZXhj
ZXB0aW9uT2JqZWN0KSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICJjbG9zdXJl
IjoKICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNs
b3N1cmUiKTsKICAgICAgICAgICAgICAgICAgICAgZW1wdHlQbGFjZWhvbGRlciA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiTm8gVmFyaWFibGVzIik7CiAgICAgICAgICAgICAgICAgICAgIHN1YnRp
dGxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IHRydWU7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgImNhdGNo
IjoKICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNh
dGNoIik7CiAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgIndpdGgiOgogICAgICAgICAgICAgICAgICAgICB0
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiV2l0aCBCbG9jayIpOworICAgICAgICAgICAg
ICAgICAgICBkZWNsYXJhdGl2ZVNjb3BlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgImdsb2JhbCI6CiAgICAgICAgICAgICAgICAgICAg
IHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHbG9iYWwiKTsKKyAgICAgICAgICAgICAg
ICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKCF0aXRsZSB8fCB0aXRsZSA9PT0g
c3VidGl0bGUpCiAgICAgICAgICAgICAgICAgc3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAg
CisgICAgICAgICAgICB2YXIgc2NvcGVSZWY7CisgICAgICAgICAgICBpZiAoZGVjbGFyYXRpdmVT
Y29wZSkKKyAgICAgICAgICAgICAgICBzY29wZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVS
ZWYoaSwgc2NvcGVIb2xkZXJSZWYpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHNjb3BlUmVmID0gdW5kZWZpbmVkOworICAgICAgICAgICAgCiAKLSAgICAgICAgICAgIHZhciBz
ZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNw
ZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHNjb3BlLm9iamVjdCksIHRpdGxlLCBzdWJ0
aXRsZSwgZW1wdHlQbGFjZWhvbGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0
b3IuU2NvcGVWYXJpYWJsZVRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciBzZWN0aW9uID0g
bmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQoc2NvcGUub2JqZWN0LCBzY29wZVJlZiksIHRpdGxl
LCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhvbGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJ
bnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRyZWVFbGVtZW50KTsKICAgICAgICAgICAgIHNlY3Rpb24u
ZWRpdEluU2VsZWN0ZWRDYWxsRnJhbWVXaGVuUGF1c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIHNl
Y3Rpb24ucGFuZSA9IHRoaXM7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193849</attachid>
            <date>2013-03-19 10:06:12 -0700</date>
            <delta_ts>2013-03-19 14:15:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112470-20130319210202.patch</filename>
            <type>text/plain</type>
            <size>13260</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1MDE0YTYwNGVkYWFm
YmJlMDAwZmJjOWJkNGQzYjU1NmRhYWY5ZC4uYTVkNDFkN2FmZjZmOGIzZGNjYzBkYTBhNzNkNWQ3
YWEwMDkzMjZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAzLTE1ICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBjaGFuZ2luZyBsb2NhbCB2YXJpYWJsZXMgaW4gZnJvbnRlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjb3BlUmVmIHR5cGUgaXMgYWRk
ZWQgdG8gUmVtb3RlT2JqZWN0IGFuZCBzZXRQcm9wZXJ0eVZhbHVlIGlzIHBhdGNoZWQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUucHJvdG90eXBl
LmdldCBpZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVz
U2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3BlTWFpblRyZWVF
bGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlLmRpZEdldERldGFpbHMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBlLm9ucG9wdWxh
dGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5wcm90b3R5cGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5wcm90b3R5cGUuc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLl9zZXREZWNsYXJhdGl2ZVZhcmlh
YmxlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjb3BlSG9sZGVyUmVmKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY29wZVJlZik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVD
aGFpblNpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUpOgorCiAyMDEzLTAzLTEzICBBbmRyZXkg
THVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBbQ29kZU1pcnJvcl0gdG9rZW4gaGlnaGxpZ2h0IHN0aWxsIGhhcyBzb21lIHByb2JsZW1z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9k
ZWwuanMKaW5kZXggZGIxNGM2NWQ1ODQwM2I5ZTFjYmExYjk1MTQ2NmZlOGJjNTUzYTZhMS4uYWI3
ZGVhNWRjOWJmYzcxMDkxNmE5ZjllOWI1MDE4MzZjOTAwNTI5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtNzA2LDYg
KzcwNiwxNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUucHJvdG90eXBl
ID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICov
CisgICAgZ2V0IGlkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wYXlsb2FkLmNhbGxG
cmFtZUlkOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcmV0dXJuIHtBcnJheS48RGVidWdn
ZXJBZ2VudC5TY29wZT59CiAgICAgICovCiAgICAgZ2V0IHNjb3BlQ2hhaW4oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2Vj
dGlvbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVy
dGllc1NlY3Rpb24uanMKaW5kZXggYzA2ZmU0M2MwMDU4ZjEwNWNlYTU2NDQzYTI1YzAwYTg5NTM5
NWVlMS4uMDZmNTg5M2RkMWQ4NDYxZmM1ZTk2NGRiNjQ0ZDY3MzYwNzRiZGIwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2Vj
dGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFBy
b3BlcnRpZXNTZWN0aW9uLmpzCkBAIC01NTQsOCArNTU0LDE0IEBAIFdlYkluc3BlY3Rvci5GdW5j
dGlvblNjb3BlTWFpblRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gc2NvcGUgdHlwZTogIiArIHNjb3BlLnR5cGUp
OwogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgICAgdmFyIHJlbW90ZU9iamVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QuZnJvbVBheWxvYWQoc2NvcGUub2JqZWN0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICB2YXIgc2NvcGVSZWY7CisgICAgICAgICAgICAgICAgaWYgKGlzVHJ1ZU9iamVj
dCkKKyAgICAgICAgICAgICAgICAgICAgc2NvcGVSZWYgPSB1bmRlZmluZWQ7CisgICAgICAgICAg
ICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICAgICAgc2NvcGVSZWYgPSBuZXcgV2ViSW5zcGVj
dG9yLlNjb3BlUmVmKGksIHVuZGVmaW5lZCwgdGhpcy5fcmVtb3RlT2JqZWN0Lm9iamVjdElkKTsK
KworICAgICAgICAgICAgICAgIHZhciByZW1vdGVPYmplY3QgPSBXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0LmZyb21TY29wZVBheWxvYWQoc2NvcGUub2JqZWN0LCBzY29wZVJlZik7CiAgICAgICAg
ICAgICAgICAgaWYgKGlzVHJ1ZU9iamVjdCkgewogICAgICAgICAgICAgICAgICAgICB2YXIgcHJv
cGVydHkgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkuZnJvbVNjb3BlVmFsdWUo
dGl0bGUsIHJlbW90ZU9iamVjdCk7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LnBhcmVu
dE9iamVjdCA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVtb3RlT2JqZWN0LmpzCmluZGV4IDM1Y2JmMWI2YmZhZTM2ZTA2MmE1MTFlNDBkNzAzM2Fi
YjIyMjlmYzQuLmY4NDc3ZDY3ZDEwNjBiN2JhNDViMjBiNjQ4MGM1OTMwNjdlZTJiOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0Lmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0Lmpz
CkBAIC0zNiw4ICszNiw5IEBACiAgKiBAcGFyYW0geyp9IHZhbHVlCiAgKiBAcGFyYW0ge3N0cmlu
Zz19IGRlc2NyaXB0aW9uCiAgKiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5PYmplY3RQcmV2aWV3PX0g
cHJldmlldworICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NvcGVSZWY9fSBzY29wZVJlZgogICov
Ci1XZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5cGUsIHN1
YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbiwgcHJldmlldykKK1dlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QgPSBmdW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3VidHlwZSwgdmFsdWUsIGRlc2NyaXB0
aW9uLCBwcmV2aWV3LCBzY29wZVJlZikKIHsKICAgICB0aGlzLl90eXBlID0gdHlwZTsKICAgICB0
aGlzLl9zdWJ0eXBlID0gc3VidHlwZTsKQEAgLTU0LDYgKzU1LDcgQEAgV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBlLCBzdWJ0eXBlLCB2YWx1ZSwgZGVz
Y3JpcHRpb24KICAgICAgICAgdGhpcy5faGFzQ2hpbGRyZW4gPSBmYWxzZTsKICAgICAgICAgdGhp
cy52YWx1ZSA9IHZhbHVlOwogICAgIH0KKyAgICB0aGlzLl9zY29wZVJlZiA9IHNjb3BlUmVmOwog
fQogCiAvKioKQEAgLTExMCw2ICsxMTIsMTYgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5m
cm9tUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCiB9CiAKIC8qKgorICogQHBhcmFtIHtSdW50
aW1lQWdlbnQuUmVtb3RlT2JqZWN0fSBwYXlsb2FkCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5T
Y29wZVJlZj19IHNjb3BlUmVmCisgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
fQorICovCitXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQgPSBmdW5j
dGlvbihwYXlsb2FkLCBzY29wZVJlZikKK3sKKyAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QocGF5bG9hZC5vYmplY3RJZCwgcGF5bG9hZC50eXBlLCBwYXlsb2FkLnN1YnR5
cGUsIHBheWxvYWQudmFsdWUsIHBheWxvYWQuZGVzY3JpcHRpb24sIHBheWxvYWQucHJldmlldywg
c2NvcGVSZWYpOworfQorCisvKioKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dH0gcmVtb3RlT2JqZWN0CiAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgKi8KQEAgLTI0OSwxOCArMjYx
LDM0IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIGNhbGxiYWNrKGVycm9yIHx8IHJlc3VsdC5kZXNjcmlwdGlvbik7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAodGhpcy5fc2NvcGVSZWYpCisgICAgICAgICAgICAgICAgdGhpcy5fc2V0RGVjbGFyYXRpdmVW
YXJpYWJsZVZhbHVlKHJlc3VsdCwgbmFtZSwgY2FsbGJhY2spOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHRoaXMuX3NldE9iamVjdFByb3BlcnR5VmFsdWUocmVzdWx0LCBuYW1l
LCBjYWxsYmFjayk7CiAKLSAgICAgICAgICAgIHZhciBzZXRQcm9wZXJ0eVZhbHVlRnVuY3Rpb24g
PSAiZnVuY3Rpb24oYSwgYikgeyB0aGlzW2FdID0gYjsgfSI7Ci0KLSAgICAgICAgICAgIC8vIFNw
ZWNpYWwgY2FzZSBmb3IgTmFOLCBJbmZpbml0eSBhbmQgLUluZmluaXR5Ci0gICAgICAgICAgICBp
ZiAocmVzdWx0LnR5cGUgPT09ICJudW1iZXIiICYmIHR5cGVvZiByZXN1bHQudmFsdWUgIT09ICJu
dW1iZXIiKQotICAgICAgICAgICAgICAgIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5j
dGlvbihhKSB7IHRoaXNbYV0gPSAiICsgcmVzdWx0LmRlc2NyaXB0aW9uICsgIjsgfSI7Ci0KLSAg
ICAgICAgICAgIGRlbGV0ZSByZXN1bHQuZGVzY3JpcHRpb247IC8vIE9wdGltaXplIG9uIHRyYWZm
aWMuCi0gICAgICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2JqZWN0
SWQsIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiwgW3sgdmFsdWU6bmFtZSB9LCByZXN1bHRdLCB0
cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMp
KTsKICAgICAgICAgICAgIGlmIChyZXN1bHQuX29iamVjdElkKQogICAgICAgICAgICAgICAgIFJ1
bnRpbWVBZ2VudC5yZWxlYXNlT2JqZWN0KHJlc3VsdC5fb2JqZWN0SWQpOwogICAgICAgICB9Cisg
ICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3R9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAgICogQHBhcmFt
IHtmdW5jdGlvbihzdHJpbmc9KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBfc2V0T2JqZWN0UHJv
cGVydHlWYWx1ZTogZnVuY3Rpb24ocmVzdWx0LCBuYW1lLCBjYWxsYmFjaykKKyAgICB7CisgICAg
ICAgIC8vIE5vdGUgdGhhdCBpdCBpcyBub3QgdGhhdCBzaW1wbGUgd2l0aCBhY2Nlc3NvciBwcm9w
ZXJ0aWVzLiBUaGUgcHJvdG8gb2JqZWN0IG1heSBjb250YWluIHRoZSBwcm9wZXJ0eSwKKyAgICAg
ICAgLy8gaG93ZXZlciBub3QgdGhlIHByb3RvIG9iamVjdCBtdXN0IGJlICd0aGlzJywgYnV0IHRo
ZSBtYWluIG9iamVjdC4gCisgICAgICAgIHZhciBzZXRQcm9wZXJ0eVZhbHVlRnVuY3Rpb24gPSAi
ZnVuY3Rpb24oYSwgYikgeyB0aGlzW2FdID0gYjsgfSI7CisKKyAgICAgICAgLy8gU3BlY2lhbCBj
YXNlIGZvciBOYU4sIEluZmluaXR5IGFuZCAtSW5maW5pdHkKKyAgICAgICAgaWYgKHJlc3VsdC50
eXBlID09PSAibnVtYmVyIiAmJiB0eXBlb2YgcmVzdWx0LnZhbHVlICE9PSAibnVtYmVyIikKKyAg
ICAgICAgICAgIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhKSB7IHRoaXNb
YV0gPSAiICsgcmVzdWx0LmRlc2NyaXB0aW9uICsgIjsgfSI7CisKKyAgICAgICAgZGVsZXRlIHJl
c3VsdC5kZXNjcmlwdGlvbjsgLy8gT3B0aW1pemUgb24gdHJhZmZpYy4KKyAgICAgICAgUnVudGlt
ZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBzZXRQcm9wZXJ0eVZhbHVlRnVu
Y3Rpb24sIFt7IHZhbHVlOm5hbWUgfSwgcmVzdWx0XSwgdHJ1ZSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHByb3BlcnR5U2V0Q2FsbGJhY2suYmluZCh0aGlzKSk7CiAKICAgICAgICAgLyoqCiAgICAg
ICAgICAqIEBwYXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgpAQCAtMjc4LDYgKzMwNiw0MiBA
QCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAg
LyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0fSByZXN1bHQKKyAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5n
PSl9IGNhbGxiYWNrCisgICAgICovCisgICAgX3NldERlY2xhcmF0aXZlVmFyaWFibGVWYWx1ZTog
ZnVuY3Rpb24ocmVzdWx0LCBuYW1lLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHZhciBuZXdW
YWx1ZTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCAocmVzdWx0LnR5cGUpIHsKKyAgICAgICAg
ICAgIGNhc2UgInVuZGVmaW5lZCI6CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB7fTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6CisgICAgICAg
ICAgICBjYXNlICJmdW5jdGlvbiI6CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB7IG9iamVj
dElkOiByZXN1bHQub2JqZWN0SWQgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB7IHZhbHVlOiByZXN1bHQu
dmFsdWUgfTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRW
YXJpYWJsZVZhbHVlKHRoaXMuX3Njb3BlUmVmLm51bWJlciwgbmFtZSwgbmV3VmFsdWUsIHRoaXMu
X3Njb3BlUmVmLmNhbGxGcmFtZUlkLCB0aGlzLl9zY29wZVJlZi5mdW5jdGlvbklkLCBzZXRWYXJp
YWJsZVZhbHVlQ2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAq
IEBwYXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgorICAgICAgICAgKi8KKyAgICAgICAgZnVu
Y3Rpb24gc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKGVycm9yKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvcik7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJhY2so
KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9u
KD9ET01BZ2VudC5Ob2RlSWQpfSBjYWxsYmFjawogICAgICAqLwogICAgIHB1c2hOb2RlVG9Gcm9u
dGVuZDogZnVuY3Rpb24oY2FsbGJhY2spCkBAIC0zNjQsNiArNDI4LDIwIEBAIFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogfQogCiAvKioKKyAqIEVpdGhlciBjYWxsRnJh
bWVJZCBvciBmdW5jdGlvbklkIChleGFjdGx5IG9uZSkgbXVzdCBiZSBkZWZpbmVkLgorICogQGNv
bnN0cnVjdG9yCisgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyCisgKiBAcGFyYW0ge3N0cmluZz19
IGNhbGxGcmFtZUlkCisgKiBAcGFyYW0ge3N0cmluZz19IGZ1bmN0aW9uSWQKKyAqLworV2ViSW5z
cGVjdG9yLlNjb3BlUmVmID0gZnVuY3Rpb24obnVtYmVyLCBjYWxsRnJhbWVJZCwgZnVuY3Rpb25J
ZCkKK3sKKyAgICB0aGlzLm51bWJlciA9IG51bWJlcjsKKyAgICB0aGlzLmNhbGxGcmFtZUlkID0g
Y2FsbEZyYW1lSWQ7CisgICAgdGhpcy5mdW5jdGlvbklkID0gZnVuY3Rpb25JZDsKK30KKworLyoq
CiAgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3R9IHZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzCmluZGV4
IDEyMDk1MjZiN2ViYjNjZWU4YzgyNDRkMzM5NmYzNDZiYmRlMWVmMGMuLmE0OGExMDdkZWEyYzdm
MjkxOTc0OWMwOTdmZjE4ZmFlNGViNzQyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzCkBAIC02
OSw3ICs2OSw4IEBAIFdlYkluc3BlY3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgdmFyIHN1YnRpdGxlID0gc2NvcGUub2JqZWN0LmRlc2NyaXB0aW9u
OwogICAgICAgICAgICAgdmFyIGVtcHR5UGxhY2Vob2xkZXIgPSBudWxsOwogICAgICAgICAgICAg
dmFyIGV4dHJhUHJvcGVydGllcyA9IG51bGw7Ci0KKyAgICAgICAgICAgIHZhciBkZWNsYXJhdGl2
ZVNjb3BlOworICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2ggKHNjb3BlLnR5cGUpIHsK
ICAgICAgICAgICAgICAgICBjYXNlICJsb2NhbCI6CiAgICAgICAgICAgICAgICAgICAgIGZvdW5k
TG9jYWxTY29wZSA9IHRydWU7CkBAIC04NywyOCArODgsNDAgQEAgV2ViSW5zcGVjdG9yLlNjb3Bl
Q2hhaW5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXh0cmFQcm9wZXJ0aWVzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9w
ZXJ0eSgiPGV4Y2VwdGlvbj4iLCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2Fk
KGV4Y2VwdGlvbk9iamVjdCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGl2ZVNjb3BlID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSAiY2xv
c3VyZSI6CiAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJDbG9zdXJlIik7CiAgICAgICAgICAgICAgICAgICAgIGVtcHR5UGxhY2Vob2xkZXIgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIk5vIFZhcmlhYmxlcyIpOwogICAgICAgICAgICAgICAgICAgICBz
dWJ0aXRsZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0
cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICJj
YXRjaCI6CiAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJDYXRjaCIpOwogICAgICAgICAgICAgICAgICAgICBzdWJ0aXRsZSA9IG51bGw7CisgICAgICAg
ICAgICAgICAgICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICJ3aXRoIjoKICAgICAgICAgICAgICAgICAg
ICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldpdGggQmxvY2siKTsKKyAgICAgICAg
ICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICJnbG9iYWwiOgogICAgICAgICAgICAgICAg
ICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiR2xvYmFsIik7CisgICAgICAgICAg
ICAgICAgICAgIGRlY2xhcmF0aXZlU2NvcGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICghdGl0bGUgfHwgdGl0bGUg
PT09IHN1YnRpdGxlKQogICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgdmFyIHNjb3BlUmVmOworICAgICAgICAgICAgaWYgKGRlY2xhcmF0
aXZlU2NvcGUpCisgICAgICAgICAgICAgICAgc2NvcGVSZWYgPSBuZXcgV2ViSW5zcGVjdG9yLlNj
b3BlUmVmKGksIGNhbGxGcmFtZS5pZCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBzY29wZVJlZiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgIAogCi0gICAg
ICAgICAgICB2YXIgc2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1Nl
Y3Rpb24oV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChzY29wZS5vYmplY3Qp
LCB0aXRsZSwgc3VidGl0bGUsIGVtcHR5UGxhY2Vob2xkZXIsIHRydWUsIGV4dHJhUHJvcGVydGll
cywgV2ViSW5zcGVjdG9yLlNjb3BlVmFyaWFibGVUcmVlRWxlbWVudCk7CisgICAgICAgICAgICB2
YXIgc2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24oV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tU2NvcGVQYXlsb2FkKHNjb3BlLm9iamVjdCwgc2Nv
cGVSZWYpLCB0aXRsZSwgc3VidGl0bGUsIGVtcHR5UGxhY2Vob2xkZXIsIHRydWUsIGV4dHJhUHJv
cGVydGllcywgV2ViSW5zcGVjdG9yLlNjb3BlVmFyaWFibGVUcmVlRWxlbWVudCk7CiAgICAgICAg
ICAgICBzZWN0aW9uLmVkaXRJblNlbGVjdGVkQ2FsbEZyYW1lV2hlblBhdXNlZCA9IHRydWU7CiAg
ICAgICAgICAgICBzZWN0aW9uLnBhbmUgPSB0aGlzOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC13aGlsZS1wYXVzZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLXdoaWxlLXBhdXNlZC5o
dG1sCmluZGV4IGYwNjAyYzgwYmIxYzI1YmI0MmI2ZTA1OTVkMjgzNjE0NTliMmZjZWUuLmNiY2Y5
NjliYTY0MmMwYTEwOTE4NmZjOTlhYWExMzZiMWY1Yzc2ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLXdoaWxlLXBhdXNlZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLXdoaWxlLXBh
dXNlZC5odG1sCkBAIC00NCwxMCArNDQsMjUgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJsb2NhbE9iamVjdC5h
ICsgZ2xvYmFsVmFyLmIiLCBzdGVwNSk7CiAgICAgfQotCiAgICAgZnVuY3Rpb24gc3RlcDUocmVz
dWx0KQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBz
Y3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWU6ICIgKyByZXN1bHQpOworCisgICAgICAgIHZhciBw
YW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy5zY29wZWNoYWlu
OworICAgICAgICB2YXIgbG9jYWxzU2VjdGlvbiA9IHBhbmUuX3NlY3Rpb25zWzBdOworICAgICAg
ICBsb2NhbHNTZWN0aW9uLm9iamVjdC5zZXRQcm9wZXJ0eVZhbHVlKCJsb2NhbE9iamVjdCIsICIo
eyBhOiAtMzAwfSkiLCBzdGVwNik7CisgICAgfQorICAgIGZ1bmN0aW9uIHN0ZXA2KGVycm9yKQor
ICAgIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlNldCBwcm9wZXJ0eSB2YWx1ZSBlcnJvcjogIiArIGVycm9yKTsKKworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJsb2NhbE9iamVjdC5hICsgZ2xvYmFsVmFy
LmIiLCBzdGVwNyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDcocmVzdWx0KQorICAgIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBzY3JpcHQgb24gdGhl
IGNhbGxpbmcgZnJhbWUgKGFmdGVyIHZhbHVlIG1vZGlmaWNhdGlvbik6ICIgKyByZXN1bHQpOwog
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7CiAgICAgfQogfQpA
QCAtNTgsNyArNzMsOCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIDxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KIDxwPgogVGVzdHMgdGhhdCBldmFsdWF0aW9uIGluIGNvbnNvbGUgd29ya3MgZmlu
ZSB3aGVuIHNjcmlwdCBpcyBwYXVzZWQuIEl0IGFsc28gY2hlY2tzIHRoYXQKLXN0YWNrIGFuZCBn
bG9iYWwgdmFyaWFibGVzIGFyZSBhY2Nlc3NpYmxlIGZyb20gdGhlIGNvbnNvbGUuCitzdGFjayBh
bmQgZ2xvYmFsIHZhcmlhYmxlcyBhcmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBjb25zb2xlLiBBZGRp
dGlvbmFsbHkgaXQgdHJpZXMgdG8KK21vZGlmeSBsb2NhbCB2YXJpYWJsZSB2YWx1ZSBhbmQgY2hl
Y2tzIHRoYXQgaXQgd29ya3MuCiA8L3A+CiAKIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193918</attachid>
            <date>2013-03-19 14:15:59 -0700</date>
            <delta_ts>2013-03-20 14:18:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112470-20130320011149.patch</filename>
            <type>text/plain</type>
            <size>15409</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1MDE0YTYwNGVkYWFm
YmJlMDAwZmJjOWJkNGQzYjU1NmRhYWY5ZC4uYTVkNDFkN2FmZjZmOGIzZGNjYzBkYTBhNzNkNWQ3
YWEwMDkzMjZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAzLTE1ICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBjaGFuZ2luZyBsb2NhbCB2YXJpYWJsZXMgaW4gZnJvbnRlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjb3BlUmVmIHR5cGUgaXMgYWRk
ZWQgdG8gUmVtb3RlT2JqZWN0IGFuZCBzZXRQcm9wZXJ0eVZhbHVlIGlzIHBhdGNoZWQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUucHJvdG90eXBl
LmdldCBpZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVz
U2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3BlTWFpblRyZWVF
bGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlLmRpZEdldERldGFpbHMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBlLm9ucG9wdWxh
dGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5wcm90b3R5cGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5wcm90b3R5cGUuc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLl9zZXREZWNsYXJhdGl2ZVZhcmlh
YmxlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjb3BlSG9sZGVyUmVmKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY29wZVJlZik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVD
aGFpblNpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUpOgorCiAyMDEzLTAzLTEzICBBbmRyZXkg
THVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBbQ29kZU1pcnJvcl0gdG9rZW4gaGlnaGxpZ2h0IHN0aWxsIGhhcyBzb21lIHByb2JsZW1z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9k
ZWwuanMKaW5kZXggZGIxNGM2NWQ1ODQwM2I5ZTFjYmExYjk1MTQ2NmZlOGJjNTUzYTZhMS4uYWI3
ZGVhNWRjOWJmYzcxMDkxNmE5ZjllOWI1MDE4MzZjOTAwNTI5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtNzA2LDYg
KzcwNiwxNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUucHJvdG90eXBl
ID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICov
CisgICAgZ2V0IGlkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wYXlsb2FkLmNhbGxG
cmFtZUlkOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcmV0dXJuIHtBcnJheS48RGVidWdn
ZXJBZ2VudC5TY29wZT59CiAgICAgICovCiAgICAgZ2V0IHNjb3BlQ2hhaW4oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2Vj
dGlvbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVy
dGllc1NlY3Rpb24uanMKaW5kZXggYzA2ZmU0M2MwMDU4ZjEwNWNlYTU2NDQzYTI1YzAwYTg5NTM5
NWVlMS4uMDZmNTg5M2RkMWQ4NDYxZmM1ZTk2NGRiNjQ0ZDY3MzYwNzRiZGIwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2Vj
dGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFBy
b3BlcnRpZXNTZWN0aW9uLmpzCkBAIC01NTQsOCArNTU0LDE0IEBAIFdlYkluc3BlY3Rvci5GdW5j
dGlvblNjb3BlTWFpblRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gc2NvcGUgdHlwZTogIiArIHNjb3BlLnR5cGUp
OwogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgICAgdmFyIHJlbW90ZU9iamVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QuZnJvbVBheWxvYWQoc2NvcGUub2JqZWN0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICB2YXIgc2NvcGVSZWY7CisgICAgICAgICAgICAgICAgaWYgKGlzVHJ1ZU9iamVj
dCkKKyAgICAgICAgICAgICAgICAgICAgc2NvcGVSZWYgPSB1bmRlZmluZWQ7CisgICAgICAgICAg
ICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICAgICAgc2NvcGVSZWYgPSBuZXcgV2ViSW5zcGVj
dG9yLlNjb3BlUmVmKGksIHVuZGVmaW5lZCwgdGhpcy5fcmVtb3RlT2JqZWN0Lm9iamVjdElkKTsK
KworICAgICAgICAgICAgICAgIHZhciByZW1vdGVPYmplY3QgPSBXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0LmZyb21TY29wZVBheWxvYWQoc2NvcGUub2JqZWN0LCBzY29wZVJlZik7CiAgICAgICAg
ICAgICAgICAgaWYgKGlzVHJ1ZU9iamVjdCkgewogICAgICAgICAgICAgICAgICAgICB2YXIgcHJv
cGVydHkgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkuZnJvbVNjb3BlVmFsdWUo
dGl0bGUsIHJlbW90ZU9iamVjdCk7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LnBhcmVu
dE9iamVjdCA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVtb3RlT2JqZWN0LmpzCmluZGV4IDM1Y2JmMWI2YmZhZTM2ZTA2MmE1MTFlNDBkNzAzM2Fi
YjIyMjlmYzQuLmY4NDc3ZDY3ZDEwNjBiN2JhNDViMjBiNjQ4MGM1OTMwNjdlZTJiOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0Lmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0Lmpz
CkBAIC0zNiw4ICszNiw5IEBACiAgKiBAcGFyYW0geyp9IHZhbHVlCiAgKiBAcGFyYW0ge3N0cmlu
Zz19IGRlc2NyaXB0aW9uCiAgKiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5PYmplY3RQcmV2aWV3PX0g
cHJldmlldworICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NvcGVSZWY9fSBzY29wZVJlZgogICov
Ci1XZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5cGUsIHN1
YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbiwgcHJldmlldykKK1dlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QgPSBmdW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3VidHlwZSwgdmFsdWUsIGRlc2NyaXB0
aW9uLCBwcmV2aWV3LCBzY29wZVJlZikKIHsKICAgICB0aGlzLl90eXBlID0gdHlwZTsKICAgICB0
aGlzLl9zdWJ0eXBlID0gc3VidHlwZTsKQEAgLTU0LDYgKzU1LDcgQEAgV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBlLCBzdWJ0eXBlLCB2YWx1ZSwgZGVz
Y3JpcHRpb24KICAgICAgICAgdGhpcy5faGFzQ2hpbGRyZW4gPSBmYWxzZTsKICAgICAgICAgdGhp
cy52YWx1ZSA9IHZhbHVlOwogICAgIH0KKyAgICB0aGlzLl9zY29wZVJlZiA9IHNjb3BlUmVmOwog
fQogCiAvKioKQEAgLTExMCw2ICsxMTIsMTYgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5m
cm9tUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCiB9CiAKIC8qKgorICogQHBhcmFtIHtSdW50
aW1lQWdlbnQuUmVtb3RlT2JqZWN0fSBwYXlsb2FkCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5T
Y29wZVJlZj19IHNjb3BlUmVmCisgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
fQorICovCitXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQgPSBmdW5j
dGlvbihwYXlsb2FkLCBzY29wZVJlZikKK3sKKyAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QocGF5bG9hZC5vYmplY3RJZCwgcGF5bG9hZC50eXBlLCBwYXlsb2FkLnN1YnR5
cGUsIHBheWxvYWQudmFsdWUsIHBheWxvYWQuZGVzY3JpcHRpb24sIHBheWxvYWQucHJldmlldywg
c2NvcGVSZWYpOworfQorCisvKioKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dH0gcmVtb3RlT2JqZWN0CiAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgKi8KQEAgLTI0OSwxOCArMjYx
LDM0IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIGNhbGxiYWNrKGVycm9yIHx8IHJlc3VsdC5kZXNjcmlwdGlvbik7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAodGhpcy5fc2NvcGVSZWYpCisgICAgICAgICAgICAgICAgdGhpcy5fc2V0RGVjbGFyYXRpdmVW
YXJpYWJsZVZhbHVlKHJlc3VsdCwgbmFtZSwgY2FsbGJhY2spOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHRoaXMuX3NldE9iamVjdFByb3BlcnR5VmFsdWUocmVzdWx0LCBuYW1l
LCBjYWxsYmFjayk7CiAKLSAgICAgICAgICAgIHZhciBzZXRQcm9wZXJ0eVZhbHVlRnVuY3Rpb24g
PSAiZnVuY3Rpb24oYSwgYikgeyB0aGlzW2FdID0gYjsgfSI7Ci0KLSAgICAgICAgICAgIC8vIFNw
ZWNpYWwgY2FzZSBmb3IgTmFOLCBJbmZpbml0eSBhbmQgLUluZmluaXR5Ci0gICAgICAgICAgICBp
ZiAocmVzdWx0LnR5cGUgPT09ICJudW1iZXIiICYmIHR5cGVvZiByZXN1bHQudmFsdWUgIT09ICJu
dW1iZXIiKQotICAgICAgICAgICAgICAgIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5j
dGlvbihhKSB7IHRoaXNbYV0gPSAiICsgcmVzdWx0LmRlc2NyaXB0aW9uICsgIjsgfSI7Ci0KLSAg
ICAgICAgICAgIGRlbGV0ZSByZXN1bHQuZGVzY3JpcHRpb247IC8vIE9wdGltaXplIG9uIHRyYWZm
aWMuCi0gICAgICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2JqZWN0
SWQsIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiwgW3sgdmFsdWU6bmFtZSB9LCByZXN1bHRdLCB0
cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMp
KTsKICAgICAgICAgICAgIGlmIChyZXN1bHQuX29iamVjdElkKQogICAgICAgICAgICAgICAgIFJ1
bnRpbWVBZ2VudC5yZWxlYXNlT2JqZWN0KHJlc3VsdC5fb2JqZWN0SWQpOwogICAgICAgICB9Cisg
ICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3R9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAgICogQHBhcmFt
IHtmdW5jdGlvbihzdHJpbmc9KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBfc2V0T2JqZWN0UHJv
cGVydHlWYWx1ZTogZnVuY3Rpb24ocmVzdWx0LCBuYW1lLCBjYWxsYmFjaykKKyAgICB7CisgICAg
ICAgIC8vIE5vdGUgdGhhdCBpdCBpcyBub3QgdGhhdCBzaW1wbGUgd2l0aCBhY2Nlc3NvciBwcm9w
ZXJ0aWVzLiBUaGUgcHJvdG8gb2JqZWN0IG1heSBjb250YWluIHRoZSBwcm9wZXJ0eSwKKyAgICAg
ICAgLy8gaG93ZXZlciBub3QgdGhlIHByb3RvIG9iamVjdCBtdXN0IGJlICd0aGlzJywgYnV0IHRo
ZSBtYWluIG9iamVjdC4gCisgICAgICAgIHZhciBzZXRQcm9wZXJ0eVZhbHVlRnVuY3Rpb24gPSAi
ZnVuY3Rpb24oYSwgYikgeyB0aGlzW2FdID0gYjsgfSI7CisKKyAgICAgICAgLy8gU3BlY2lhbCBj
YXNlIGZvciBOYU4sIEluZmluaXR5IGFuZCAtSW5maW5pdHkKKyAgICAgICAgaWYgKHJlc3VsdC50
eXBlID09PSAibnVtYmVyIiAmJiB0eXBlb2YgcmVzdWx0LnZhbHVlICE9PSAibnVtYmVyIikKKyAg
ICAgICAgICAgIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhKSB7IHRoaXNb
YV0gPSAiICsgcmVzdWx0LmRlc2NyaXB0aW9uICsgIjsgfSI7CisKKyAgICAgICAgZGVsZXRlIHJl
c3VsdC5kZXNjcmlwdGlvbjsgLy8gT3B0aW1pemUgb24gdHJhZmZpYy4KKyAgICAgICAgUnVudGlt
ZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBzZXRQcm9wZXJ0eVZhbHVlRnVu
Y3Rpb24sIFt7IHZhbHVlOm5hbWUgfSwgcmVzdWx0XSwgdHJ1ZSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHByb3BlcnR5U2V0Q2FsbGJhY2suYmluZCh0aGlzKSk7CiAKICAgICAgICAgLyoqCiAgICAg
ICAgICAqIEBwYXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgpAQCAtMjc4LDYgKzMwNiw0MiBA
QCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAg
LyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0fSByZXN1bHQKKyAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5n
PSl9IGNhbGxiYWNrCisgICAgICovCisgICAgX3NldERlY2xhcmF0aXZlVmFyaWFibGVWYWx1ZTog
ZnVuY3Rpb24ocmVzdWx0LCBuYW1lLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHZhciBuZXdW
YWx1ZTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCAocmVzdWx0LnR5cGUpIHsKKyAgICAgICAg
ICAgIGNhc2UgInVuZGVmaW5lZCI6CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB7fTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6CisgICAgICAg
ICAgICBjYXNlICJmdW5jdGlvbiI6CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB7IG9iamVj
dElkOiByZXN1bHQub2JqZWN0SWQgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB7IHZhbHVlOiByZXN1bHQu
dmFsdWUgfTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRW
YXJpYWJsZVZhbHVlKHRoaXMuX3Njb3BlUmVmLm51bWJlciwgbmFtZSwgbmV3VmFsdWUsIHRoaXMu
X3Njb3BlUmVmLmNhbGxGcmFtZUlkLCB0aGlzLl9zY29wZVJlZi5mdW5jdGlvbklkLCBzZXRWYXJp
YWJsZVZhbHVlQ2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAq
IEBwYXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgorICAgICAgICAgKi8KKyAgICAgICAgZnVu
Y3Rpb24gc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKGVycm9yKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvcik7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJhY2so
KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9u
KD9ET01BZ2VudC5Ob2RlSWQpfSBjYWxsYmFjawogICAgICAqLwogICAgIHB1c2hOb2RlVG9Gcm9u
dGVuZDogZnVuY3Rpb24oY2FsbGJhY2spCkBAIC0zNjQsNiArNDI4LDIwIEBAIFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogfQogCiAvKioKKyAqIEVpdGhlciBjYWxsRnJh
bWVJZCBvciBmdW5jdGlvbklkIChleGFjdGx5IG9uZSkgbXVzdCBiZSBkZWZpbmVkLgorICogQGNv
bnN0cnVjdG9yCisgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyCisgKiBAcGFyYW0ge3N0cmluZz19
IGNhbGxGcmFtZUlkCisgKiBAcGFyYW0ge3N0cmluZz19IGZ1bmN0aW9uSWQKKyAqLworV2ViSW5z
cGVjdG9yLlNjb3BlUmVmID0gZnVuY3Rpb24obnVtYmVyLCBjYWxsRnJhbWVJZCwgZnVuY3Rpb25J
ZCkKK3sKKyAgICB0aGlzLm51bWJlciA9IG51bWJlcjsKKyAgICB0aGlzLmNhbGxGcmFtZUlkID0g
Y2FsbEZyYW1lSWQ7CisgICAgdGhpcy5mdW5jdGlvbklkID0gZnVuY3Rpb25JZDsKK30KKworLyoq
CiAgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3R9IHZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzCmluZGV4
IDEyMDk1MjZiN2ViYjNjZWU4YzgyNDRkMzM5NmYzNDZiYmRlMWVmMGMuLmE0OGExMDdkZWEyYzdm
MjkxOTc0OWMwOTdmZjE4ZmFlNGViNzQyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzCkBAIC02
OSw3ICs2OSw4IEBAIFdlYkluc3BlY3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgdmFyIHN1YnRpdGxlID0gc2NvcGUub2JqZWN0LmRlc2NyaXB0aW9u
OwogICAgICAgICAgICAgdmFyIGVtcHR5UGxhY2Vob2xkZXIgPSBudWxsOwogICAgICAgICAgICAg
dmFyIGV4dHJhUHJvcGVydGllcyA9IG51bGw7Ci0KKyAgICAgICAgICAgIHZhciBkZWNsYXJhdGl2
ZVNjb3BlOworICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2ggKHNjb3BlLnR5cGUpIHsK
ICAgICAgICAgICAgICAgICBjYXNlICJsb2NhbCI6CiAgICAgICAgICAgICAgICAgICAgIGZvdW5k
TG9jYWxTY29wZSA9IHRydWU7CkBAIC04NywyOCArODgsNDAgQEAgV2ViSW5zcGVjdG9yLlNjb3Bl
Q2hhaW5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXh0cmFQcm9wZXJ0aWVzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9w
ZXJ0eSgiPGV4Y2VwdGlvbj4iLCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2Fk
KGV4Y2VwdGlvbk9iamVjdCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGl2ZVNjb3BlID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSAiY2xv
c3VyZSI6CiAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJDbG9zdXJlIik7CiAgICAgICAgICAgICAgICAgICAgIGVtcHR5UGxhY2Vob2xkZXIgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIk5vIFZhcmlhYmxlcyIpOwogICAgICAgICAgICAgICAgICAgICBz
dWJ0aXRsZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0
cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICJj
YXRjaCI6CiAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJDYXRjaCIpOwogICAgICAgICAgICAgICAgICAgICBzdWJ0aXRsZSA9IG51bGw7CisgICAgICAg
ICAgICAgICAgICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICJ3aXRoIjoKICAgICAgICAgICAgICAgICAg
ICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldpdGggQmxvY2siKTsKKyAgICAgICAg
ICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICJnbG9iYWwiOgogICAgICAgICAgICAgICAg
ICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiR2xvYmFsIik7CisgICAgICAgICAg
ICAgICAgICAgIGRlY2xhcmF0aXZlU2NvcGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICghdGl0bGUgfHwgdGl0bGUg
PT09IHN1YnRpdGxlKQogICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgdmFyIHNjb3BlUmVmOworICAgICAgICAgICAgaWYgKGRlY2xhcmF0
aXZlU2NvcGUpCisgICAgICAgICAgICAgICAgc2NvcGVSZWYgPSBuZXcgV2ViSW5zcGVjdG9yLlNj
b3BlUmVmKGksIGNhbGxGcmFtZS5pZCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBzY29wZVJlZiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgIAogCi0gICAg
ICAgICAgICB2YXIgc2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1Nl
Y3Rpb24oV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChzY29wZS5vYmplY3Qp
LCB0aXRsZSwgc3VidGl0bGUsIGVtcHR5UGxhY2Vob2xkZXIsIHRydWUsIGV4dHJhUHJvcGVydGll
cywgV2ViSW5zcGVjdG9yLlNjb3BlVmFyaWFibGVUcmVlRWxlbWVudCk7CisgICAgICAgICAgICB2
YXIgc2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24oV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tU2NvcGVQYXlsb2FkKHNjb3BlLm9iamVjdCwgc2Nv
cGVSZWYpLCB0aXRsZSwgc3VidGl0bGUsIGVtcHR5UGxhY2Vob2xkZXIsIHRydWUsIGV4dHJhUHJv
cGVydGllcywgV2ViSW5zcGVjdG9yLlNjb3BlVmFyaWFibGVUcmVlRWxlbWVudCk7CiAgICAgICAg
ICAgICBzZWN0aW9uLmVkaXRJblNlbGVjdGVkQ2FsbEZyYW1lV2hlblBhdXNlZCA9IHRydWU7CiAg
ICAgICAgICAgICBzZWN0aW9uLnBhbmUgPSB0aGlzOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC13aGlsZS1wYXVzZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV2YWwtd2hpbGUt
cGF1c2VkLWV4cGVjdGVkLnR4dAppbmRleCA4ZjRkZDMwZmMyZGRhZTQyNjY0NmFlMWIyNmIyNWVl
Mjk5NDhlOTA5Li43YjgzOGI1MGNjMzUwOWVlMjEzODBiYjQwNDgyYTZhMmY0ZTAxMDAxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC13aGls
ZS1wYXVzZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9kZWJ1Z2dlci1ldmFsLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTIg
QEAKLVRlc3RzIHRoYXQgZXZhbHVhdGlvbiBpbiBjb25zb2xlIHdvcmtzIGZpbmUgd2hlbiBzY3Jp
cHQgaXMgcGF1c2VkLiBJdCBhbHNvIGNoZWNrcyB0aGF0IHN0YWNrIGFuZCBnbG9iYWwgdmFyaWFi
bGVzIGFyZSBhY2Nlc3NpYmxlIGZyb20gdGhlIGNvbnNvbGUuCitUZXN0cyB0aGF0IGV2YWx1YXRp
b24gaW4gY29uc29sZSB3b3JrcyBmaW5lIHdoZW4gc2NyaXB0IGlzIHBhdXNlZC4gSXQgYWxzbyBj
aGVja3MgdGhhdCBzdGFjayBhbmQgZ2xvYmFsIHZhcmlhYmxlcyBhcmUgYWNjZXNzaWJsZSBmcm9t
IHRoZSBjb25zb2xlLiBBZGRpdGlvbmFsbHkgaXQgdHJpZXMgdG8gbW9kaWZ5IGxvY2FsIHZhcmlh
YmxlIHZhbHVlIGFuZCBjaGVja3MgdGhhdCBpdCB3b3Jrcy4KIAogRGVidWdnZXIgd2FzIGVuYWJs
ZWQuCiBTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCiBTY3JpcHQgZXhlY3V0aW9uIHBhdXNl
ZC4KIEV2YWx1YXRlZCBzY3JpcHQgb24gdGhlIHRvcCBmcmFtZTogNDAyMQogRXZhbHVhdGVkIHNj
cmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZTogMzAxCitTZXQgcHJvcGVydHkgdmFsdWUgZXJyb3I6
IEZhaWxlZCB0byBjaGFuZ2UgdmFyaWFibGUgdmFsdWU6IFR5cGVFcnJvcjogVmFyaWFibGUgdmFs
dWUgbXV0YXRpb24gaXMgbm90IHN1cHBvcnRlZAorRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgY2Fs
bGluZyBmcmFtZSAoYWZ0ZXIgdmFsdWUgbW9kaWZpY2F0aW9uKTogMzAxCiBTY3JpcHQgZXhlY3V0
aW9uIHJlc3VtZWQuCiBEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLXdoaWxlLXBhdXNlZC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV2YWwtd2hpbGUtcGF1
c2VkLmh0bWwKaW5kZXggZjA2MDJjODBiYjFjMjViYjQyYjZlMDU5NWQyODM2MTQ1OWIyZmNlZS4u
Y2JjZjk2OWJhNjQyYzBhMTA5MTg2ZmM5OWFhYTEzNmIxZjVjNzZkMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV2YWwtd2hpbGUtcGF1c2VkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV2YWwtd2hp
bGUtcGF1c2VkLmh0bWwKQEAgLTQ0LDEwICs0NCwyNSBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImxvY2FsT2Jq
ZWN0LmEgKyBnbG9iYWxWYXIuYiIsIHN0ZXA1KTsKICAgICB9Ci0KICAgICBmdW5jdGlvbiBzdGVw
NShyZXN1bHQpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXZhbHVh
dGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZTogIiArIHJlc3VsdCk7CisKKyAgICAgICAg
dmFyIHBhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLnNjb3Bl
Y2hhaW47CisgICAgICAgIHZhciBsb2NhbHNTZWN0aW9uID0gcGFuZS5fc2VjdGlvbnNbMF07Cisg
ICAgICAgIGxvY2Fsc1NlY3Rpb24ub2JqZWN0LnNldFByb3BlcnR5VmFsdWUoImxvY2FsT2JqZWN0
IiwgIih7IGE6IC0zMDB9KSIsIHN0ZXA2KTsKKyAgICB9CisgICAgZnVuY3Rpb24gc3RlcDYoZXJy
b3IpCisgICAgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2V0IHByb3BlcnR5IHZhbHVlIGVycm9yOiAiICsgZXJyb3IpOworCisgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImxvY2FsT2JqZWN0LmEgKyBnbG9i
YWxWYXIuYiIsIHN0ZXA3KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNyhyZXN1bHQpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXZhbHVhdGVkIHNjcmlwdCBv
biB0aGUgY2FsbGluZyBmcmFtZSAoYWZ0ZXIgdmFsdWUgbW9kaWZpY2F0aW9uKTogIiArIHJlc3Vs
dCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKICAgICB9
CiB9CkBAIC01OCw3ICs3Myw4IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgogPHA+CiBUZXN0cyB0aGF0IGV2YWx1YXRpb24gaW4gY29uc29sZSB3b3Jr
cyBmaW5lIHdoZW4gc2NyaXB0IGlzIHBhdXNlZC4gSXQgYWxzbyBjaGVja3MgdGhhdAotc3RhY2sg
YW5kIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGFjY2Vzc2libGUgZnJvbSB0aGUgY29uc29sZS4KK3N0
YWNrIGFuZCBnbG9iYWwgdmFyaWFibGVzIGFyZSBhY2Nlc3NpYmxlIGZyb20gdGhlIGNvbnNvbGUu
IEFkZGl0aW9uYWxseSBpdCB0cmllcyB0bworbW9kaWZ5IGxvY2FsIHZhcmlhYmxlIHZhbHVlIGFu
ZCBjaGVja3MgdGhhdCBpdCB3b3Jrcy4KIDwvcD4KIAogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV2
YWwtd2hpbGUtcGF1c2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLXdoaWxlLXBhdXNlZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzIyZTlkODY3M2JlM2IzMmJlNmYzN2MxNTMwNTY1MmU4ZmNlZGQ4
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCBldmFsdWF0aW9uIGluIGNvbnNvbGUgd29ya3MgZmlu
ZSB3aGVuIHNjcmlwdCBpcyBwYXVzZWQuIEl0IGFsc28gY2hlY2tzIHRoYXQgc3RhY2sgYW5kIGds
b2JhbCB2YXJpYWJsZXMgYXJlIGFjY2Vzc2libGUgZnJvbSB0aGUgY29uc29sZS4gQWRkaXRpb25h
bGx5IGl0IHRyaWVzIHRvIG1vZGlmeSBsb2NhbCB2YXJpYWJsZSB2YWx1ZSBhbmQgY2hlY2tzIHRo
YXQgaXQgd29ya3MuCisKK0RlYnVnZ2VyIHdhcyBlbmFibGVkLgorU2V0IHRpbWVyIGZvciB0ZXN0
IGZ1bmN0aW9uLgorU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCitFdmFsdWF0ZWQgc2NyaXB0IG9u
IHRoZSB0b3AgZnJhbWU6IDQwMjEKK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJh
bWU6IDMwMQorRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZSAoYWZ0ZXIgdmFs
dWUgbW9kaWZpY2F0aW9uKTogLTI5OQorU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgorRGVidWdn
ZXIgd2FzIGRpc2FibGVkLgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194123</attachid>
            <date>2013-03-20 14:18:24 -0700</date>
            <delta_ts>2013-03-21 08:36:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112470-20130321011413.patch</filename>
            <type>text/plain</type>
            <size>16863</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1MDE0YTYwNGVkYWFm
YmJlMDAwZmJjOWJkNGQzYjU1NmRhYWY5ZC4uOWE1MTFmZGUyNjdmZWEwMzRhNTMxODlkMTk2MzBj
ODRlMmYwY2ZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTIwICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBjaGFuZ2luZyBsb2NhbCB2YXJpYWJsZXMgaW4gZnJvbnRlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjb3BlUmVmIHR5cGUgaXMgYWRk
ZWQgdG8gUmVtb3RlT2JqZWN0IGFuZCBzZXRQcm9wZXJ0eVZhbHVlIGlzIHBhdGNoZWQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5n
ZS12YXJpYWJsZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUu
cHJvdG90eXBlLmdldCBpZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQ
cm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3Bl
TWFpblRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlLmRpZEdldERldGFpbHMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9ucG9wdWxhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLl9zZXREZWNsYXJh
dGl2ZVZhcmlhYmxlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjb3BlUmVmKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZSk6CisKIDIwMTMtMDMtMTMgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDb2RlTWlycm9yXSB0b2tlbiBoaWdobGln
aHQgc3RpbGwgaGFzIHNvbWUgcHJvYmxlbXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBkYjE0YzY1ZDU4NDAzYjllMWNi
YTFiOTUxNDY2ZmU4YmM1NTNhNmExLi5hYjdkZWE1ZGM5YmZjNzEwOTE2YTlmOWU5YjUwMTgzNmM5
MDA1MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlck1vZGVsLmpzCkBAIC03MDYsNiArNzA2LDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAq
IEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBnZXQgaWQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3BheWxvYWQuY2FsbEZyYW1lSWQ7CisgICAgfSwKKworICAgIC8qKgogICAg
ICAqIEByZXR1cm4ge0FycmF5LjxEZWJ1Z2dlckFnZW50LlNjb3BlPn0KICAgICAgKi8KICAgICBn
ZXQgc2NvcGVDaGFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBjMDZmZTQzYzAw
NThmMTA1Y2VhNTY0NDNhMjVjMDBhODk1Mzk1ZWUxLi4wNmY1ODkzZGQxZDg0NjFmYzVlOTY0ZGI2
NDRkNjczNjA3NGJkYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTU1NCw4ICs1
NTQsMTQgQEAgV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBz
Y29wZSB0eXBlOiAiICsgc2NvcGUudHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB2YXIgcmVtb3RlT2Jq
ZWN0ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChzY29wZS5vYmplY3Qp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHZhciBzY29wZVJlZjsKKyAgICAg
ICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICBzY29wZVJl
ZiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgICAg
ICBzY29wZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSZWYoaSwgdW5kZWZpbmVkLCB0aGlz
Ll9yZW1vdGVPYmplY3Qub2JqZWN0SWQpOworCisgICAgICAgICAgICAgICAgdmFyIHJlbW90ZU9i
amVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVNjb3BlUGF5bG9hZChzY29wZS5v
YmplY3QsIHNjb3BlUmVmKTsKICAgICAgICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KSB7CiAg
ICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3RQcm9wZXJ0eS5mcm9tU2NvcGVWYWx1ZSh0aXRsZSwgcmVtb3RlT2JqZWN0KTsKICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHkucGFyZW50T2JqZWN0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5kZXggMzVjYmYx
YjZiZmFlMzZlMDYyYTUxMWU0MGQ3MDMzYWJiMjIyOWZjNC4uZjg0NzdkNjdkMTA2MGI3YmE0NWIy
MGI2NDgwYzU5MzA2N2VlMmI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTM2LDggKzM2LDkgQEAKICAqIEBwYXJhbSB7
Kn0gdmFsdWUKICAqIEBwYXJhbSB7c3RyaW5nPX0gZGVzY3JpcHRpb24KICAqIEBwYXJhbSB7UnVu
dGltZUFnZW50Lk9iamVjdFByZXZpZXc9fSBwcmV2aWV3CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TY29wZVJlZj19IHNjb3BlUmVmCiAgKi8KLVdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QgPSBm
dW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3VidHlwZSwgdmFsdWUsIGRlc2NyaXB0aW9uLCBwcmV2
aWV3KQorV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBl
LCBzdWJ0eXBlLCB2YWx1ZSwgZGVzY3JpcHRpb24sIHByZXZpZXcsIHNjb3BlUmVmKQogewogICAg
IHRoaXMuX3R5cGUgPSB0eXBlOwogICAgIHRoaXMuX3N1YnR5cGUgPSBzdWJ0eXBlOwpAQCAtNTQs
NiArNTUsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQs
IHR5cGUsIHN1YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbgogICAgICAgICB0aGlzLl9oYXNDaGls
ZHJlbiA9IGZhbHNlOwogICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgfQorICAgIHRo
aXMuX3Njb3BlUmVmID0gc2NvcGVSZWY7CiB9CiAKIC8qKgpAQCAtMTEwLDYgKzExMiwxNiBAQCBX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkID0gZnVuY3Rpb24ocGF5bG9hZCkK
IH0KIAogLyoqCisgKiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHBheWxvYWQK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjb3BlUmVmPX0gc2NvcGVSZWYKKyAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3R9CisgKi8KK1dlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbVNjb3BlUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQsIHNjb3BlUmVmKQoreworICAg
IHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdChwYXlsb2FkLm9iamVjdElkLCBw
YXlsb2FkLnR5cGUsIHBheWxvYWQuc3VidHlwZSwgcGF5bG9hZC52YWx1ZSwgcGF5bG9hZC5kZXNj
cmlwdGlvbiwgcGF5bG9hZC5wcmV2aWV3LCBzY29wZVJlZik7Cit9CisKKy8qKgogICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0fSByZW1vdGVPYmplY3QKICAqIEByZXR1cm4ge3N0
cmluZ30KICAqLwpAQCAtMjQ5LDE4ICsyNjEsMzQgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IgfHwgcmVzdWx0
LmRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0aGlzLl9zY29wZVJlZikKKyAgICAgICAgICAg
ICAgICB0aGlzLl9zZXREZWNsYXJhdGl2ZVZhcmlhYmxlVmFsdWUocmVzdWx0LCBuYW1lLCBjYWxs
YmFjayk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5fc2V0T2JqZWN0
UHJvcGVydHlWYWx1ZShyZXN1bHQsIG5hbWUsIGNhbGxiYWNrKTsKIAotICAgICAgICAgICAgdmFy
IHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBi
OyB9IjsKLQotICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBOYU4sIEluZmluaXR5IGFu
ZCAtSW5maW5pdHkKLSAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gIm51bWJlciIgJiYg
dHlwZW9mIHJlc3VsdC52YWx1ZSAhPT0gIm51bWJlciIpCi0gICAgICAgICAgICAgICAgc2V0UHJv
cGVydHlWYWx1ZUZ1bmN0aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQu
ZGVzY3JpcHRpb24gKyAiOyB9IjsKLQotICAgICAgICAgICAgZGVsZXRlIHJlc3VsdC5kZXNjcmlw
dGlvbjsgLy8gT3B0aW1pemUgb24gdHJhZmZpYy4KLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5j
YWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0aW9uLCBb
eyB2YWx1ZTpuYW1lIH0sIHJlc3VsdF0sIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwcm9w
ZXJ0eVNldENhbGxiYWNrLmJpbmQodGhpcykpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5fb2Jq
ZWN0SWQpCiAgICAgICAgICAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QocmVzdWx0
Ll9vYmplY3RJZCk7CiAgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZz0pfSBjYWxsYmFjawor
ICAgICAqLworICAgIF9zZXRPYmplY3RQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5h
bWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IGl0IGlzIG5vdCB0aGF0
IHNpbXBsZSB3aXRoIGFjY2Vzc29yIHByb3BlcnRpZXMuIFRoZSBwcm90byBvYmplY3QgbWF5IGNv
bnRhaW4gdGhlIHByb3BlcnR5LAorICAgICAgICAvLyBob3dldmVyIG5vdCB0aGUgcHJvdG8gb2Jq
ZWN0IG11c3QgYmUgJ3RoaXMnLCBidXQgdGhlIG1haW4gb2JqZWN0LiAKKyAgICAgICAgdmFyIHNl
dFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBiOyB9
IjsKKworICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIE5hTiwgSW5maW5pdHkgYW5kIC1JbmZp
bml0eQorICAgICAgICBpZiAocmVzdWx0LnR5cGUgPT09ICJudW1iZXIiICYmIHR5cGVvZiByZXN1
bHQudmFsdWUgIT09ICJudW1iZXIiKQorICAgICAgICAgICAgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0
aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQuZGVzY3JpcHRpb24gKyAi
OyB9IjsKKworICAgICAgICBkZWxldGUgcmVzdWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6ZSBv
biB0cmFmZmljLgorICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2Jq
ZWN0SWQsIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiwgW3sgdmFsdWU6bmFtZSB9LCByZXN1bHRd
LCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRo
aXMpKTsKIAogICAgICAgICAvKioKICAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9
IGVycm9yCkBAIC0yNzgsNiArMzA2LDQyIEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3R9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmc9KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBfc2V0
RGVjbGFyYXRpdmVWYXJpYWJsZVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5hbWUsIGNhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgdmFyIG5ld1ZhbHVlOworICAgICAgICAKKyAgICAgICAgc3dpdGNo
IChyZXN1bHQudHlwZSkgeworICAgICAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKKyAgICAgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHt9OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKKyAgICAgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHsgb2JqZWN0SWQ6IHJlc3VsdC5vYmplY3RJZCB9OworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBu
ZXdWYWx1ZSA9IHsgdmFsdWU6IHJlc3VsdC52YWx1ZSB9OworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBEZWJ1Z2dlckFnZW50LnNldFZhcmlhYmxlVmFsdWUodGhpcy5fc2NvcGVSZWYubnVt
YmVyLCBuYW1lLCBuZXdWYWx1ZSwgdGhpcy5fc2NvcGVSZWYuY2FsbEZyYW1lSWQsIHRoaXMuX3Nj
b3BlUmVmLmZ1bmN0aW9uSWQsIHNldFZhcmlhYmxlVmFsdWVDYWxsYmFjay5iaW5kKHRoaXMpKTsK
KworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9y
CisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBzZXRWYXJpYWJsZVZhbHVlQ2FsbGJhY2so
ZXJyb3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9CisgICAgfSwKKworICAgIC8q
KgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP0RPTUFnZW50Lk5vZGVJZCl9IGNhbGxiYWNrCiAg
ICAgICovCiAgICAgcHVzaE5vZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTM2
NCw2ICs0MjgsMjAgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiB9
CiAKIC8qKgorICogRWl0aGVyIGNhbGxGcmFtZUlkIG9yIGZ1bmN0aW9uSWQgKGV4YWN0bHkgb25l
KSBtdXN0IGJlIGRlZmluZWQuCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7bnVtYmVyfSBu
dW1iZXIKKyAqIEBwYXJhbSB7c3RyaW5nPX0gY2FsbEZyYW1lSWQKKyAqIEBwYXJhbSB7c3RyaW5n
PX0gZnVuY3Rpb25JZAorICovCitXZWJJbnNwZWN0b3IuU2NvcGVSZWYgPSBmdW5jdGlvbihudW1i
ZXIsIGNhbGxGcmFtZUlkLCBmdW5jdGlvbklkKQoreworICAgIHRoaXMubnVtYmVyID0gbnVtYmVy
OworICAgIHRoaXMuY2FsbEZyYW1lSWQgPSBjYWxsRnJhbWVJZDsKKyAgICB0aGlzLmZ1bmN0aW9u
SWQgPSBmdW5jdGlvbklkOworfQorCisvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gdmFsdWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFp
blNpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29w
ZUNoYWluU2lkZWJhclBhbmUuanMKaW5kZXggMTIwOTUyNmI3ZWJiM2NlZThjODI0NGQzMzk2ZjM0
NmJiZGUxZWYwYy4uYTQ4YTEwN2RlYTJjN2YyOTE5NzQ5YzA5N2ZmMThmYWU0ZWI3NDIxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lk
ZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29w
ZUNoYWluU2lkZWJhclBhbmUuanMKQEAgLTY5LDcgKzY5LDggQEAgV2ViSW5zcGVjdG9yLlNjb3Bl
Q2hhaW5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgc3VidGl0bGUg
PSBzY29wZS5vYmplY3QuZGVzY3JpcHRpb247CiAgICAgICAgICAgICB2YXIgZW1wdHlQbGFjZWhv
bGRlciA9IG51bGw7CiAgICAgICAgICAgICB2YXIgZXh0cmFQcm9wZXJ0aWVzID0gbnVsbDsKLQor
ICAgICAgICAgICAgdmFyIGRlY2xhcmF0aXZlU2NvcGU7CisgICAgICAgICAgICAKICAgICAgICAg
ICAgIHN3aXRjaCAoc2NvcGUudHlwZSkgewogICAgICAgICAgICAgICAgIGNhc2UgImxvY2FsIjoK
ICAgICAgICAgICAgICAgICAgICAgZm91bmRMb2NhbFNjb3BlID0gdHJ1ZTsKQEAgLTg3LDI4ICs4
OCw0MCBAQCBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpblNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVByb3BlcnRpZXMucHVzaChuZXcgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KCI8ZXhjZXB0aW9uPiIsIFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQoZXhjZXB0aW9uT2JqZWN0KSkpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICBjYXNlICJjbG9zdXJlIjoKICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsb3N1cmUiKTsKICAgICAgICAgICAgICAgICAg
ICAgZW1wdHlQbGFjZWhvbGRlciA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8gVmFyaWFibGVz
Iik7CiAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIGNhc2UgImNhdGNoIjoKICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhdGNoIik7CiAgICAgICAgICAgICAgICAgICAg
IHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9
IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
IndpdGgiOgogICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiV2l0aCBCbG9jayIpOworICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGl2ZVNjb3BlID0g
ZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
Imdsb2JhbCI6CiAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJHbG9iYWwiKTsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IGZh
bHNlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKCF0aXRsZSB8fCB0aXRsZSA9PT0gc3VidGl0bGUpCiAgICAgICAgICAgICAgICAg
c3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgc2NvcGVSZWY7
CisgICAgICAgICAgICBpZiAoZGVjbGFyYXRpdmVTY29wZSkKKyAgICAgICAgICAgICAgICBzY29w
ZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSZWYoaSwgY2FsbEZyYW1lLmlkLCB1bmRlZmlu
ZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNjb3BlUmVmID0gdW5kZWZp
bmVkOworICAgICAgICAgICAgCiAKLSAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LmZyb21QYXlsb2FkKHNjb3BlLm9iamVjdCksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhv
bGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRy
ZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29w
ZVBheWxvYWQoc2NvcGUub2JqZWN0LCBzY29wZVJlZiksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQ
bGFjZWhvbGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJp
YWJsZVRyZWVFbGVtZW50KTsKICAgICAgICAgICAgIHNlY3Rpb24uZWRpdEluU2VsZWN0ZWRDYWxs
RnJhbWVXaGVuUGF1c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIHNlY3Rpb24ucGFuZSA9IHRoaXM7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA2ZmE4OTdkNjExMmRiMmNlYjZjODg0NTdhMTQ2NThkNjUzZGVhOTI0Li5lMmUw
ZWEyNmFkYWQyODViNjhhOTE1YTkyZjE2NTE0MGY4MGI1YWI1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTMtMDMtMjAgIFBldGVyIFJ5YmluICA8cHJ5YmluQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGNoYW5naW5nIGxvY2FsIHZhcmlhYmxlcyBpbiBm
cm9udGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEyNDcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12
YXJpYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMTMtMDMtMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTm90IHJldmlld2VkOiBjaHJvbWl1bSBiYXNlbGluZXMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFu
Z2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiODM4YjUwY2MzNTA5ZWUyMTM4
MGJiNDA0ODJhNmEyZjRlMDEwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitUZXN0cyB0aGF0IGV2YWx1YXRpb24gaW4gY29uc29sZSB3b3JrcyBmaW5l
IHdoZW4gc2NyaXB0IGlzIHBhdXNlZC4gSXQgYWxzbyBjaGVja3MgdGhhdCBzdGFjayBhbmQgZ2xv
YmFsIHZhcmlhYmxlcyBhcmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBjb25zb2xlLiBBZGRpdGlvbmFs
bHkgaXQgdHJpZXMgdG8gbW9kaWZ5IGxvY2FsIHZhcmlhYmxlIHZhbHVlIGFuZCBjaGVja3MgdGhh
dCBpdCB3b3Jrcy4KKworRGVidWdnZXIgd2FzIGVuYWJsZWQuCitTZXQgdGltZXIgZm9yIHRlc3Qg
ZnVuY3Rpb24uCitTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KK0V2YWx1YXRlZCBzY3JpcHQgb24g
dGhlIHRvcCBmcmFtZTogNDAyMQorRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFt
ZTogMzAxCitTZXQgcHJvcGVydHkgdmFsdWUgZXJyb3I6IEZhaWxlZCB0byBjaGFuZ2UgdmFyaWFi
bGUgdmFsdWU6IFR5cGVFcnJvcjogVmFyaWFibGUgdmFsdWUgbXV0YXRpb24gaXMgbm90IHN1cHBv
cnRlZAorRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZSAoYWZ0ZXIgdmFsdWUg
bW9kaWZpY2F0aW9uKTogMzAxCitTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCitEZWJ1Z2dlciB3
YXMgZGlzYWJsZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9kZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmNmOTY5
YmE2NDJjMGExMDkxODZmYzk5YWFhMTM2YjFmNWM3NmQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12YXJpYWJsZS5odG1s
CkBAIC0wLDAgKzEsODEgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKwordmFyIGdsb2JhbFZhciA9IHsgYjogMSB9OworCitmdW5jdGlvbiBzbGF2
ZSh4KQoreworICAgIHZhciB5ID0gMjA7CisgICAgZGVidWdnZXI7Cit9CisKK2Z1bmN0aW9uIHRl
c3RGdW5jdGlvbigpCit7CisgICAgdmFyIGxvY2FsT2JqZWN0ID0geyBhOiAzMDAgfTsKKyAgICBz
bGF2ZSg0MDAwKTsKK30KKwordmFyIHRlc3QgPSBmdW5jdGlvbigpCit7CisgICAgSW5zcGVjdG9y
VGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBh
dXNlZChzdGVwMik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDIoY2FsbEZyYW1lcykKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoInggKyB5ICsgZ2xv
YmFsVmFyLmIiLCBzdGVwMy5iaW5kKG51bGwsIGNhbGxGcmFtZXMpKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMyhjYWxsRnJhbWVzLCByZXN1bHQpCisgICAgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgdG9wIGZyYW1lOiAiICsg
cmVzdWx0KTsKKyAgICAgICAgdmFyIHBhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMu
c2lkZWJhclBhbmVzLmNhbGxzdGFjazsKKyAgICAgICAgcGFuZS5fcGxhY2FyZFNlbGVjdGVkKHBh
bmUucGxhY2FyZHNbMV0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rp
c3BhdGNoZXMoc3RlcDQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA0KCkKKyAgICB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImxvY2FsT2JqZWN0LmEgKyBn
bG9iYWxWYXIuYiIsIHN0ZXA1KTsKKyAgICB9CisgICAgZnVuY3Rpb24gc3RlcDUocmVzdWx0KQor
ICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBzY3JpcHQg
b24gdGhlIGNhbGxpbmcgZnJhbWU6ICIgKyByZXN1bHQpOworCisgICAgICAgIHZhciBwYW5lID0g
V2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy5zY29wZWNoYWluOworICAg
ICAgICB2YXIgbG9jYWxzU2VjdGlvbiA9IHBhbmUuX3NlY3Rpb25zWzBdOworICAgICAgICBsb2Nh
bHNTZWN0aW9uLm9iamVjdC5zZXRQcm9wZXJ0eVZhbHVlKCJsb2NhbE9iamVjdCIsICIoeyBhOiAt
MzAwfSkiLCBzdGVwNik7CisgICAgfQorICAgIGZ1bmN0aW9uIHN0ZXA2KGVycm9yKQorICAgIHsK
KyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlNldCBwcm9wZXJ0eSB2YWx1ZSBlcnJvcjogIiArIGVycm9yKTsKKworICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJsb2NhbE9iamVjdC5hICsgZ2xvYmFsVmFyLmIiLCBz
dGVwNyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDcocmVzdWx0KQorICAgIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxp
bmcgZnJhbWUgKGFmdGVyIHZhbHVlIG1vZGlmaWNhdGlvbik6ICIgKyByZXN1bHQpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7CisgICAgfQorfQorCis8L3Nj
cmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyB0
aGF0IGV2YWx1YXRpb24gaW4gY29uc29sZSB3b3JrcyBmaW5lIHdoZW4gc2NyaXB0IGlzIHBhdXNl
ZC4gSXQgYWxzbyBjaGVja3MgdGhhdAorc3RhY2sgYW5kIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGFj
Y2Vzc2libGUgZnJvbSB0aGUgY29uc29sZS4gQWRkaXRpb25hbGx5IGl0IHRyaWVzIHRvCittb2Rp
ZnkgbG9jYWwgdmFyaWFibGUgdmFsdWUgYW5kIGNoZWNrcyB0aGF0IGl0IHdvcmtzLgorPC9wPgor
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyMmU5ZDg2
NzNiZTNiMzJiZTZmMzdjMTUzMDU2NTJlOGZjZWRkODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hh
bmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IGV2
YWx1YXRpb24gaW4gY29uc29sZSB3b3JrcyBmaW5lIHdoZW4gc2NyaXB0IGlzIHBhdXNlZC4gSXQg
YWxzbyBjaGVja3MgdGhhdCBzdGFjayBhbmQgZ2xvYmFsIHZhcmlhYmxlcyBhcmUgYWNjZXNzaWJs
ZSBmcm9tIHRoZSBjb25zb2xlLiBBZGRpdGlvbmFsbHkgaXQgdHJpZXMgdG8gbW9kaWZ5IGxvY2Fs
IHZhcmlhYmxlIHZhbHVlIGFuZCBjaGVja3MgdGhhdCBpdCB3b3Jrcy4KKworRGVidWdnZXIgd2Fz
IGVuYWJsZWQuCitTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCitTY3JpcHQgZXhlY3V0aW9u
IHBhdXNlZC4KK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIHRvcCBmcmFtZTogNDAyMQorRXZhbHVh
dGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZTogMzAxCitFdmFsdWF0ZWQgc2NyaXB0IG9u
IHRoZSBjYWxsaW5nIGZyYW1lIChhZnRlciB2YWx1ZSBtb2RpZmljYXRpb24pOiAtMjk5CitTY3Jp
cHQgZXhlY3V0aW9uIHJlc3VtZWQuCitEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194268</attachid>
            <date>2013-03-21 08:36:15 -0700</date>
            <delta_ts>2013-03-22 08:12:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112470-20130321193202.patch</filename>
            <type>text/plain</type>
            <size>15972</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1MDE0YTYwNGVkYWFm
YmJlMDAwZmJjOWJkNGQzYjU1NmRhYWY5ZC4uOWE1MTFmZGUyNjdmZWEwMzRhNTMxODlkMTk2MzBj
ODRlMmYwY2ZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTIwICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBjaGFuZ2luZyBsb2NhbCB2YXJpYWJsZXMgaW4gZnJvbnRlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjb3BlUmVmIHR5cGUgaXMgYWRk
ZWQgdG8gUmVtb3RlT2JqZWN0IGFuZCBzZXRQcm9wZXJ0eVZhbHVlIGlzIHBhdGNoZWQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5n
ZS12YXJpYWJsZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUu
cHJvdG90eXBlLmdldCBpZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQ
cm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3Bl
TWFpblRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlLmRpZEdldERldGFpbHMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9ucG9wdWxhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLl9zZXREZWNsYXJh
dGl2ZVZhcmlhYmxlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjb3BlUmVmKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZSk6CisKIDIwMTMtMDMtMTMgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDb2RlTWlycm9yXSB0b2tlbiBoaWdobGln
aHQgc3RpbGwgaGFzIHNvbWUgcHJvYmxlbXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBkYjE0YzY1ZDU4NDAzYjllMWNi
YTFiOTUxNDY2ZmU4YmM1NTNhNmExLi5hYjdkZWE1ZGM5YmZjNzEwOTE2YTlmOWU5YjUwMTgzNmM5
MDA1MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlck1vZGVsLmpzCkBAIC03MDYsNiArNzA2LDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAq
IEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBnZXQgaWQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3BheWxvYWQuY2FsbEZyYW1lSWQ7CisgICAgfSwKKworICAgIC8qKgogICAg
ICAqIEByZXR1cm4ge0FycmF5LjxEZWJ1Z2dlckFnZW50LlNjb3BlPn0KICAgICAgKi8KICAgICBn
ZXQgc2NvcGVDaGFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBjMDZmZTQzYzAw
NThmMTA1Y2VhNTY0NDNhMjVjMDBhODk1Mzk1ZWUxLi4wNmY1ODkzZGQxZDg0NjFmYzVlOTY0ZGI2
NDRkNjczNjA3NGJkYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTU1NCw4ICs1
NTQsMTQgQEAgV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBz
Y29wZSB0eXBlOiAiICsgc2NvcGUudHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB2YXIgcmVtb3RlT2Jq
ZWN0ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChzY29wZS5vYmplY3Qp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHZhciBzY29wZVJlZjsKKyAgICAg
ICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICBzY29wZVJl
ZiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgICAg
ICBzY29wZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSZWYoaSwgdW5kZWZpbmVkLCB0aGlz
Ll9yZW1vdGVPYmplY3Qub2JqZWN0SWQpOworCisgICAgICAgICAgICAgICAgdmFyIHJlbW90ZU9i
amVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVNjb3BlUGF5bG9hZChzY29wZS5v
YmplY3QsIHNjb3BlUmVmKTsKICAgICAgICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KSB7CiAg
ICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3RQcm9wZXJ0eS5mcm9tU2NvcGVWYWx1ZSh0aXRsZSwgcmVtb3RlT2JqZWN0KTsKICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHkucGFyZW50T2JqZWN0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5kZXggMzVjYmYx
YjZiZmFlMzZlMDYyYTUxMWU0MGQ3MDMzYWJiMjIyOWZjNC4uZjg0NzdkNjdkMTA2MGI3YmE0NWIy
MGI2NDgwYzU5MzA2N2VlMmI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTM2LDggKzM2LDkgQEAKICAqIEBwYXJhbSB7
Kn0gdmFsdWUKICAqIEBwYXJhbSB7c3RyaW5nPX0gZGVzY3JpcHRpb24KICAqIEBwYXJhbSB7UnVu
dGltZUFnZW50Lk9iamVjdFByZXZpZXc9fSBwcmV2aWV3CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TY29wZVJlZj19IHNjb3BlUmVmCiAgKi8KLVdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QgPSBm
dW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3VidHlwZSwgdmFsdWUsIGRlc2NyaXB0aW9uLCBwcmV2
aWV3KQorV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBl
LCBzdWJ0eXBlLCB2YWx1ZSwgZGVzY3JpcHRpb24sIHByZXZpZXcsIHNjb3BlUmVmKQogewogICAg
IHRoaXMuX3R5cGUgPSB0eXBlOwogICAgIHRoaXMuX3N1YnR5cGUgPSBzdWJ0eXBlOwpAQCAtNTQs
NiArNTUsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQs
IHR5cGUsIHN1YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbgogICAgICAgICB0aGlzLl9oYXNDaGls
ZHJlbiA9IGZhbHNlOwogICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgfQorICAgIHRo
aXMuX3Njb3BlUmVmID0gc2NvcGVSZWY7CiB9CiAKIC8qKgpAQCAtMTEwLDYgKzExMiwxNiBAQCBX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkID0gZnVuY3Rpb24ocGF5bG9hZCkK
IH0KIAogLyoqCisgKiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHBheWxvYWQK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjb3BlUmVmPX0gc2NvcGVSZWYKKyAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3R9CisgKi8KK1dlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbVNjb3BlUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQsIHNjb3BlUmVmKQoreworICAg
IHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdChwYXlsb2FkLm9iamVjdElkLCBw
YXlsb2FkLnR5cGUsIHBheWxvYWQuc3VidHlwZSwgcGF5bG9hZC52YWx1ZSwgcGF5bG9hZC5kZXNj
cmlwdGlvbiwgcGF5bG9hZC5wcmV2aWV3LCBzY29wZVJlZik7Cit9CisKKy8qKgogICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0fSByZW1vdGVPYmplY3QKICAqIEByZXR1cm4ge3N0
cmluZ30KICAqLwpAQCAtMjQ5LDE4ICsyNjEsMzQgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IgfHwgcmVzdWx0
LmRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0aGlzLl9zY29wZVJlZikKKyAgICAgICAgICAg
ICAgICB0aGlzLl9zZXREZWNsYXJhdGl2ZVZhcmlhYmxlVmFsdWUocmVzdWx0LCBuYW1lLCBjYWxs
YmFjayk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5fc2V0T2JqZWN0
UHJvcGVydHlWYWx1ZShyZXN1bHQsIG5hbWUsIGNhbGxiYWNrKTsKIAotICAgICAgICAgICAgdmFy
IHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBi
OyB9IjsKLQotICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBOYU4sIEluZmluaXR5IGFu
ZCAtSW5maW5pdHkKLSAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gIm51bWJlciIgJiYg
dHlwZW9mIHJlc3VsdC52YWx1ZSAhPT0gIm51bWJlciIpCi0gICAgICAgICAgICAgICAgc2V0UHJv
cGVydHlWYWx1ZUZ1bmN0aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQu
ZGVzY3JpcHRpb24gKyAiOyB9IjsKLQotICAgICAgICAgICAgZGVsZXRlIHJlc3VsdC5kZXNjcmlw
dGlvbjsgLy8gT3B0aW1pemUgb24gdHJhZmZpYy4KLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5j
YWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0aW9uLCBb
eyB2YWx1ZTpuYW1lIH0sIHJlc3VsdF0sIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwcm9w
ZXJ0eVNldENhbGxiYWNrLmJpbmQodGhpcykpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5fb2Jq
ZWN0SWQpCiAgICAgICAgICAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QocmVzdWx0
Ll9vYmplY3RJZCk7CiAgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZz0pfSBjYWxsYmFjawor
ICAgICAqLworICAgIF9zZXRPYmplY3RQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5h
bWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IGl0IGlzIG5vdCB0aGF0
IHNpbXBsZSB3aXRoIGFjY2Vzc29yIHByb3BlcnRpZXMuIFRoZSBwcm90byBvYmplY3QgbWF5IGNv
bnRhaW4gdGhlIHByb3BlcnR5LAorICAgICAgICAvLyBob3dldmVyIG5vdCB0aGUgcHJvdG8gb2Jq
ZWN0IG11c3QgYmUgJ3RoaXMnLCBidXQgdGhlIG1haW4gb2JqZWN0LiAKKyAgICAgICAgdmFyIHNl
dFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBiOyB9
IjsKKworICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIE5hTiwgSW5maW5pdHkgYW5kIC1JbmZp
bml0eQorICAgICAgICBpZiAocmVzdWx0LnR5cGUgPT09ICJudW1iZXIiICYmIHR5cGVvZiByZXN1
bHQudmFsdWUgIT09ICJudW1iZXIiKQorICAgICAgICAgICAgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0
aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQuZGVzY3JpcHRpb24gKyAi
OyB9IjsKKworICAgICAgICBkZWxldGUgcmVzdWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6ZSBv
biB0cmFmZmljLgorICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2Jq
ZWN0SWQsIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiwgW3sgdmFsdWU6bmFtZSB9LCByZXN1bHRd
LCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRo
aXMpKTsKIAogICAgICAgICAvKioKICAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9
IGVycm9yCkBAIC0yNzgsNiArMzA2LDQyIEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3R9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmc9KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBfc2V0
RGVjbGFyYXRpdmVWYXJpYWJsZVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5hbWUsIGNhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgdmFyIG5ld1ZhbHVlOworICAgICAgICAKKyAgICAgICAgc3dpdGNo
IChyZXN1bHQudHlwZSkgeworICAgICAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKKyAgICAgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHt9OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKKyAgICAgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHsgb2JqZWN0SWQ6IHJlc3VsdC5vYmplY3RJZCB9OworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBu
ZXdWYWx1ZSA9IHsgdmFsdWU6IHJlc3VsdC52YWx1ZSB9OworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBEZWJ1Z2dlckFnZW50LnNldFZhcmlhYmxlVmFsdWUodGhpcy5fc2NvcGVSZWYubnVt
YmVyLCBuYW1lLCBuZXdWYWx1ZSwgdGhpcy5fc2NvcGVSZWYuY2FsbEZyYW1lSWQsIHRoaXMuX3Nj
b3BlUmVmLmZ1bmN0aW9uSWQsIHNldFZhcmlhYmxlVmFsdWVDYWxsYmFjay5iaW5kKHRoaXMpKTsK
KworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9y
CisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBzZXRWYXJpYWJsZVZhbHVlQ2FsbGJhY2so
ZXJyb3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9CisgICAgfSwKKworICAgIC8q
KgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP0RPTUFnZW50Lk5vZGVJZCl9IGNhbGxiYWNrCiAg
ICAgICovCiAgICAgcHVzaE5vZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTM2
NCw2ICs0MjgsMjAgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiB9
CiAKIC8qKgorICogRWl0aGVyIGNhbGxGcmFtZUlkIG9yIGZ1bmN0aW9uSWQgKGV4YWN0bHkgb25l
KSBtdXN0IGJlIGRlZmluZWQuCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7bnVtYmVyfSBu
dW1iZXIKKyAqIEBwYXJhbSB7c3RyaW5nPX0gY2FsbEZyYW1lSWQKKyAqIEBwYXJhbSB7c3RyaW5n
PX0gZnVuY3Rpb25JZAorICovCitXZWJJbnNwZWN0b3IuU2NvcGVSZWYgPSBmdW5jdGlvbihudW1i
ZXIsIGNhbGxGcmFtZUlkLCBmdW5jdGlvbklkKQoreworICAgIHRoaXMubnVtYmVyID0gbnVtYmVy
OworICAgIHRoaXMuY2FsbEZyYW1lSWQgPSBjYWxsRnJhbWVJZDsKKyAgICB0aGlzLmZ1bmN0aW9u
SWQgPSBmdW5jdGlvbklkOworfQorCisvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gdmFsdWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFp
blNpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29w
ZUNoYWluU2lkZWJhclBhbmUuanMKaW5kZXggMTIwOTUyNmI3ZWJiM2NlZThjODI0NGQzMzk2ZjM0
NmJiZGUxZWYwYy4uYTQ4YTEwN2RlYTJjN2YyOTE5NzQ5YzA5N2ZmMThmYWU0ZWI3NDIxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lk
ZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29w
ZUNoYWluU2lkZWJhclBhbmUuanMKQEAgLTY5LDcgKzY5LDggQEAgV2ViSW5zcGVjdG9yLlNjb3Bl
Q2hhaW5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgc3VidGl0bGUg
PSBzY29wZS5vYmplY3QuZGVzY3JpcHRpb247CiAgICAgICAgICAgICB2YXIgZW1wdHlQbGFjZWhv
bGRlciA9IG51bGw7CiAgICAgICAgICAgICB2YXIgZXh0cmFQcm9wZXJ0aWVzID0gbnVsbDsKLQor
ICAgICAgICAgICAgdmFyIGRlY2xhcmF0aXZlU2NvcGU7CisgICAgICAgICAgICAKICAgICAgICAg
ICAgIHN3aXRjaCAoc2NvcGUudHlwZSkgewogICAgICAgICAgICAgICAgIGNhc2UgImxvY2FsIjoK
ICAgICAgICAgICAgICAgICAgICAgZm91bmRMb2NhbFNjb3BlID0gdHJ1ZTsKQEAgLTg3LDI4ICs4
OCw0MCBAQCBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpblNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVByb3BlcnRpZXMucHVzaChuZXcgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KCI8ZXhjZXB0aW9uPiIsIFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQoZXhjZXB0aW9uT2JqZWN0KSkpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICBjYXNlICJjbG9zdXJlIjoKICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsb3N1cmUiKTsKICAgICAgICAgICAgICAgICAg
ICAgZW1wdHlQbGFjZWhvbGRlciA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8gVmFyaWFibGVz
Iik7CiAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIGNhc2UgImNhdGNoIjoKICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhdGNoIik7CiAgICAgICAgICAgICAgICAgICAg
IHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9
IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
IndpdGgiOgogICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiV2l0aCBCbG9jayIpOworICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGl2ZVNjb3BlID0g
ZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
Imdsb2JhbCI6CiAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJHbG9iYWwiKTsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IGZh
bHNlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKCF0aXRsZSB8fCB0aXRsZSA9PT0gc3VidGl0bGUpCiAgICAgICAgICAgICAgICAg
c3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgc2NvcGVSZWY7
CisgICAgICAgICAgICBpZiAoZGVjbGFyYXRpdmVTY29wZSkKKyAgICAgICAgICAgICAgICBzY29w
ZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSZWYoaSwgY2FsbEZyYW1lLmlkLCB1bmRlZmlu
ZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNjb3BlUmVmID0gdW5kZWZp
bmVkOworICAgICAgICAgICAgCiAKLSAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LmZyb21QYXlsb2FkKHNjb3BlLm9iamVjdCksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhv
bGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRy
ZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29w
ZVBheWxvYWQoc2NvcGUub2JqZWN0LCBzY29wZVJlZiksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQ
bGFjZWhvbGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJp
YWJsZVRyZWVFbGVtZW50KTsKICAgICAgICAgICAgIHNlY3Rpb24uZWRpdEluU2VsZWN0ZWRDYWxs
RnJhbWVXaGVuUGF1c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIHNlY3Rpb24ucGFuZSA9IHRoaXM7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA2ZmE4OTdkNjExMmRiMmNlYjZjODg0NTdhMTQ2NThkNjUzZGVhOTI0Li5lMmUw
ZWEyNmFkYWQyODViNjhhOTE1YTkyZjE2NTE0MGY4MGI1YWI1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTMtMDMtMjAgIFBldGVyIFJ5YmluICA8cHJ5YmluQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGNoYW5naW5nIGxvY2FsIHZhcmlhYmxlcyBpbiBm
cm9udGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEyNDcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12
YXJpYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMTMtMDMtMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTm90IHJldmlld2VkOiBjaHJvbWl1bSBiYXNlbGluZXMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFu
Z2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1M2FmNzcwOTM1MGUyMTNiZDdh
OWZmOTY4OTBiMzQyOTlkNTMwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0cyB0aGF0IG1vZGlmeWluZyBsb2NhbCB2YXJpYWJsZXMgd29ya3Mg
ZmluZS4KKworRGVidWdnZXIgd2FzIGVuYWJsZWQuCitTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rp
b24uCitTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNh
bGxpbmcgZnJhbWU6IDMxMAorU2V0IHByb3BlcnR5IHZhbHVlIGVycm9yOiBGYWlsZWQgdG8gY2hh
bmdlIHZhcmlhYmxlIHZhbHVlOiBUeXBlRXJyb3I6IFZhcmlhYmxlIHZhbHVlIG11dGF0aW9uIGlz
IG5vdCBzdXBwb3J0ZWQKK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWUgKGFm
dGVyIHZhbHVlIG1vZGlmaWNhdGlvbik6IDMxMAorU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgor
RGVidWdnZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzY3NTdiYTBkZjVhMWMwNjYwZWEyN2U5YWMwN2ZlNzk1NTY2YTlmMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFy
aWFibGUuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHNsYXZlKHgpCit7CisgICAgdmFyIHkg
PSAyMDsKKyAgICBkZWJ1Z2dlcjsKK30KKworZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKK3sKKyAg
ICB2YXIgbG9jYWxPYmplY3QgPSB7IGE6IDMwMCB9OworICAgIHNsYXZlKDQwMDApOworfQorCit2
YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJU
ZXN0KHN0ZXAxKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkKHN0ZXAyKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwMihjYWxsRnJhbWVzKQorICAgIHsKKyAgICAgICAgdmFyIHBh
bmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLmNhbGxzdGFjazsK
KyAgICAgICAgcGFuZS5fcGxhY2FyZFNlbGVjdGVkKHBhbmUucGxhY2FyZHNbMV0pOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJbkNvbnNvbGUoImxvY2FsT2JqZWN0LmEgKyAxMCIsIHN0ZXA0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwNChyZXN1bHQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZTogIiArIHJlc3Vs
dCk7CisKKyAgICAgICAgdmFyIHBhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lk
ZWJhclBhbmVzLnNjb3BlY2hhaW47CisgICAgICAgIHZhciBsb2NhbHNTZWN0aW9uID0gcGFuZS5f
c2VjdGlvbnNbMF07CisgICAgICAgIGxvY2Fsc1NlY3Rpb24ub2JqZWN0LnNldFByb3BlcnR5VmFs
dWUoImxvY2FsT2JqZWN0IiwgIih7IGE6IC0zMDB9KSIsIHN0ZXA1KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwNShlcnJvcikKKyAgICB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXQgcHJvcGVydHkgdmFsdWUgZXJyb3I6ICIg
KyBlcnJvcik7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgibG9j
YWxPYmplY3QuYSArIDEwIiwgc3RlcDYpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA2KHJl
c3VsdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFdmFsdWF0ZWQg
c2NyaXB0IG9uIHRoZSBjYWxsaW5nIGZyYW1lIChhZnRlciB2YWx1ZSBtb2RpZmljYXRpb24pOiAi
ICsgcmVzdWx0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgp
OworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxwPgorVGVzdHMgdGhhdCBtb2RpZnlpbmcgbG9jYWwgdmFyaWFibGVzIHdvcmtzIGZp
bmUuCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFyaWFi
bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9y
L2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12YXJpYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2QyM2E1YjMxNDk0ZDViNDNkMDk1YjA5NTFjZTJhNjQ3NDQ4OGQ4ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3RzIHRoYXQgbW9kaWZ5aW5nIGxvY2FsIHZhcmlhYmxlcyB3b3JrcyBmaW5lLgorCitEZWJ1Z2dl
ciB3YXMgZW5hYmxlZC4KK1NldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KK1NjcmlwdCBleGVj
dXRpb24gcGF1c2VkLgorRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZTogMzEw
CitFdmFsdWF0ZWQgc2NyaXB0IG9uIHRoZSBjYWxsaW5nIGZyYW1lIChhZnRlciB2YWx1ZSBtb2Rp
ZmljYXRpb24pOiAtMjkwCitTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCitEZWJ1Z2dlciB3YXMg
ZGlzYWJsZWQuCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194551</attachid>
            <date>2013-03-22 08:12:11 -0700</date>
            <delta_ts>2013-03-22 08:21:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112470-20130322190757.patch</filename>
            <type>text/plain</type>
            <size>15967</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1MDE0YTYwNGVkYWFm
YmJlMDAwZmJjOWJkNGQzYjU1NmRhYWY5ZC4uOWE1MTFmZGUyNjdmZWEwMzRhNTMxODlkMTk2MzBj
ODRlMmYwY2ZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTIwICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBjaGFuZ2luZyBsb2NhbCB2YXJpYWJsZXMgaW4gZnJvbnRlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjb3BlUmVmIHR5cGUgaXMgYWRk
ZWQgdG8gUmVtb3RlT2JqZWN0IGFuZCBzZXRQcm9wZXJ0eVZhbHVlIGlzIHBhdGNoZWQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5n
ZS12YXJpYWJsZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUu
cHJvdG90eXBlLmdldCBpZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQ
cm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3Bl
TWFpblRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlLmRpZEdldERldGFpbHMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9ucG9wdWxhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLl9zZXREZWNsYXJh
dGl2ZVZhcmlhYmxlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjb3BlUmVmKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZSk6CisKIDIwMTMtMDMtMTMgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDb2RlTWlycm9yXSB0b2tlbiBoaWdobGln
aHQgc3RpbGwgaGFzIHNvbWUgcHJvYmxlbXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBkYjE0YzY1ZDU4NDAzYjllMWNi
YTFiOTUxNDY2ZmU4YmM1NTNhNmExLi5hYjdkZWE1ZGM5YmZjNzEwOTE2YTlmOWU5YjUwMTgzNmM5
MDA1MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlck1vZGVsLmpzCkBAIC03MDYsNiArNzA2LDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAq
IEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBnZXQgaWQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3BheWxvYWQuY2FsbEZyYW1lSWQ7CisgICAgfSwKKworICAgIC8qKgogICAg
ICAqIEByZXR1cm4ge0FycmF5LjxEZWJ1Z2dlckFnZW50LlNjb3BlPn0KICAgICAgKi8KICAgICBn
ZXQgc2NvcGVDaGFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBjMDZmZTQzYzAw
NThmMTA1Y2VhNTY0NDNhMjVjMDBhODk1Mzk1ZWUxLi4wNmY1ODkzZGQxZDg0NjFmYzVlOTY0ZGI2
NDRkNjczNjA3NGJkYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTU1NCw4ICs1
NTQsMTQgQEAgV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBz
Y29wZSB0eXBlOiAiICsgc2NvcGUudHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB2YXIgcmVtb3RlT2Jq
ZWN0ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChzY29wZS5vYmplY3Qp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHZhciBzY29wZVJlZjsKKyAgICAg
ICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICBzY29wZVJl
ZiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgICAg
ICBzY29wZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSZWYoaSwgdW5kZWZpbmVkLCB0aGlz
Ll9yZW1vdGVPYmplY3Qub2JqZWN0SWQpOworCisgICAgICAgICAgICAgICAgdmFyIHJlbW90ZU9i
amVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVNjb3BlUGF5bG9hZChzY29wZS5v
YmplY3QsIHNjb3BlUmVmKTsKICAgICAgICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KSB7CiAg
ICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3RQcm9wZXJ0eS5mcm9tU2NvcGVWYWx1ZSh0aXRsZSwgcmVtb3RlT2JqZWN0KTsKICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHkucGFyZW50T2JqZWN0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5kZXggMzVjYmYx
YjZiZmFlMzZlMDYyYTUxMWU0MGQ3MDMzYWJiMjIyOWZjNC4uZjg0NzdkNjdkMTA2MGI3YmE0NWIy
MGI2NDgwYzU5MzA2N2VlMmI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTM2LDggKzM2LDkgQEAKICAqIEBwYXJhbSB7
Kn0gdmFsdWUKICAqIEBwYXJhbSB7c3RyaW5nPX0gZGVzY3JpcHRpb24KICAqIEBwYXJhbSB7UnVu
dGltZUFnZW50Lk9iamVjdFByZXZpZXc9fSBwcmV2aWV3CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TY29wZVJlZj19IHNjb3BlUmVmCiAgKi8KLVdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QgPSBm
dW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3VidHlwZSwgdmFsdWUsIGRlc2NyaXB0aW9uLCBwcmV2
aWV3KQorV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBl
LCBzdWJ0eXBlLCB2YWx1ZSwgZGVzY3JpcHRpb24sIHByZXZpZXcsIHNjb3BlUmVmKQogewogICAg
IHRoaXMuX3R5cGUgPSB0eXBlOwogICAgIHRoaXMuX3N1YnR5cGUgPSBzdWJ0eXBlOwpAQCAtNTQs
NiArNTUsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQs
IHR5cGUsIHN1YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbgogICAgICAgICB0aGlzLl9oYXNDaGls
ZHJlbiA9IGZhbHNlOwogICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgfQorICAgIHRo
aXMuX3Njb3BlUmVmID0gc2NvcGVSZWY7CiB9CiAKIC8qKgpAQCAtMTEwLDYgKzExMiwxNiBAQCBX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkID0gZnVuY3Rpb24ocGF5bG9hZCkK
IH0KIAogLyoqCisgKiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHBheWxvYWQK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjb3BlUmVmPX0gc2NvcGVSZWYKKyAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3R9CisgKi8KK1dlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbVNjb3BlUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQsIHNjb3BlUmVmKQoreworICAg
IHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdChwYXlsb2FkLm9iamVjdElkLCBw
YXlsb2FkLnR5cGUsIHBheWxvYWQuc3VidHlwZSwgcGF5bG9hZC52YWx1ZSwgcGF5bG9hZC5kZXNj
cmlwdGlvbiwgcGF5bG9hZC5wcmV2aWV3LCBzY29wZVJlZik7Cit9CisKKy8qKgogICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0fSByZW1vdGVPYmplY3QKICAqIEByZXR1cm4ge3N0
cmluZ30KICAqLwpAQCAtMjQ5LDE4ICsyNjEsMzQgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IgfHwgcmVzdWx0
LmRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0aGlzLl9zY29wZVJlZikKKyAgICAgICAgICAg
ICAgICB0aGlzLl9zZXREZWNsYXJhdGl2ZVZhcmlhYmxlVmFsdWUocmVzdWx0LCBuYW1lLCBjYWxs
YmFjayk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5fc2V0T2JqZWN0
UHJvcGVydHlWYWx1ZShyZXN1bHQsIG5hbWUsIGNhbGxiYWNrKTsKIAotICAgICAgICAgICAgdmFy
IHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBi
OyB9IjsKLQotICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBOYU4sIEluZmluaXR5IGFu
ZCAtSW5maW5pdHkKLSAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gIm51bWJlciIgJiYg
dHlwZW9mIHJlc3VsdC52YWx1ZSAhPT0gIm51bWJlciIpCi0gICAgICAgICAgICAgICAgc2V0UHJv
cGVydHlWYWx1ZUZ1bmN0aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQu
ZGVzY3JpcHRpb24gKyAiOyB9IjsKLQotICAgICAgICAgICAgZGVsZXRlIHJlc3VsdC5kZXNjcmlw
dGlvbjsgLy8gT3B0aW1pemUgb24gdHJhZmZpYy4KLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5j
YWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0aW9uLCBb
eyB2YWx1ZTpuYW1lIH0sIHJlc3VsdF0sIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwcm9w
ZXJ0eVNldENhbGxiYWNrLmJpbmQodGhpcykpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5fb2Jq
ZWN0SWQpCiAgICAgICAgICAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QocmVzdWx0
Ll9vYmplY3RJZCk7CiAgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZz0pfSBjYWxsYmFjawor
ICAgICAqLworICAgIF9zZXRPYmplY3RQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5h
bWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IGl0IGlzIG5vdCB0aGF0
IHNpbXBsZSB3aXRoIGFjY2Vzc29yIHByb3BlcnRpZXMuIFRoZSBwcm90byBvYmplY3QgbWF5IGNv
bnRhaW4gdGhlIHByb3BlcnR5LAorICAgICAgICAvLyBob3dldmVyIG5vdCB0aGUgcHJvdG8gb2Jq
ZWN0IG11c3QgYmUgJ3RoaXMnLCBidXQgdGhlIG1haW4gb2JqZWN0LiAKKyAgICAgICAgdmFyIHNl
dFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBiOyB9
IjsKKworICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIE5hTiwgSW5maW5pdHkgYW5kIC1JbmZp
bml0eQorICAgICAgICBpZiAocmVzdWx0LnR5cGUgPT09ICJudW1iZXIiICYmIHR5cGVvZiByZXN1
bHQudmFsdWUgIT09ICJudW1iZXIiKQorICAgICAgICAgICAgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0
aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQuZGVzY3JpcHRpb24gKyAi
OyB9IjsKKworICAgICAgICBkZWxldGUgcmVzdWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6ZSBv
biB0cmFmZmljLgorICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2Jq
ZWN0SWQsIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiwgW3sgdmFsdWU6bmFtZSB9LCByZXN1bHRd
LCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRo
aXMpKTsKIAogICAgICAgICAvKioKICAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9
IGVycm9yCkBAIC0yNzgsNiArMzA2LDQyIEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3R9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmc9KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBfc2V0
RGVjbGFyYXRpdmVWYXJpYWJsZVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5hbWUsIGNhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgdmFyIG5ld1ZhbHVlOworICAgICAgICAKKyAgICAgICAgc3dpdGNo
IChyZXN1bHQudHlwZSkgeworICAgICAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKKyAgICAgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHt9OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKKyAgICAgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHsgb2JqZWN0SWQ6IHJlc3VsdC5vYmplY3RJZCB9OworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBu
ZXdWYWx1ZSA9IHsgdmFsdWU6IHJlc3VsdC52YWx1ZSB9OworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBEZWJ1Z2dlckFnZW50LnNldFZhcmlhYmxlVmFsdWUodGhpcy5fc2NvcGVSZWYubnVt
YmVyLCBuYW1lLCBuZXdWYWx1ZSwgdGhpcy5fc2NvcGVSZWYuY2FsbEZyYW1lSWQsIHRoaXMuX3Nj
b3BlUmVmLmZ1bmN0aW9uSWQsIHNldFZhcmlhYmxlVmFsdWVDYWxsYmFjay5iaW5kKHRoaXMpKTsK
KworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9y
CisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBzZXRWYXJpYWJsZVZhbHVlQ2FsbGJhY2so
ZXJyb3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9CisgICAgfSwKKworICAgIC8q
KgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP0RPTUFnZW50Lk5vZGVJZCl9IGNhbGxiYWNrCiAg
ICAgICovCiAgICAgcHVzaE5vZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTM2
NCw2ICs0MjgsMjAgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiB9
CiAKIC8qKgorICogRWl0aGVyIGNhbGxGcmFtZUlkIG9yIGZ1bmN0aW9uSWQgKGV4YWN0bHkgb25l
KSBtdXN0IGJlIGRlZmluZWQuCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7bnVtYmVyfSBu
dW1iZXIKKyAqIEBwYXJhbSB7c3RyaW5nPX0gY2FsbEZyYW1lSWQKKyAqIEBwYXJhbSB7c3RyaW5n
PX0gZnVuY3Rpb25JZAorICovCitXZWJJbnNwZWN0b3IuU2NvcGVSZWYgPSBmdW5jdGlvbihudW1i
ZXIsIGNhbGxGcmFtZUlkLCBmdW5jdGlvbklkKQoreworICAgIHRoaXMubnVtYmVyID0gbnVtYmVy
OworICAgIHRoaXMuY2FsbEZyYW1lSWQgPSBjYWxsRnJhbWVJZDsKKyAgICB0aGlzLmZ1bmN0aW9u
SWQgPSBmdW5jdGlvbklkOworfQorCisvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gdmFsdWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFp
blNpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29w
ZUNoYWluU2lkZWJhclBhbmUuanMKaW5kZXggMTIwOTUyNmI3ZWJiM2NlZThjODI0NGQzMzk2ZjM0
NmJiZGUxZWYwYy4uYTQ4YTEwN2RlYTJjN2YyOTE5NzQ5YzA5N2ZmMThmYWU0ZWI3NDIxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lk
ZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29w
ZUNoYWluU2lkZWJhclBhbmUuanMKQEAgLTY5LDcgKzY5LDggQEAgV2ViSW5zcGVjdG9yLlNjb3Bl
Q2hhaW5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgc3VidGl0bGUg
PSBzY29wZS5vYmplY3QuZGVzY3JpcHRpb247CiAgICAgICAgICAgICB2YXIgZW1wdHlQbGFjZWhv
bGRlciA9IG51bGw7CiAgICAgICAgICAgICB2YXIgZXh0cmFQcm9wZXJ0aWVzID0gbnVsbDsKLQor
ICAgICAgICAgICAgdmFyIGRlY2xhcmF0aXZlU2NvcGU7CisgICAgICAgICAgICAKICAgICAgICAg
ICAgIHN3aXRjaCAoc2NvcGUudHlwZSkgewogICAgICAgICAgICAgICAgIGNhc2UgImxvY2FsIjoK
ICAgICAgICAgICAgICAgICAgICAgZm91bmRMb2NhbFNjb3BlID0gdHJ1ZTsKQEAgLTg3LDI4ICs4
OCw0MCBAQCBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpblNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVByb3BlcnRpZXMucHVzaChuZXcgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KCI8ZXhjZXB0aW9uPiIsIFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQoZXhjZXB0aW9uT2JqZWN0KSkpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICBjYXNlICJjbG9zdXJlIjoKICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsb3N1cmUiKTsKICAgICAgICAgICAgICAgICAg
ICAgZW1wdHlQbGFjZWhvbGRlciA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8gVmFyaWFibGVz
Iik7CiAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIGNhc2UgImNhdGNoIjoKICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhdGNoIik7CiAgICAgICAgICAgICAgICAgICAg
IHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9
IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
IndpdGgiOgogICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiV2l0aCBCbG9jayIpOworICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGl2ZVNjb3BlID0g
ZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
Imdsb2JhbCI6CiAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJHbG9iYWwiKTsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IGZh
bHNlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKCF0aXRsZSB8fCB0aXRsZSA9PT0gc3VidGl0bGUpCiAgICAgICAgICAgICAgICAg
c3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgc2NvcGVSZWY7
CisgICAgICAgICAgICBpZiAoZGVjbGFyYXRpdmVTY29wZSkKKyAgICAgICAgICAgICAgICBzY29w
ZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSZWYoaSwgY2FsbEZyYW1lLmlkLCB1bmRlZmlu
ZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNjb3BlUmVmID0gdW5kZWZp
bmVkOworICAgICAgICAgICAgCiAKLSAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LmZyb21QYXlsb2FkKHNjb3BlLm9iamVjdCksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhv
bGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRy
ZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29w
ZVBheWxvYWQoc2NvcGUub2JqZWN0LCBzY29wZVJlZiksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQ
bGFjZWhvbGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJp
YWJsZVRyZWVFbGVtZW50KTsKICAgICAgICAgICAgIHNlY3Rpb24uZWRpdEluU2VsZWN0ZWRDYWxs
RnJhbWVXaGVuUGF1c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIHNlY3Rpb24ucGFuZSA9IHRoaXM7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA2ZmE4OTdkNjExMmRiMmNlYjZjODg0NTdhMTQ2NThkNjUzZGVhOTI0Li5lMmUw
ZWEyNmFkYWQyODViNjhhOTE1YTkyZjE2NTE0MGY4MGI1YWI1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTMtMDMtMjAgIFBldGVyIFJ5YmluICA8cHJ5YmluQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGNoYW5naW5nIGxvY2FsIHZhcmlhYmxlcyBpbiBm
cm9udGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEyNDcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12
YXJpYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMTMtMDMtMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTm90IHJldmlld2VkOiBjaHJvbWl1bSBiYXNlbGluZXMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFu
Z2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1M2FmNzcwOTM1MGUyMTNiZDdh
OWZmOTY4OTBiMzQyOTlkNTMwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0cyB0aGF0IG1vZGlmeWluZyBsb2NhbCB2YXJpYWJsZXMgd29ya3Mg
ZmluZS4KKworRGVidWdnZXIgd2FzIGVuYWJsZWQuCitTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rp
b24uCitTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNh
bGxpbmcgZnJhbWU6IDMxMAorU2V0IHByb3BlcnR5IHZhbHVlIGVycm9yOiBGYWlsZWQgdG8gY2hh
bmdlIHZhcmlhYmxlIHZhbHVlOiBUeXBlRXJyb3I6IFZhcmlhYmxlIHZhbHVlIG11dGF0aW9uIGlz
IG5vdCBzdXBwb3J0ZWQKK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWUgKGFm
dGVyIHZhbHVlIG1vZGlmaWNhdGlvbik6IDMxMAorU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgor
RGVidWdnZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzY4MDMxMjIzMDM5YzMyN2VmZGQ4YzljNzk2Y2RkZjRiYTA1NGU5NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFy
aWFibGUuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHNsYXZlKHgpCit7CisgICAgdmFyIHkg
PSAyMDsKKyAgICBkZWJ1Z2dlcjsKK30KKworZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKK3sKKyAg
ICB2YXIgbG9jYWxPYmplY3QgPSB7IGE6IDMxMCB9OworICAgIHNsYXZlKDQwMDApOworfQorCit2
YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJU
ZXN0KHN0ZXAxKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkKHN0ZXAyKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwMihjYWxsRnJhbWVzKQorICAgIHsKKyAgICAgICAgdmFyIHBh
bmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLmNhbGxzdGFjazsK
KyAgICAgICAgcGFuZS5fcGxhY2FyZFNlbGVjdGVkKHBhbmUucGxhY2FyZHNbMV0pOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJbkNvbnNvbGUoImxvY2FsT2JqZWN0LmEgKyAxMCIsIHN0ZXA0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwNChyZXN1bHQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZTogIiArIHJlc3Vs
dCk7CisKKyAgICAgICAgdmFyIHBhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lk
ZWJhclBhbmVzLnNjb3BlY2hhaW47CisgICAgICAgIHZhciBsb2NhbHNTZWN0aW9uID0gcGFuZS5f
c2VjdGlvbnNbMF07CisgICAgICAgIGxvY2Fsc1NlY3Rpb24ub2JqZWN0LnNldFByb3BlcnR5VmFs
dWUoImxvY2FsT2JqZWN0IiwgIih7IGE6IC0yOTB9KSIsIHN0ZXA1KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwNShlcnJvcikKKyAgICB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXQgcHJvcGVydHkgdmFsdWUgZXJyb3I6ICIg
KyBlcnJvcik7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgibG9j
YWxPYmplY3QuYSIsIHN0ZXA2KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNihyZXN1bHQp
CisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXZhbHVhdGVkIHNjcmlw
dCBvbiB0aGUgY2FsbGluZyBmcmFtZSAoYWZ0ZXIgdmFsdWUgbW9kaWZpY2F0aW9uKTogIiArIHJl
c3VsdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKKyAg
ICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8cD4KK1Rlc3RzIHRoYXQgbW9kaWZ5aW5nIGxvY2FsIHZhcmlhYmxlcyB3b3JrcyBmaW5lLgor
PC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9kZWJ1
Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNk
MjNhNWIzMTQ5NGQ1YjQzZDA5NWIwOTUxY2UyYTY0NzQ0ODhkOGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0
aGF0IG1vZGlmeWluZyBsb2NhbCB2YXJpYWJsZXMgd29ya3MgZmluZS4KKworRGVidWdnZXIgd2Fz
IGVuYWJsZWQuCitTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCitTY3JpcHQgZXhlY3V0aW9u
IHBhdXNlZC4KK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWU6IDMxMAorRXZh
bHVhdGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFtZSAoYWZ0ZXIgdmFsdWUgbW9kaWZpY2F0
aW9uKTogLTI5MAorU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgorRGVidWdnZXIgd2FzIGRpc2Fi
bGVkLgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194553</attachid>
            <date>2013-03-22 08:21:23 -0700</date>
            <delta_ts>2013-03-22 17:17:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112470-20130322191710.patch</filename>
            <type>text/plain</type>
            <size>15962</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1MDE0YTYwNGVkYWFm
YmJlMDAwZmJjOWJkNGQzYjU1NmRhYWY5ZC4uOWE1MTFmZGUyNjdmZWEwMzRhNTMxODlkMTk2MzBj
ODRlMmYwY2ZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTIwICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBjaGFuZ2luZyBsb2NhbCB2YXJpYWJsZXMgaW4gZnJvbnRlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjb3BlUmVmIHR5cGUgaXMgYWRk
ZWQgdG8gUmVtb3RlT2JqZWN0IGFuZCBzZXRQcm9wZXJ0eVZhbHVlIGlzIHBhdGNoZWQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5n
ZS12YXJpYWJsZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUu
cHJvdG90eXBlLmdldCBpZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQ
cm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3Bl
TWFpblRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlLmRpZEdldERldGFpbHMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9ucG9wdWxhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLl9zZXREZWNsYXJh
dGl2ZVZhcmlhYmxlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjb3BlUmVmKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZSk6CisKIDIwMTMtMDMtMTMgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDb2RlTWlycm9yXSB0b2tlbiBoaWdobGln
aHQgc3RpbGwgaGFzIHNvbWUgcHJvYmxlbXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBkYjE0YzY1ZDU4NDAzYjllMWNi
YTFiOTUxNDY2ZmU4YmM1NTNhNmExLi5hYjdkZWE1ZGM5YmZjNzEwOTE2YTlmOWU5YjUwMTgzNmM5
MDA1MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlck1vZGVsLmpzCkBAIC03MDYsNiArNzA2LDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAq
IEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBnZXQgaWQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3BheWxvYWQuY2FsbEZyYW1lSWQ7CisgICAgfSwKKworICAgIC8qKgogICAg
ICAqIEByZXR1cm4ge0FycmF5LjxEZWJ1Z2dlckFnZW50LlNjb3BlPn0KICAgICAgKi8KICAgICBn
ZXQgc2NvcGVDaGFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBjMDZmZTQzYzAw
NThmMTA1Y2VhNTY0NDNhMjVjMDBhODk1Mzk1ZWUxLi4wNmY1ODkzZGQxZDg0NjFmYzVlOTY0ZGI2
NDRkNjczNjA3NGJkYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTU1NCw4ICs1
NTQsMTQgQEAgV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBz
Y29wZSB0eXBlOiAiICsgc2NvcGUudHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB2YXIgcmVtb3RlT2Jq
ZWN0ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChzY29wZS5vYmplY3Qp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHZhciBzY29wZVJlZjsKKyAgICAg
ICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICBzY29wZVJl
ZiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgICAg
ICBzY29wZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSZWYoaSwgdW5kZWZpbmVkLCB0aGlz
Ll9yZW1vdGVPYmplY3Qub2JqZWN0SWQpOworCisgICAgICAgICAgICAgICAgdmFyIHJlbW90ZU9i
amVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVNjb3BlUGF5bG9hZChzY29wZS5v
YmplY3QsIHNjb3BlUmVmKTsKICAgICAgICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KSB7CiAg
ICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3RQcm9wZXJ0eS5mcm9tU2NvcGVWYWx1ZSh0aXRsZSwgcmVtb3RlT2JqZWN0KTsKICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHkucGFyZW50T2JqZWN0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5kZXggMzVjYmYx
YjZiZmFlMzZlMDYyYTUxMWU0MGQ3MDMzYWJiMjIyOWZjNC4uZjg0NzdkNjdkMTA2MGI3YmE0NWIy
MGI2NDgwYzU5MzA2N2VlMmI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTM2LDggKzM2LDkgQEAKICAqIEBwYXJhbSB7
Kn0gdmFsdWUKICAqIEBwYXJhbSB7c3RyaW5nPX0gZGVzY3JpcHRpb24KICAqIEBwYXJhbSB7UnVu
dGltZUFnZW50Lk9iamVjdFByZXZpZXc9fSBwcmV2aWV3CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TY29wZVJlZj19IHNjb3BlUmVmCiAgKi8KLVdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QgPSBm
dW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3VidHlwZSwgdmFsdWUsIGRlc2NyaXB0aW9uLCBwcmV2
aWV3KQorV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBl
LCBzdWJ0eXBlLCB2YWx1ZSwgZGVzY3JpcHRpb24sIHByZXZpZXcsIHNjb3BlUmVmKQogewogICAg
IHRoaXMuX3R5cGUgPSB0eXBlOwogICAgIHRoaXMuX3N1YnR5cGUgPSBzdWJ0eXBlOwpAQCAtNTQs
NiArNTUsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQs
IHR5cGUsIHN1YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbgogICAgICAgICB0aGlzLl9oYXNDaGls
ZHJlbiA9IGZhbHNlOwogICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgfQorICAgIHRo
aXMuX3Njb3BlUmVmID0gc2NvcGVSZWY7CiB9CiAKIC8qKgpAQCAtMTEwLDYgKzExMiwxNiBAQCBX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkID0gZnVuY3Rpb24ocGF5bG9hZCkK
IH0KIAogLyoqCisgKiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHBheWxvYWQK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjb3BlUmVmPX0gc2NvcGVSZWYKKyAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3R9CisgKi8KK1dlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbVNjb3BlUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQsIHNjb3BlUmVmKQoreworICAg
IHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdChwYXlsb2FkLm9iamVjdElkLCBw
YXlsb2FkLnR5cGUsIHBheWxvYWQuc3VidHlwZSwgcGF5bG9hZC52YWx1ZSwgcGF5bG9hZC5kZXNj
cmlwdGlvbiwgcGF5bG9hZC5wcmV2aWV3LCBzY29wZVJlZik7Cit9CisKKy8qKgogICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0fSByZW1vdGVPYmplY3QKICAqIEByZXR1cm4ge3N0
cmluZ30KICAqLwpAQCAtMjQ5LDE4ICsyNjEsMzQgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IgfHwgcmVzdWx0
LmRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0aGlzLl9zY29wZVJlZikKKyAgICAgICAgICAg
ICAgICB0aGlzLl9zZXREZWNsYXJhdGl2ZVZhcmlhYmxlVmFsdWUocmVzdWx0LCBuYW1lLCBjYWxs
YmFjayk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5fc2V0T2JqZWN0
UHJvcGVydHlWYWx1ZShyZXN1bHQsIG5hbWUsIGNhbGxiYWNrKTsKIAotICAgICAgICAgICAgdmFy
IHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBi
OyB9IjsKLQotICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBOYU4sIEluZmluaXR5IGFu
ZCAtSW5maW5pdHkKLSAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gIm51bWJlciIgJiYg
dHlwZW9mIHJlc3VsdC52YWx1ZSAhPT0gIm51bWJlciIpCi0gICAgICAgICAgICAgICAgc2V0UHJv
cGVydHlWYWx1ZUZ1bmN0aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQu
ZGVzY3JpcHRpb24gKyAiOyB9IjsKLQotICAgICAgICAgICAgZGVsZXRlIHJlc3VsdC5kZXNjcmlw
dGlvbjsgLy8gT3B0aW1pemUgb24gdHJhZmZpYy4KLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5j
YWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0aW9uLCBb
eyB2YWx1ZTpuYW1lIH0sIHJlc3VsdF0sIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwcm9w
ZXJ0eVNldENhbGxiYWNrLmJpbmQodGhpcykpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5fb2Jq
ZWN0SWQpCiAgICAgICAgICAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QocmVzdWx0
Ll9vYmplY3RJZCk7CiAgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZz0pfSBjYWxsYmFjawor
ICAgICAqLworICAgIF9zZXRPYmplY3RQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5h
bWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IGl0IGlzIG5vdCB0aGF0
IHNpbXBsZSB3aXRoIGFjY2Vzc29yIHByb3BlcnRpZXMuIFRoZSBwcm90byBvYmplY3QgbWF5IGNv
bnRhaW4gdGhlIHByb3BlcnR5LAorICAgICAgICAvLyBob3dldmVyIG5vdCB0aGUgcHJvdG8gb2Jq
ZWN0IG11c3QgYmUgJ3RoaXMnLCBidXQgdGhlIG1haW4gb2JqZWN0LiAKKyAgICAgICAgdmFyIHNl
dFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBiOyB9
IjsKKworICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIE5hTiwgSW5maW5pdHkgYW5kIC1JbmZp
bml0eQorICAgICAgICBpZiAocmVzdWx0LnR5cGUgPT09ICJudW1iZXIiICYmIHR5cGVvZiByZXN1
bHQudmFsdWUgIT09ICJudW1iZXIiKQorICAgICAgICAgICAgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0
aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQuZGVzY3JpcHRpb24gKyAi
OyB9IjsKKworICAgICAgICBkZWxldGUgcmVzdWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6ZSBv
biB0cmFmZmljLgorICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2Jq
ZWN0SWQsIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiwgW3sgdmFsdWU6bmFtZSB9LCByZXN1bHRd
LCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRo
aXMpKTsKIAogICAgICAgICAvKioKICAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9
IGVycm9yCkBAIC0yNzgsNiArMzA2LDQyIEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3R9IHJlc3VsdAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmc9KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBfc2V0
RGVjbGFyYXRpdmVWYXJpYWJsZVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5hbWUsIGNhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgdmFyIG5ld1ZhbHVlOworICAgICAgICAKKyAgICAgICAgc3dpdGNo
IChyZXN1bHQudHlwZSkgeworICAgICAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKKyAgICAgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHt9OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKKyAgICAgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHsgb2JqZWN0SWQ6IHJlc3VsdC5vYmplY3RJZCB9OworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBu
ZXdWYWx1ZSA9IHsgdmFsdWU6IHJlc3VsdC52YWx1ZSB9OworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBEZWJ1Z2dlckFnZW50LnNldFZhcmlhYmxlVmFsdWUodGhpcy5fc2NvcGVSZWYubnVt
YmVyLCBuYW1lLCBuZXdWYWx1ZSwgdGhpcy5fc2NvcGVSZWYuY2FsbEZyYW1lSWQsIHRoaXMuX3Nj
b3BlUmVmLmZ1bmN0aW9uSWQsIHNldFZhcmlhYmxlVmFsdWVDYWxsYmFjay5iaW5kKHRoaXMpKTsK
KworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9y
CisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBzZXRWYXJpYWJsZVZhbHVlQ2FsbGJhY2so
ZXJyb3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9CisgICAgfSwKKworICAgIC8q
KgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP0RPTUFnZW50Lk5vZGVJZCl9IGNhbGxiYWNrCiAg
ICAgICovCiAgICAgcHVzaE5vZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTM2
NCw2ICs0MjgsMjAgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiB9
CiAKIC8qKgorICogRWl0aGVyIGNhbGxGcmFtZUlkIG9yIGZ1bmN0aW9uSWQgKGV4YWN0bHkgb25l
KSBtdXN0IGJlIGRlZmluZWQuCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7bnVtYmVyfSBu
dW1iZXIKKyAqIEBwYXJhbSB7c3RyaW5nPX0gY2FsbEZyYW1lSWQKKyAqIEBwYXJhbSB7c3RyaW5n
PX0gZnVuY3Rpb25JZAorICovCitXZWJJbnNwZWN0b3IuU2NvcGVSZWYgPSBmdW5jdGlvbihudW1i
ZXIsIGNhbGxGcmFtZUlkLCBmdW5jdGlvbklkKQoreworICAgIHRoaXMubnVtYmVyID0gbnVtYmVy
OworICAgIHRoaXMuY2FsbEZyYW1lSWQgPSBjYWxsRnJhbWVJZDsKKyAgICB0aGlzLmZ1bmN0aW9u
SWQgPSBmdW5jdGlvbklkOworfQorCisvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gdmFsdWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFp
blNpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29w
ZUNoYWluU2lkZWJhclBhbmUuanMKaW5kZXggMTIwOTUyNmI3ZWJiM2NlZThjODI0NGQzMzk2ZjM0
NmJiZGUxZWYwYy4uYTQ4YTEwN2RlYTJjN2YyOTE5NzQ5YzA5N2ZmMThmYWU0ZWI3NDIxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lk
ZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29w
ZUNoYWluU2lkZWJhclBhbmUuanMKQEAgLTY5LDcgKzY5LDggQEAgV2ViSW5zcGVjdG9yLlNjb3Bl
Q2hhaW5TaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgc3VidGl0bGUg
PSBzY29wZS5vYmplY3QuZGVzY3JpcHRpb247CiAgICAgICAgICAgICB2YXIgZW1wdHlQbGFjZWhv
bGRlciA9IG51bGw7CiAgICAgICAgICAgICB2YXIgZXh0cmFQcm9wZXJ0aWVzID0gbnVsbDsKLQor
ICAgICAgICAgICAgdmFyIGRlY2xhcmF0aXZlU2NvcGU7CisgICAgICAgICAgICAKICAgICAgICAg
ICAgIHN3aXRjaCAoc2NvcGUudHlwZSkgewogICAgICAgICAgICAgICAgIGNhc2UgImxvY2FsIjoK
ICAgICAgICAgICAgICAgICAgICAgZm91bmRMb2NhbFNjb3BlID0gdHJ1ZTsKQEAgLTg3LDI4ICs4
OCw0MCBAQCBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpblNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVByb3BlcnRpZXMucHVzaChuZXcgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KCI8ZXhjZXB0aW9uPiIsIFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQoZXhjZXB0aW9uT2JqZWN0KSkpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICBjYXNlICJjbG9zdXJlIjoKICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsb3N1cmUiKTsKICAgICAgICAgICAgICAgICAg
ICAgZW1wdHlQbGFjZWhvbGRlciA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8gVmFyaWFibGVz
Iik7CiAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIGNhc2UgImNhdGNoIjoKICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhdGNoIik7CiAgICAgICAgICAgICAgICAgICAg
IHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9
IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
IndpdGgiOgogICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiV2l0aCBCbG9jayIpOworICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGl2ZVNjb3BlID0g
ZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
Imdsb2JhbCI6CiAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJHbG9iYWwiKTsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IGZh
bHNlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKCF0aXRsZSB8fCB0aXRsZSA9PT0gc3VidGl0bGUpCiAgICAgICAgICAgICAgICAg
c3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgc2NvcGVSZWY7
CisgICAgICAgICAgICBpZiAoZGVjbGFyYXRpdmVTY29wZSkKKyAgICAgICAgICAgICAgICBzY29w
ZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVSZWYoaSwgY2FsbEZyYW1lLmlkLCB1bmRlZmlu
ZWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNjb3BlUmVmID0gdW5kZWZp
bmVkOworICAgICAgICAgICAgCiAKLSAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LmZyb21QYXlsb2FkKHNjb3BlLm9iamVjdCksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhv
bGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRy
ZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29w
ZVBheWxvYWQoc2NvcGUub2JqZWN0LCBzY29wZVJlZiksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQ
bGFjZWhvbGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJp
YWJsZVRyZWVFbGVtZW50KTsKICAgICAgICAgICAgIHNlY3Rpb24uZWRpdEluU2VsZWN0ZWRDYWxs
RnJhbWVXaGVuUGF1c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIHNlY3Rpb24ucGFuZSA9IHRoaXM7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA2ZmE4OTdkNjExMmRiMmNlYjZjODg0NTdhMTQ2NThkNjUzZGVhOTI0Li5lMmUw
ZWEyNmFkYWQyODViNjhhOTE1YTkyZjE2NTE0MGY4MGI1YWI1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTMtMDMtMjAgIFBldGVyIFJ5YmluICA8cHJ5YmluQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGNoYW5naW5nIGxvY2FsIHZhcmlhYmxlcyBpbiBm
cm9udGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEyNDcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12
YXJpYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMTMtMDMtMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTm90IHJldmlld2VkOiBjaHJvbWl1bSBiYXNlbGluZXMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFu
Z2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1M2FmNzcwOTM1MGUyMTNiZDdh
OWZmOTY4OTBiMzQyOTlkNTMwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0cyB0aGF0IG1vZGlmeWluZyBsb2NhbCB2YXJpYWJsZXMgd29ya3Mg
ZmluZS4KKworRGVidWdnZXIgd2FzIGVuYWJsZWQuCitTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rp
b24uCitTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNh
bGxpbmcgZnJhbWU6IDMxMAorU2V0IHByb3BlcnR5IHZhbHVlIGVycm9yOiBGYWlsZWQgdG8gY2hh
bmdlIHZhcmlhYmxlIHZhbHVlOiBUeXBlRXJyb3I6IFZhcmlhYmxlIHZhbHVlIG11dGF0aW9uIGlz
IG5vdCBzdXBwb3J0ZWQKK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWUgKGFm
dGVyIHZhbHVlIG1vZGlmaWNhdGlvbik6IDMxMAorU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgor
RGVidWdnZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGYwNDhiZTE5YTE4YjJlNzFjOTc1MTAxMzJjY2M5NGY0Y2U2OTYwYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFy
aWFibGUuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHNsYXZlKHgpCit7CisgICAgdmFyIHkg
PSAyMDsKKyAgICBkZWJ1Z2dlcjsKK30KKworZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKK3sKKyAg
ICB2YXIgbG9jYWxPYmplY3QgPSB7IGE6IDMxMCB9OworICAgIHNsYXZlKDQwMDApOworfQorCit2
YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJU
ZXN0KHN0ZXAxKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkKHN0ZXAyKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwMihjYWxsRnJhbWVzKQorICAgIHsKKyAgICAgICAgdmFyIHBh
bmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLmNhbGxzdGFjazsK
KyAgICAgICAgcGFuZS5fcGxhY2FyZFNlbGVjdGVkKHBhbmUucGxhY2FyZHNbMV0pOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJbkNvbnNvbGUoImxvY2FsT2JqZWN0LmEiLCBzdGVwNCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3RlcDQocmVzdWx0KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkV2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWU6ICIgKyByZXN1bHQpOwor
CisgICAgICAgIHZhciBwYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQ
YW5lcy5zY29wZWNoYWluOworICAgICAgICB2YXIgbG9jYWxzU2VjdGlvbiA9IHBhbmUuX3NlY3Rp
b25zWzBdOworICAgICAgICBsb2NhbHNTZWN0aW9uLm9iamVjdC5zZXRQcm9wZXJ0eVZhbHVlKCJs
b2NhbE9iamVjdCIsICIoeyBhOiAtMjkwfSkiLCBzdGVwNSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gc3RlcDUoZXJyb3IpCisgICAgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IHByb3BlcnR5IHZhbHVlIGVycm9yOiAiICsgZXJy
b3IpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImxvY2FsT2Jq
ZWN0LmEiLCBzdGVwNik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDYocmVzdWx0KQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBzY3JpcHQgb24g
dGhlIGNhbGxpbmcgZnJhbWUgKGFmdGVyIHZhbHVlIG1vZGlmaWNhdGlvbik6ICIgKyByZXN1bHQp
OworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7CisgICAgfQor
fQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+
CitUZXN0cyB0aGF0IG1vZGlmeWluZyBsb2NhbCB2YXJpYWJsZXMgd29ya3MgZmluZS4KKzwvcD4K
KworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12YXJpYWJsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDIzYTVi
MzE0OTRkNWI0M2QwOTViMDk1MWNlMmE2NDc0NDg4ZDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNo
YW5nZS12YXJpYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBt
b2RpZnlpbmcgbG9jYWwgdmFyaWFibGVzIHdvcmtzIGZpbmUuCisKK0RlYnVnZ2VyIHdhcyBlbmFi
bGVkLgorU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgorU2NyaXB0IGV4ZWN1dGlvbiBwYXVz
ZWQuCitFdmFsdWF0ZWQgc2NyaXB0IG9uIHRoZSBjYWxsaW5nIGZyYW1lOiAzMTAKK0V2YWx1YXRl
ZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWUgKGFmdGVyIHZhbHVlIG1vZGlmaWNhdGlvbik6
IC0yOTAKK1NjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KK0RlYnVnZ2VyIHdhcyBkaXNhYmxlZC4K
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194662</attachid>
            <date>2013-03-22 17:17:23 -0700</date>
            <delta_ts>2013-03-25 05:41:15 -0700</delta_ts>
            <desc>Rebase</desc>
            <filename>bug-112470-20130323041309.patch</filename>
            <type>text/plain</type>
            <size>15980</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhlYTA0MjM5MGFlN2Qx
M2ZiYzE4YzgwZGE1MjNkZTcyZTQ2MDhjOC4uYTU4Y2ZlZTgzZTcxMWY4MzI0OGM3YTYwMjJhNzgw
ZDkwMjg3NGMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTIwICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBjaGFuZ2luZyBsb2NhbCB2YXJpYWJsZXMgaW4gZnJvbnRlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjb3BlUmVmIHR5cGUgaXMgYWRk
ZWQgdG8gUmVtb3RlT2JqZWN0IGFuZCBzZXRQcm9wZXJ0eVZhbHVlIGlzIHBhdGNoZWQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5n
ZS12YXJpYWJsZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWUu
cHJvdG90eXBlLmdldCBpZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQ
cm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3Bl
TWFpblRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlLmRpZEdldERldGFpbHMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9ucG9wdWxhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0VmFyaWFibGVWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLl9zZXREZWNsYXJh
dGl2ZVZhcmlhYmxlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjb3BlUmVmKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njb3BlQ2hhaW5TaWRlYmFyUGFuZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY29wZUNoYWluU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZSk6CisKIDIwMTMtMDMtMjIgIFRpYW5jaGVuZyBKaWFuZyAgPHRpamlhbmdAcmltLmNvbT4KIAog
ICAgICAgICBbQmxhY2tCZXJyeV0gVXBkYXRlIElucHV0IGZpZWxkIEJhY2tncm91bmQgQ29sb3IK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJN
b2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2Rl
bC5qcwppbmRleCBkYjE0YzY1ZDU4NDAzYjllMWNiYTFiOTUxNDY2ZmU4YmM1NTNhNmExLi5hYjdk
ZWE1ZGM5YmZjNzEwOTE2YTlmOWU5YjUwMTgzNmM5MDA1MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCkBAIC03MDYsNiAr
NzA2LDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkNhbGxGcmFtZS5wcm90b3R5cGUg
PSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8K
KyAgICBnZXQgaWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BheWxvYWQuY2FsbEZy
YW1lSWQ7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEByZXR1cm4ge0FycmF5LjxEZWJ1Z2dl
ckFnZW50LlNjb3BlPn0KICAgICAgKi8KICAgICBnZXQgc2NvcGVDaGFpbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0
aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0
aWVzU2VjdGlvbi5qcwppbmRleCBjMDZmZTQzYzAwNThmMTA1Y2VhNTY0NDNhMjVjMDBhODk1Mzk1
ZWUxLi4wNmY1ODkzZGQxZDg0NjFmYzVlOTY0ZGI2NDRkNjczNjA3NGJkYjBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0
aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJv
cGVydGllc1NlY3Rpb24uanMKQEAgLTU1NCw4ICs1NTQsMTQgQEAgV2ViSW5zcGVjdG9yLkZ1bmN0
aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBzY29wZSB0eXBlOiAiICsgc2NvcGUudHlwZSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgICB2YXIgcmVtb3RlT2JqZWN0ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5mcm9tUGF5bG9hZChzY29wZS5vYmplY3QpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIHZhciBzY29wZVJlZjsKKyAgICAgICAgICAgICAgICBpZiAoaXNUcnVlT2JqZWN0
KQorICAgICAgICAgICAgICAgICAgICBzY29wZVJlZiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAg
ICAgICBlbHNlIAorICAgICAgICAgICAgICAgICAgICBzY29wZVJlZiA9IG5ldyBXZWJJbnNwZWN0
b3IuU2NvcGVSZWYoaSwgdW5kZWZpbmVkLCB0aGlzLl9yZW1vdGVPYmplY3Qub2JqZWN0SWQpOwor
CisgICAgICAgICAgICAgICAgdmFyIHJlbW90ZU9iamVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QuZnJvbVNjb3BlUGF5bG9hZChzY29wZS5vYmplY3QsIHNjb3BlUmVmKTsKICAgICAgICAg
ICAgICAgICBpZiAoaXNUcnVlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBwcm9w
ZXJ0eSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5mcm9tU2NvcGVWYWx1ZSh0
aXRsZSwgcmVtb3RlT2JqZWN0KTsKICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkucGFyZW50
T2JqZWN0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZW1vdGVPYmplY3QuanMKaW5kZXggMzVjYmYxYjZiZmFlMzZlMDYyYTUxMWU0MGQ3MDMzYWJi
MjIyOWZjNC4uZjg0NzdkNjdkMTA2MGI3YmE0NWIyMGI2NDgwYzU5MzA2N2VlMmI4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
QEAgLTM2LDggKzM2LDkgQEAKICAqIEBwYXJhbSB7Kn0gdmFsdWUKICAqIEBwYXJhbSB7c3RyaW5n
PX0gZGVzY3JpcHRpb24KICAqIEBwYXJhbSB7UnVudGltZUFnZW50Lk9iamVjdFByZXZpZXc9fSBw
cmV2aWV3CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY29wZVJlZj19IHNjb3BlUmVmCiAgKi8K
LVdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3RJZCwgdHlwZSwgc3Vi
dHlwZSwgdmFsdWUsIGRlc2NyaXB0aW9uLCBwcmV2aWV3KQorV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBlLCBzdWJ0eXBlLCB2YWx1ZSwgZGVzY3JpcHRp
b24sIHByZXZpZXcsIHNjb3BlUmVmKQogewogICAgIHRoaXMuX3R5cGUgPSB0eXBlOwogICAgIHRo
aXMuX3N1YnR5cGUgPSBzdWJ0eXBlOwpAQCAtNTQsNiArNTUsNyBAQCBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5cGUsIHN1YnR5cGUsIHZhbHVlLCBkZXNj
cmlwdGlvbgogICAgICAgICB0aGlzLl9oYXNDaGlsZHJlbiA9IGZhbHNlOwogICAgICAgICB0aGlz
LnZhbHVlID0gdmFsdWU7CiAgICAgfQorICAgIHRoaXMuX3Njb3BlUmVmID0gc2NvcGVSZWY7CiB9
CiAKIC8qKgpAQCAtMTEwLDYgKzExMiwxNiBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZy
b21QYXlsb2FkID0gZnVuY3Rpb24ocGF5bG9hZCkKIH0KIAogLyoqCisgKiBAcGFyYW0ge1J1bnRp
bWVBZ2VudC5SZW1vdGVPYmplY3R9IHBheWxvYWQKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNj
b3BlUmVmPX0gc2NvcGVSZWYKKyAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3R9
CisgKi8KK1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVNjb3BlUGF5bG9hZCA9IGZ1bmN0
aW9uKHBheWxvYWQsIHNjb3BlUmVmKQoreworICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdChwYXlsb2FkLm9iamVjdElkLCBwYXlsb2FkLnR5cGUsIHBheWxvYWQuc3VidHlw
ZSwgcGF5bG9hZC52YWx1ZSwgcGF5bG9hZC5kZXNjcmlwdGlvbiwgcGF5bG9hZC5wcmV2aWV3LCBz
Y29wZVJlZik7Cit9CisKKy8qKgogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
fSByZW1vdGVPYmplY3QKICAqIEByZXR1cm4ge3N0cmluZ30KICAqLwpAQCAtMjQ5LDE4ICsyNjEs
MzQgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgY2FsbGJhY2soZXJyb3IgfHwgcmVzdWx0LmRlc2NyaXB0aW9uKTsKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlm
ICh0aGlzLl9zY29wZVJlZikKKyAgICAgICAgICAgICAgICB0aGlzLl9zZXREZWNsYXJhdGl2ZVZh
cmlhYmxlVmFsdWUocmVzdWx0LCBuYW1lLCBjYWxsYmFjayk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGhpcy5fc2V0T2JqZWN0UHJvcGVydHlWYWx1ZShyZXN1bHQsIG5hbWUs
IGNhbGxiYWNrKTsKIAotICAgICAgICAgICAgdmFyIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9
ICJmdW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBiOyB9IjsKLQotICAgICAgICAgICAgLy8gU3Bl
Y2lhbCBjYXNlIGZvciBOYU4sIEluZmluaXR5IGFuZCAtSW5maW5pdHkKLSAgICAgICAgICAgIGlm
IChyZXN1bHQudHlwZSA9PT0gIm51bWJlciIgJiYgdHlwZW9mIHJlc3VsdC52YWx1ZSAhPT0gIm51
bWJlciIpCi0gICAgICAgICAgICAgICAgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0aW9uID0gImZ1bmN0
aW9uKGEpIHsgdGhpc1thXSA9ICIgKyByZXN1bHQuZGVzY3JpcHRpb24gKyAiOyB9IjsKLQotICAg
ICAgICAgICAgZGVsZXRlIHJlc3VsdC5kZXNjcmlwdGlvbjsgLy8gT3B0aW1pemUgb24gdHJhZmZp
Yy4KLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJ
ZCwgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0aW9uLCBbeyB2YWx1ZTpuYW1lIH0sIHJlc3VsdF0sIHRy
dWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwcm9wZXJ0eVNldENhbGxiYWNrLmJpbmQodGhpcykp
OwogICAgICAgICAgICAgaWYgKHJlc3VsdC5fb2JqZWN0SWQpCiAgICAgICAgICAgICAgICAgUnVu
dGltZUFnZW50LnJlbGVhc2VPYmplY3QocmVzdWx0Ll9vYmplY3RJZCk7CiAgICAgICAgIH0KKyAg
ICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdH0gcmVzdWx0CisgICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKKyAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKHN0cmluZz0pfSBjYWxsYmFjaworICAgICAqLworICAgIF9zZXRPYmplY3RQcm9w
ZXJ0eVZhbHVlOiBmdW5jdGlvbihyZXN1bHQsIG5hbWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAg
ICAgLy8gTm90ZSB0aGF0IGl0IGlzIG5vdCB0aGF0IHNpbXBsZSB3aXRoIGFjY2Vzc29yIHByb3Bl
cnRpZXMuIFRoZSBwcm90byBvYmplY3QgbWF5IGNvbnRhaW4gdGhlIHByb3BlcnR5LAorICAgICAg
ICAvLyBob3dldmVyIG5vdCB0aGUgcHJvdG8gb2JqZWN0IG11c3QgYmUgJ3RoaXMnLCBidXQgdGhl
IG1haW4gb2JqZWN0LiAKKyAgICAgICAgdmFyIHNldFByb3BlcnR5VmFsdWVGdW5jdGlvbiA9ICJm
dW5jdGlvbihhLCBiKSB7IHRoaXNbYV0gPSBiOyB9IjsKKworICAgICAgICAvLyBTcGVjaWFsIGNh
c2UgZm9yIE5hTiwgSW5maW5pdHkgYW5kIC1JbmZpbml0eQorICAgICAgICBpZiAocmVzdWx0LnR5
cGUgPT09ICJudW1iZXIiICYmIHR5cGVvZiByZXN1bHQudmFsdWUgIT09ICJudW1iZXIiKQorICAg
ICAgICAgICAgc2V0UHJvcGVydHlWYWx1ZUZ1bmN0aW9uID0gImZ1bmN0aW9uKGEpIHsgdGhpc1th
XSA9ICIgKyByZXN1bHQuZGVzY3JpcHRpb24gKyAiOyB9IjsKKworICAgICAgICBkZWxldGUgcmVz
dWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6ZSBvbiB0cmFmZmljLgorICAgICAgICBSdW50aW1l
QWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2JqZWN0SWQsIHNldFByb3BlcnR5VmFsdWVGdW5j
dGlvbiwgW3sgdmFsdWU6bmFtZSB9LCByZXN1bHRdLCB0cnVlLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMpKTsKIAogICAgICAgICAvKioKICAgICAg
ICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9yCkBAIC0yNzgsNiArMzA2LDQyIEBA
IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZW1vdGVPYmplY3R9IHJlc3VsdAorICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmc9
KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBfc2V0RGVjbGFyYXRpdmVWYXJpYWJsZVZhbHVlOiBm
dW5jdGlvbihyZXN1bHQsIG5hbWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIG5ld1Zh
bHVlOworICAgICAgICAKKyAgICAgICAgc3dpdGNoIChyZXN1bHQudHlwZSkgeworICAgICAgICAg
ICAgY2FzZSAidW5kZWZpbmVkIjoKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHt9OworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAg
ICAgIGNhc2UgImZ1bmN0aW9uIjoKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHsgb2JqZWN0
SWQ6IHJlc3VsdC5vYmplY3RJZCB9OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHsgdmFsdWU6IHJlc3VsdC52
YWx1ZSB9OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBEZWJ1Z2dlckFnZW50LnNldFZh
cmlhYmxlVmFsdWUodGhpcy5fc2NvcGVSZWYubnVtYmVyLCBuYW1lLCBuZXdWYWx1ZSwgdGhpcy5f
c2NvcGVSZWYuY2FsbEZyYW1lSWQsIHRoaXMuX3Njb3BlUmVmLmZ1bmN0aW9uSWQsIHNldFZhcmlh
YmxlVmFsdWVDYWxsYmFjay5iaW5kKHRoaXMpKTsKKworICAgICAgICAvKioKKyAgICAgICAgICog
QHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9yCisgICAgICAgICAqLworICAgICAgICBmdW5j
dGlvbiBzZXRWYXJpYWJsZVZhbHVlQ2FsbGJhY2soZXJyb3IpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjaygp
OworICAgICAgICB9CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
P0RPTUFnZW50Lk5vZGVJZCl9IGNhbGxiYWNrCiAgICAgICovCiAgICAgcHVzaE5vZGVUb0Zyb250
ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykKQEAgLTM2NCw2ICs0MjgsMjAgQEAgV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiB9CiAKIC8qKgorICogRWl0aGVyIGNhbGxGcmFt
ZUlkIG9yIGZ1bmN0aW9uSWQgKGV4YWN0bHkgb25lKSBtdXN0IGJlIGRlZmluZWQuCisgKiBAY29u
c3RydWN0b3IKKyAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIKKyAqIEBwYXJhbSB7c3RyaW5nPX0g
Y2FsbEZyYW1lSWQKKyAqIEBwYXJhbSB7c3RyaW5nPX0gZnVuY3Rpb25JZAorICovCitXZWJJbnNw
ZWN0b3IuU2NvcGVSZWYgPSBmdW5jdGlvbihudW1iZXIsIGNhbGxGcmFtZUlkLCBmdW5jdGlvbklk
KQoreworICAgIHRoaXMubnVtYmVyID0gbnVtYmVyOworICAgIHRoaXMuY2FsbEZyYW1lSWQgPSBj
YWxsRnJhbWVJZDsKKyAgICB0aGlzLmZ1bmN0aW9uSWQgPSBmdW5jdGlvbklkOworfQorCisvKioK
ICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NvcGVDaGFpblNpZGViYXJQYW5lLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanMKaW5kZXgg
MTIwOTUyNmI3ZWJiM2NlZThjODI0NGQzMzk2ZjM0NmJiZGUxZWYwYy4uYTQ4YTEwN2RlYTJjN2Yy
OTE5NzQ5YzA5N2ZmMThmYWU0ZWI3NDIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY29wZUNoYWluU2lkZWJhclBhbmUuanMKQEAgLTY5
LDcgKzY5LDggQEAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5TaWRlYmFyUGFuZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICB2YXIgc3VidGl0bGUgPSBzY29wZS5vYmplY3QuZGVzY3JpcHRpb247
CiAgICAgICAgICAgICB2YXIgZW1wdHlQbGFjZWhvbGRlciA9IG51bGw7CiAgICAgICAgICAgICB2
YXIgZXh0cmFQcm9wZXJ0aWVzID0gbnVsbDsKLQorICAgICAgICAgICAgdmFyIGRlY2xhcmF0aXZl
U2NvcGU7CisgICAgICAgICAgICAKICAgICAgICAgICAgIHN3aXRjaCAoc2NvcGUudHlwZSkgewog
ICAgICAgICAgICAgICAgIGNhc2UgImxvY2FsIjoKICAgICAgICAgICAgICAgICAgICAgZm91bmRM
b2NhbFNjb3BlID0gdHJ1ZTsKQEAgLTg3LDI4ICs4OCw0MCBAQCBXZWJJbnNwZWN0b3IuU2NvcGVD
aGFpblNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBleHRyYVByb3BlcnRpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3Bl
cnR5KCI8ZXhjZXB0aW9uPiIsIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQo
ZXhjZXB0aW9uT2JqZWN0KSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aXZlU2NvcGUgPSB0cnVl
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICJjbG9z
dXJlIjoKICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNsb3N1cmUiKTsKICAgICAgICAgICAgICAgICAgICAgZW1wdHlQbGFjZWhvbGRlciA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiTm8gVmFyaWFibGVzIik7CiAgICAgICAgICAgICAgICAgICAgIHN1
YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IHRy
dWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgImNh
dGNoIjoKICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNhdGNoIik7CiAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAg
ICAgICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgIndpdGgiOgogICAgICAgICAgICAgICAgICAg
ICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiV2l0aCBCbG9jayIpOworICAgICAgICAg
ICAgICAgICAgICBkZWNsYXJhdGl2ZVNjb3BlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgImdsb2JhbCI6CiAgICAgICAgICAgICAgICAg
ICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHbG9iYWwiKTsKKyAgICAgICAgICAg
ICAgICAgICAgZGVjbGFyYXRpdmVTY29wZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKCF0aXRsZSB8fCB0aXRsZSA9
PT0gc3VidGl0bGUpCiAgICAgICAgICAgICAgICAgc3VidGl0bGUgPSBudWxsOworICAgICAgICAg
ICAgCisgICAgICAgICAgICB2YXIgc2NvcGVSZWY7CisgICAgICAgICAgICBpZiAoZGVjbGFyYXRp
dmVTY29wZSkKKyAgICAgICAgICAgICAgICBzY29wZVJlZiA9IG5ldyBXZWJJbnNwZWN0b3IuU2Nv
cGVSZWYoaSwgY2FsbEZyYW1lLmlkLCB1bmRlZmluZWQpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHNjb3BlUmVmID0gdW5kZWZpbmVkOworICAgICAgICAgICAgCiAKLSAgICAg
ICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2Vj
dGlvbihXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHNjb3BlLm9iamVjdCks
IHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhvbGRlciwgdHJ1ZSwgZXh0cmFQcm9wZXJ0aWVz
LCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHZh
ciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21TY29wZVBheWxvYWQoc2NvcGUub2JqZWN0LCBzY29w
ZVJlZiksIHRpdGxlLCBzdWJ0aXRsZSwgZW1wdHlQbGFjZWhvbGRlciwgdHJ1ZSwgZXh0cmFQcm9w
ZXJ0aWVzLCBXZWJJbnNwZWN0b3IuU2NvcGVWYXJpYWJsZVRyZWVFbGVtZW50KTsKICAgICAgICAg
ICAgIHNlY3Rpb24uZWRpdEluU2VsZWN0ZWRDYWxsRnJhbWVXaGVuUGF1c2VkID0gdHJ1ZTsKICAg
ICAgICAgICAgIHNlY3Rpb24ucGFuZSA9IHRoaXM7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZmQ0ZDdiMDU0NTczODY4
OGIwZGQ1NmJlYTViMzEwNGI4YWUxMzk3Li5mZGIxZDYxOTVjZTA4ZTA4NzFiYzE5NmEzODdiM2Zl
N2ZhZTY3NDM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDMtMjAgIFBldGVyIFJ5Ymlu
ICA8cHJ5YmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0
IGNoYW5naW5nIGxvY2FsIHZhcmlhYmxlcyBpbiBmcm9udGVuZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDcwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12YXJpYWJsZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdl
LXZhcmlhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTMtMDMtMjIgIFl1cnkgU2VtaWto
YXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRl
IHRlc3QgZXhwZWN0YXRpb25zIGZvciBhIGJ1bmNoIG9mIHNvZnR3YXJlY29tcG9zaXRpbmcgdGVz
dHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
Y2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1
M2FmNzcwOTM1MGUyMTNiZDdhOWZmOTY4OTBiMzQyOTlkNTMwNmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IG1vZGlmeWluZyBsb2Nh
bCB2YXJpYWJsZXMgd29ya3MgZmluZS4KKworRGVidWdnZXIgd2FzIGVuYWJsZWQuCitTZXQgdGlt
ZXIgZm9yIHRlc3QgZnVuY3Rpb24uCitTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KK0V2YWx1YXRl
ZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWU6IDMxMAorU2V0IHByb3BlcnR5IHZhbHVlIGVy
cm9yOiBGYWlsZWQgdG8gY2hhbmdlIHZhcmlhYmxlIHZhbHVlOiBUeXBlRXJyb3I6IFZhcmlhYmxl
IHZhbHVlIG11dGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhl
IGNhbGxpbmcgZnJhbWUgKGFmdGVyIHZhbHVlIG1vZGlmaWNhdGlvbik6IDMxMAorU2NyaXB0IGV4
ZWN1dGlvbiByZXN1bWVkLgorRGVidWdnZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlh
YmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGYwNDhiZTE5YTE4YjJlNzFjOTc1MTAxMzJjY2M5NGY0Y2U2
OTYwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHNsYXZl
KHgpCit7CisgICAgdmFyIHkgPSAyMDsKKyAgICBkZWJ1Z2dlcjsKK30KKworZnVuY3Rpb24gdGVz
dEZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgbG9jYWxPYmplY3QgPSB7IGE6IDMxMCB9OworICAgIHNs
YXZlKDQwMDApOworfQorCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBJbnNwZWN0b3JU
ZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1
c2VkKHN0ZXAyKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMihjYWxsRnJhbWVzKQorICAg
IHsKKyAgICAgICAgdmFyIHBhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJh
clBhbmVzLmNhbGxzdGFjazsKKyAgICAgICAgcGFuZS5fcGxhY2FyZFNlbGVjdGVkKHBhbmUucGxh
Y2FyZHNbMV0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNo
ZXMoc3RlcDMpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7CisgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImxvY2FsT2JqZWN0LmEiLCBzdGVwNCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDQocmVzdWx0KQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJh
bWU6ICIgKyByZXN1bHQpOworCisgICAgICAgIHZhciBwYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnNpZGViYXJQYW5lcy5zY29wZWNoYWluOworICAgICAgICB2YXIgbG9jYWxzU2Vj
dGlvbiA9IHBhbmUuX3NlY3Rpb25zWzBdOworICAgICAgICBsb2NhbHNTZWN0aW9uLm9iamVjdC5z
ZXRQcm9wZXJ0eVZhbHVlKCJsb2NhbE9iamVjdCIsICIoeyBhOiAtMjkwfSkiLCBzdGVwNSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDUoZXJyb3IpCisgICAgeworICAgICAgICBpZiAoZXJy
b3IpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IHByb3BlcnR5IHZh
bHVlIGVycm9yOiAiICsgZXJyb3IpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
bkNvbnNvbGUoImxvY2FsT2JqZWN0LmEiLCBzdGVwNik7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDYocmVzdWx0KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2
YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWUgKGFmdGVyIHZhbHVlIG1vZGlmaWNh
dGlvbik6ICIgKyByZXN1bHQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdn
ZXJUZXN0KCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyB0aGF0IG1vZGlmeWluZyBsb2NhbCB2YXJpYWJsZXMg
d29ya3MgZmluZS4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5n
ZS12YXJpYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jZDIzYTViMzE0OTRkNWI0M2QwOTViMDk1MWNlMmE2NDc0NDg4ZDhlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12YXJpYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorVGVzdHMgdGhhdCBtb2RpZnlpbmcgbG9jYWwgdmFyaWFibGVzIHdvcmtzIGZpbmUuCisK
K0RlYnVnZ2VyIHdhcyBlbmFibGVkLgorU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgorU2Ny
aXB0IGV4ZWN1dGlvbiBwYXVzZWQuCitFdmFsdWF0ZWQgc2NyaXB0IG9uIHRoZSBjYWxsaW5nIGZy
YW1lOiAzMTAKK0V2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWUgKGFmdGVyIHZh
bHVlIG1vZGlmaWNhdGlvbik6IC0yOTAKK1NjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KK0RlYnVn
Z2VyIHdhcyBkaXNhYmxlZC4KKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>