<?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>100021</bug_id>
          
          <creation_ts>2012-10-22 13:35:53 -0700</creation_ts>
          <short_desc>Web Inspector: show internal properties in inspector frontend</short_desc>
          <delta_ts>2012-11-16 01:07:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</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>747833</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-22 13:35:53 -0700</bug_when>
    <thetext>Internal properties (such as [[PrimitiveValue]] or [[BoundFunction]]) are supported in protocol and backend.
Now they should become visible in frontend UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747853</commentid>
    <comment_count>1</comment_count>
      <attachid>169977</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-22 13:55:58 -0700</bug_when>
    <thetext>Created attachment 169977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748403</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-23 02:20:09 -0700</bug_when>
    <thetext>Screenshot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748541</commentid>
    <comment_count>3</comment_count>
      <attachid>170135</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-23 05:46:47 -0700</bug_when>
    <thetext>Created attachment 170135
UI preview</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748577</commentid>
    <comment_count>4</comment_count>
      <attachid>170146</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-23 06:36:21 -0700</bug_when>
    <thetext>Created attachment 170146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748603</commentid>
    <comment_count>5</comment_count>
      <attachid>170153</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-23 07:08:04 -0700</bug_when>
    <thetext>Created attachment 170153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748608</commentid>
    <comment_count>6</comment_count>
      <attachid>170154</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-23 07:11:41 -0700</bug_when>
    <thetext>Created attachment 170154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749468</commentid>
    <comment_count>7</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-24 01:33:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=170135) [details]
&gt; UI preview

We show uncaught exception object as a variable with name &lt;exception&gt;. Could you adhere to the same style for the internal properties you are adding?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749471</commentid>
    <comment_count>8</comment_count>
      <attachid>170154</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-24 01:37:14 -0700</bug_when>
    <thetext>Comment on attachment 170154
Patch

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

&gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:455
&gt; +                treeElement.appendChild(new WebInspector.FunctionScopeMainTreeElement(value));

Please add a test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749646</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-24 07:26:00 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #3)
&gt; &gt; Created an attachment (id=170135) [details] [details]
&gt; &gt; UI preview
&gt; 
&gt; We show uncaught exception object as a variable with name &lt;exception&gt;. Could you adhere to the same style for the internal properties you are adding?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749649</commentid>
    <comment_count>10</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-24 07:28:51 -0700</bug_when>
    <thetext>[I&apos;m sorry for the empty comment above].

&gt; &gt; &gt; UI preview
&gt; &gt; We show uncaught exception object as a variable with name &lt;exception&gt;. Could you adhere to the same style for the internal properties you are adding?

This patch doesn&apos;t make property names. They are defined in V8 according to their names in specification.

However we could manually restyle them in front-end using RegExp technique, but I&apos;m not sure it&apos;s what you&apos;d like to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765676</commentid>
    <comment_count>11</comment_count>
      <attachid>173908</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-11-13 09:10:08 -0800</bug_when>
    <thetext>Created attachment 173908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765687</commentid>
    <comment_count>12</comment_count>
      <attachid>173908</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-11-13 09:27:10 -0800</bug_when>
    <thetext>Comment on attachment 173908
Patch

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

&gt; LayoutTests/http/tests/inspector/elements-test.js:268
&gt; +            return &quot;&apos;&quot; + node.innerHTML + &quot;&apos;&quot;;

textContent

&gt; LayoutTests/http/tests/inspector/elements-test.js:278
&gt; +            dumpTreeElement(treeElement.children[i], prefix + &quot;    &quot;);

remove brackets for one line for block</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765742</commentid>
    <comment_count>13</comment_count>
      <attachid>173918</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-11-13 10:09:47 -0800</bug_when>
    <thetext>Created attachment 173918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765745</commentid>
    <comment_count>14</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-11-13 10:10:30 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 170154 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170154&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:455
&gt; &gt; +                treeElement.appendChild(new WebInspector.FunctionScopeMainTreeElement(value));
&gt; 
&gt; Please add a test for this.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765746</commentid>
    <comment_count>15</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-11-13 10:10:56 -0800</bug_when>
    <thetext>&gt; &gt; LayoutTests/http/tests/inspector/elements-test.js:268
&gt; &gt; +            return &quot;&apos;&quot; + node.innerHTML + &quot;&apos;&quot;;
&gt; textContent

Done

&gt; &gt; LayoutTests/http/tests/inspector/elements-test.js:278
&gt; &gt; +            dumpTreeElement(treeElement.children[i], prefix + &quot;    &quot;);
&gt; remove brackets for one line for block

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766260</commentid>
    <comment_count>16</comment_count>
      <attachid>173918</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 18:02:56 -0800</bug_when>
    <thetext>Comment on attachment 173918
Patch

Attachment 173918 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14832130

New failing tests:
inspector/debugger/properties-special.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766538</commentid>
    <comment_count>17</comment_count>
      <attachid>173918</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-14 00:09:52 -0800</bug_when>
    <thetext>Comment on attachment 173918
Patch

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

&gt; LayoutTests/inspector/debugger/properties-special.html:61
&gt; +    function nodesExpanded() {

style nit: { should go on the next line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768134</commentid>
    <comment_count>18</comment_count>
      <attachid>174458</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-11-15 08:52:50 -0800</bug_when>
    <thetext>Created attachment 174458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768135</commentid>
    <comment_count>19</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-11-15 08:53:26 -0800</bug_when>
    <thetext>&gt; &gt; LayoutTests/inspector/debugger/properties-special.html:61
&gt; &gt; +    function nodesExpanded() {
&gt; style nit: { should go on the next line.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769016</commentid>
    <comment_count>20</comment_count>
      <attachid>174458</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 01:07:06 -0800</bug_when>
    <thetext>Comment on attachment 174458
Patch

Clearing flags on attachment: 174458

Committed r134914: &lt;http://trac.webkit.org/changeset/134914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769017</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 01:07:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169977</attachid>
            <date>2012-10-22 13:55:58 -0700</date>
            <delta_ts>2012-10-23 06:36:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100021-20121023005435.patch</filename>
            <type>text/plain</type>
            <size>5610</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFhNTQ4OTA3NzIyYjU2
MTViYjY2YTY3ZDg5YTQ5MmY2NTc1YTQ0ZC4uYTY2MjFjOGMzYzk0MTg5NTQyZWVlNGE5MmQxMjhi
ZmJmNGIxODQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEwLTIyICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2hvdyBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGZpZWxkICdpbnRlcm5h
bFByb3BlcnRpZXMnIGlzIHBhcnNlZCBhbmQgcGFzc2VkIHZpYSBhbGwgY2FsbGJhY2tzIHRvIE9i
amVjdCBQcm9wZXJ0aWVzIHNlY3Rpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAoLmNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldCBlbHNlKToKKwogMjAxMi0xMC0y
MiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBUcmVhdCBkeW5hbWljIGFub255bW91cyBzY3JpcHRzIGFzIG90aGVyIGFub255
bW91cyBhbmQgZml4IGFub255bW91cyBzY3JpcHQgZWRpdGluZyBhbmQgYnJlYWtwb2ludHMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmpl
Y3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBiNjRhMDBiZTljMTNkMzU2YzE0MTkwOWEwYWY2
MmMzMjVjNDg1NmNkLi5iNjI5MzY5NGU4ZTViYmY3MzVlZjYwNTE0NDEzODJhODYwMGYwZGI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
T2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTQyMCw3ICs0MjAsMTEgQEAgV2ViSW5zcGVj
dG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucG9wdWxhdGUgPSBmdW5jdGlvbih0cmVlRWxl
bWVudCwgdmFsdWUpIHsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGNh
bGxiYWNrKHByb3BlcnRpZXMpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pn0gcHJvcGVydGllcworICAgICAqIEBwYXJhbSB7
QXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT49fSBpbnRlcm5hbFByb3Bl
cnRpZXMKKyAgICAgKi8KKyAgICBmdW5jdGlvbiBjYWxsYmFjayhwcm9wZXJ0aWVzLCBpbnRlcm5h
bFByb3BlcnRpZXMpCiAgICAgewogICAgICAgICB0cmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigp
OwogICAgICAgICBpZiAoIXByb3BlcnRpZXMpCkBAIC00MzUsNiArNDM5LDEyIEBAIFdlYkluc3Bl
Y3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlID0gZnVuY3Rpb24odHJlZUVs
ZW1lbnQsIHZhbHVlKSB7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09ICJm
dW5jdGlvbiIpCiAgICAgICAgICAgICB0cmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV2ViSW5z
cGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQodmFsdWUpKTsKKyAgICAgICAgaWYg
KGludGVybmFsUHJvcGVydGllcykgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPGlu
dGVybmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGludGVybmFs
UHJvcGVydGllc1tpXS5wYXJlbnRPYmplY3QgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB0cmVl
RWxlbWVudC5hcHBlbmRDaGlsZChuZXcgdHJlZUVsZW1lbnQudHJlZU91dGxpbmUuc2VjdGlvbi50
cmVlRWxlbWVudENvbnN0cnVjdG9yKGludGVybmFsUHJvcGVydGllc1tpXSkpOworICAgICAgICAg
ICAgfSAKKyAgICAgICAgfQogICAgIH0KIAogICAgIHZhbHVlLmdldE93blByb3BlcnRpZXMoY2Fs
bGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90
ZU9iamVjdC5qcwppbmRleCAzMjRmNGVkYjVhMGE5OWJkODBhM2E2MjVkZjk5Njk4NDQ1NDBhOTkx
Li45ZGU1MjRiMzQyNjY4ZTA2OTUxYzcyNjI2NjM0NGRhMTcwMjY1ZmUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtOTks
NyArOTksNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlID0gZnVuY3Rp
b24obm9kZSwgb2JqZWN0R3JvdXAsIGNhbGxiYWNrKQogfQogCiAvKioKLSAqIEBwYXJhbSB7UnVu
dGltZUFnZW50LlJlbW90ZU9iamVjdH0gcGF5bG9hZAorICogQHBhcmFtIHtSdW50aW1lQWdlbnQu
UmVtb3RlT2JqZWN0PX0gcGF5bG9hZAogICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdH0KICAqLwogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZCA9IGZ1bmN0
aW9uKHBheWxvYWQpCkBAIC0xNjMsNyArMTYzLDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7ZnVuY3Rp
b24oQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT4pfSBjYWxsYmFjawor
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQ
cm9wZXJ0eT4sIEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+PSl9IGNh
bGxiYWNrCiAgICAgICovCiAgICAgZ2V0T3duUHJvcGVydGllczogZnVuY3Rpb24oY2FsbGJhY2sp
CiAgICAgewpAQCAtMTcxLDcgKzE3MSw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFy
cmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+KX0gY2FsbGJhY2sKKyAgICAg
KiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVy
dHk+LCBBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pj0pfSBjYWxsYmFj
awogICAgICAqLwogICAgIGdldEFsbFByb3BlcnRpZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAg
IHsKQEAgLTE4MCw3ICsxODAsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlw
ZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3duUHJvcGVydGllcwot
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3Q+
KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0UHJvcGVydHk+LCBBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFBy
b3BlcnR5Pj0pfSBjYWxsYmFjawogICAgICAqLwogICAgIF9nZXRQcm9wZXJ0aWVzOiBmdW5jdGlv
bihvd25Qcm9wZXJ0aWVzLCBjYWxsYmFjaykKICAgICB7CkBAIC0xOTEsOSArMTkxLDEwIEBAIFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogCiAgICAgICAgIC8qKgogICAg
ICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKLSAgICAgICAgICogQHBhcmFt
IHtBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pn0gcHJvcGVydGllcwor
ICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxSdW50aW1lQWdlbnQuUHJvcGVydHlEZXNjcmlwdG9y
Pn0gcHJvcGVydGllcworICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxSdW50aW1lQWdlbnQuSW50
ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+PX0gaW50ZXJuYWxQcm9wZXJ0aWVzCiAgICAgICAgICAq
LwotICAgICAgICBmdW5jdGlvbiByZW1vdGVPYmplY3RCaW5kZXIoZXJyb3IsIHByb3BlcnRpZXMp
CisgICAgICAgIGZ1bmN0aW9uIHJlbW90ZU9iamVjdEJpbmRlcihlcnJvciwgcHJvcGVydGllcywg
aW50ZXJuYWxQcm9wZXJ0aWVzKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoZXJyb3IpIHsK
ICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKQEAgLTIxMCw3ICsyMTEsMTUgQEAgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0UHJvcGVydHkocHJvcGVydHkubmFtZSwgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5mcm9tUGF5bG9hZChwcm9wZXJ0eS52YWx1ZSksIHByb3BlcnR5KSk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICAgICAgdmFyIGludGVybmFs
UHJvcGVydGllc1Jlc3VsdDsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbFByb3BlcnRpZXMpIHsK
KyAgICAgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNSZXN1bHQgPSBbXTsKKyAgICAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVybmFsUHJvcGVydGllcy5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBpbnRlcm5hbFByb3BlcnRp
ZXNbaV07CisgICAgICAgICAgICAgICAgICAgIGludGVybmFsUHJvcGVydGllc1Jlc3VsdC5wdXNo
KG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkocHJvcGVydHkubmFtZSwgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChwcm9wZXJ0eS52YWx1ZSkpKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayhyZXN1
bHQsIGludGVybmFsUHJvcGVydGllc1Jlc3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgUnVudGlt
ZUFnZW50LmdldFByb3BlcnRpZXModGhpcy5fb2JqZWN0SWQsIG93blByb3BlcnRpZXMsIHJlbW90
ZU9iamVjdEJpbmRlcik7CiAgICAgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>170135</attachid>
            <date>2012-10-23 05:46:47 -0700</date>
            <delta_ts>2012-10-23 05:46:47 -0700</delta_ts>
            <desc>UI preview</desc>
            <filename>internal_properties_ui.png</filename>
            <type>image/png</type>
            <size>24876</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAT4AAAGSCAIAAAD1hDryAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL
EwAACxMBAJqcGAAAAAd0SU1FB9wKFwwsKsXGWm8AAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo
IEdJTVBXgQ4XAAAgAElEQVR42uydd1gUxxvH5+6Ag6P3evQuKiIiIhYQjTFGVDDW+IsGjSKxR40l
MVFjYuwFexJT7FgjqIAg1S4SROm9d4SDA+7u98eYzXmN4zjgDt/P4+OzzM7OzM7ud+eduXlnSNeu
XUMAAPQiiYmJI4fQxYr5vIjZWOY60BEhdPZa7OVzvxCnyFCPACCPKEAVAIC8MH/h4sbGN9ZWll8s
WgjSBQC5YdOGr7S1te7HJXz7/Q4wmAFAbnCwtzPQ158RMM3Y2BhaXQDoS6bOWc4feO3sQYGRJ0+d
AX1dAJAJrp09yKNeYbpFCP197RJxDAYzAPS9esXRLQ8gXQCQFfV2qtvkB4+qa2pycnL/+OscGMwA
IHNtrzBOnv6tprZWXV1t0EAXkC4AyA2/nAwFgxkA+gxNNWr3Y4J0AaC3cbEzSHxe1Gm0xOdFLnYG
ws6CwQwAfcDIIfS0rMqGJqaI9la0i4KCv78/1CMA9D5iCu/e/U/BYAaA/gNIFwBAugAAgHQBAADp
AkB/Q2HRokVQCwAgs9AoQqS7e+c3UDsAILN8s3kjGMwAAH1dAABAugAAdIntP+wC6QIAtLoAAIB0
AQAA6QIASBcAAJAuAACSAatkAEAP8qapqa62rqGhsZnBQAip0miamhraOtrqamogXQCQUcrKK8rK
yhkMBhHS0NjY0NhYXVNrbGxkbGQI0gUAWdRtfn4hi9XBf4rBYOTnFyKEuqNe6OsCQI/YyWVl5Vi3
evrv6BP/yWJ1lJWVv2lqkiz9zRvXgXQBQPrU1dZhO1lP33C41xgnF1cc7uTiOtxrDFYvg8Goq60D
gxkAZIiGhkZ8UF1VkZuTaW1jj/+0trHPzcmsrqrgiQbSBQCZoJlraOpVWgoWLUIoNycT/8kfDfq6
APBeAK0uAEgfVRqtobGR6N9iO5loe4mGV5VGA+kCgAyhqamBpaunb4h1S8jV2sa+qqIMd3c1NTVA
ugAgQ2jraFfX1DIYjOqqiodJ94lxqVdpKYRuaTSato429HUBQIZQV1MzNjaiUBQQQoRuMfhPCkXB
2NioO9MhodUFgB4Bz5TimQiJodFoMBESAGRavWpqquB+AAByaTl3X6XQ1wWA/gNIFwBAugAAgHQB
AADpAgBIFwCAvgY2LgEAeUXhs0XLoRYAQGYxNxT8s7DCX3/99T7Xy5UrV6ZOndpDib969crJyQkS
7zeJ9wmb1i4VLF0Oh/Oef9V6tAYg8X6WuAwZzCBdAADpAkAPUllZaWBgAPXwVrpQBWAZykXi5eXl
u3fvdnNzmzVrFplMBoNZplvdhIQEMWN6e3vDN0gYN2/evHHjBkJo7dq1Dg4O0k2cwWD88MMPCKGN
GzfSurHSkmhaW1tPnz7d3t7O4XBE6xYMZpmARCIJ02RCQgJxKiEhQX4/tAwGIzo6+vnz50VFRbq6
uq6urlOmTJGuBojKkXotYd3m5+cjhH744YeeU+/FixcrKyuNjY1nzZoFosXI+geMzWaz2ezq6mr2
uxCn8LFA7t27J+yA580WTVxc3Pbt2//44w8Oh3P8+PHm5maOeHSaeEFBwffff3/9+vWioiKEUHV1
dVRU1Ndff11QUJCYmPjzzz93J3GeyF2N32mc5ubmHTt2YN0ihPLz83fs2CFO5XSpJBwOJz4+/unT
p1QqNSgoiEwmSzdx2Ufgu7154zqZbnWJoqenpzs5Oeno6PCf4jnmuVxZWbmlpYX/oKujI69fv8bH
+DWaN2/eqFGjunl31dXVe/bsYTAYJBLJ3NxcRUWlpaWlsLCwubl5z549dnZ2RKYSN4n4i1BTU4ND
iouLSSQSQohOp3ezecTtbUFBAXdgQUGBxG3v5s2bm/g24LG1tZ0yZcrVq1cRQnPnzmWz2Rs3bkQI
+fv7Dx8+vNfeQy0tLWwD6unpfffdd3PmzJF6+vX19f3KYObWJI96xZEu9yn+g+68tSdOnIiLi1u0
aFF3Bjx//fVXBoNhYWExZ84cR0dHwvg/deoUg8FITU3tZqeOw+FcunSpsLCQCLlw4QL+TKxatar7
j2bBggUcDic/P//MmTMIoTFjxowdO5ZEIklWvfy61dTUnDNnzpEjR1gs1qhRo+zt7ffv34/XeTp/
/jxCqDfVi6X15MmTTz75ROrSldBglnFTgTggkUivXr2qqanht4tE2Egi1Cu+fSVw6PL169dr1qwJ
CwuTzHhLTEzMyMjQ09Nbv369jY0N8188PT2DgoJw2yi6bJ2WnEajrV+/3tzcnHvswNzcfP369TQa
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
N+n8D0/N+awZj2lAAAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170146</attachid>
            <date>2012-10-23 06:36:21 -0700</date>
            <delta_ts>2012-10-23 07:07:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100021-20121023173457.patch</filename>
            <type>text/plain</type>
            <size>6537</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFhNTQ4OTA3NzIyYjU2
MTViYjY2YTY3ZDg5YTQ5MmY2NTc1YTQ0ZC4uYTY2MjFjOGMzYzk0MTg5NTQyZWVlNGE5MmQxMjhi
ZmJmNGIxODQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEwLTIyICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2hvdyBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGZpZWxkICdpbnRlcm5h
bFByb3BlcnRpZXMnIGlzIHBhcnNlZCBhbmQgcGFzc2VkIHZpYSBhbGwgY2FsbGJhY2tzIHRvIE9i
amVjdCBQcm9wZXJ0aWVzIHNlY3Rpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAoLmNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldCBlbHNlKToKKwogMjAxMi0xMC0y
MiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBUcmVhdCBkeW5hbWljIGFub255bW91cyBzY3JpcHRzIGFzIG90aGVyIGFub255
bW91cyBhbmQgZml4IGFub255bW91cyBzY3JpcHQgZWRpdGluZyBhbmQgYnJlYWtwb2ludHMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmpl
Y3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBiNjRhMDBiZTljMTNkMzU2YzE0MTkwOWEwYWY2
MmMzMjVjNDg1NmNkLi43NGQyYTJjYTZlOTUzZTFjMjlhYzA4Y2IwZGYxYThiY2YxZmYxM2Y2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
T2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTc2LDcgKzc2LDcgQEAgV2ViSW5zcGVjdG9y
Lk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMpCisg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMsIGludGVybmFsUHJvcGVydGllcykK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQogICAgICAgICAgICAgICAg
IHJldHVybjsKQEAgLTQyMCw3ICs0MjAsMTEgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5
VHJlZUVsZW1lbnQucG9wdWxhdGUgPSBmdW5jdGlvbih0cmVlRWxlbWVudCwgdmFsdWUpIHsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMp
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dFByb3BlcnR5Pn0gcHJvcGVydGllcworICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3RQcm9wZXJ0eT49fSBpbnRlcm5hbFByb3BlcnRpZXMKKyAgICAgKi8KKyAg
ICBmdW5jdGlvbiBjYWxsYmFjayhwcm9wZXJ0aWVzLCBpbnRlcm5hbFByb3BlcnRpZXMpCiAgICAg
ewogICAgICAgICB0cmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogICAgICAgICBpZiAoIXBy
b3BlcnRpZXMpCkBAIC00MzUsNiArNDM5LDEyIEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0
eVRyZWVFbGVtZW50LnBvcHVsYXRlID0gZnVuY3Rpb24odHJlZUVsZW1lbnQsIHZhbHVlKSB7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09ICJmdW5jdGlvbiIpCiAgICAgICAg
ICAgICB0cmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2Nv
cGVNYWluVHJlZUVsZW1lbnQodmFsdWUpKTsKKyAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGll
cykgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPGludGVybmFsUHJvcGVydGllcy5s
ZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGludGVybmFsUHJvcGVydGllc1tpXS5wYXJl
bnRPYmplY3QgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5hcHBlbmRDaGls
ZChuZXcgdHJlZUVsZW1lbnQudHJlZU91dGxpbmUuc2VjdGlvbi50cmVlRWxlbWVudENvbnN0cnVj
dG9yKGludGVybmFsUHJvcGVydGllc1tpXSkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIHZhbHVlLmdldE93blByb3BlcnRpZXMoY2FsbGJhY2spOwpAQCAtNjgzLDcg
KzY5Myw3IEBAIFdlYkluc3BlY3Rvci5BcnJheUdyb3VwaW5nVHJlZUVsZW1lbnQuX3BvcHVsYXRl
QXNGcmFnbWVudCA9IGZ1bmN0aW9uKHRyZWVFbGVtZW50CiAgICAgfQogCiAgICAgLyoqIEB0aGlz
IHtXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50fSAqLwotICAgIGZ1bmN0aW9u
IHByb2Nlc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXMpCisgICAgZnVuY3Rpb24gcHJvY2Vzc1Byb3Bl
cnRpZXMocHJvcGVydGllcywgaW50ZXJuYWxQcm9wZXJ0aWVzKQogICAgIHsKICAgICAgICAgaWYg
KCFwcm9wZXJ0aWVzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzI4LDcgKzczOCw3IEBAIFdl
Ykluc3BlY3Rvci5BcnJheUdyb3VwaW5nVHJlZUVsZW1lbnQuX3BvcHVsYXRlTm9uSW5kZXhQcm9w
ZXJ0aWVzID0gZnVuY3Rpb24odHJlCiAgICAgfQogCiAgICAgLyoqIEB0aGlzIHtXZWJJbnNwZWN0
b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50fSAqLwotICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9w
ZXJ0aWVzKHByb3BlcnRpZXMpCisgICAgZnVuY3Rpb24gcHJvY2Vzc1Byb3BlcnRpZXMocHJvcGVy
dGllcywgaW50ZXJuYWxQcm9wZXJ0aWVzKQogICAgIHsKICAgICAgICAgaWYgKCFwcm9wZXJ0aWVz
KQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwppbmRleCAzMjRmNGVkYjVhMGE5OWJkODBhM2E2MjVk
Zjk5Njk4NDQ1NDBhOTkxLi45ZGU1MjRiMzQyNjY4ZTA2OTUxYzcyNjI2NjM0NGRhMTcwMjY1ZmUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9i
amVjdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9i
amVjdC5qcwpAQCAtOTksNyArOTksNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29s
dmVOb2RlID0gZnVuY3Rpb24obm9kZSwgb2JqZWN0R3JvdXAsIGNhbGxiYWNrKQogfQogCiAvKioK
LSAqIEBwYXJhbSB7UnVudGltZUFnZW50LlJlbW90ZU9iamVjdH0gcGF5bG9hZAorICogQHBhcmFt
IHtSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0PX0gcGF5bG9hZAogICogQHJldHVybiB7V2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdH0KICAqLwogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9t
UGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCkBAIC0xNjMsNyArMTYzLDcgQEAgV2ViSW5zcGVj
dG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAq
IEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0
eT4pfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3RQcm9wZXJ0eT4sIEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
UHJvcGVydHk+PSl9IGNhbGxiYWNrCiAgICAgICovCiAgICAgZ2V0T3duUHJvcGVydGllczogZnVu
Y3Rpb24oY2FsbGJhY2spCiAgICAgewpAQCAtMTcxLDcgKzE3MSw3IEBAIFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+KX0g
Y2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0UHJvcGVydHk+LCBBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3Bl
cnR5Pj0pfSBjYWxsYmFjawogICAgICAqLwogICAgIGdldEFsbFByb3BlcnRpZXM6IGZ1bmN0aW9u
KGNhbGxiYWNrKQogICAgIHsKQEAgLTE4MCw3ICsxODAsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0LnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0g
b3duUHJvcGVydGllcwotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFJ1bnRpbWVBZ2Vu
dC5SZW1vdGVPYmplY3Q+KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5
LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+LCBBcnJheS48V2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdFByb3BlcnR5Pj0pfSBjYWxsYmFjawogICAgICAqLwogICAgIF9nZXRQcm9w
ZXJ0aWVzOiBmdW5jdGlvbihvd25Qcm9wZXJ0aWVzLCBjYWxsYmFjaykKICAgICB7CkBAIC0xOTEs
OSArMTkxLDEwIEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogCiAg
ICAgICAgIC8qKgogICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKLSAg
ICAgICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5
Pn0gcHJvcGVydGllcworICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxSdW50aW1lQWdlbnQuUHJv
cGVydHlEZXNjcmlwdG9yPn0gcHJvcGVydGllcworICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxS
dW50aW1lQWdlbnQuSW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+PX0gaW50ZXJuYWxQcm9wZXJ0
aWVzCiAgICAgICAgICAqLwotICAgICAgICBmdW5jdGlvbiByZW1vdGVPYmplY3RCaW5kZXIoZXJy
b3IsIHByb3BlcnRpZXMpCisgICAgICAgIGZ1bmN0aW9uIHJlbW90ZU9iamVjdEJpbmRlcihlcnJv
ciwgcHJvcGVydGllcywgaW50ZXJuYWxQcm9wZXJ0aWVzKQogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKQEAgLTIxMCw3
ICsyMTEsMTUgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkocHJvcGVydHkubmFtZSwgV2ViSW5zcGVj
dG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChwcm9wZXJ0eS52YWx1ZSksIHByb3BlcnR5KSk7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICAg
ICAgdmFyIGludGVybmFsUHJvcGVydGllc1Jlc3VsdDsKKyAgICAgICAgICAgIGlmIChpbnRlcm5h
bFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNSZXN1bHQg
PSBbXTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVybmFsUHJvcGVy
dGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBp
bnRlcm5hbFByb3BlcnRpZXNbaV07CisgICAgICAgICAgICAgICAgICAgIGludGVybmFsUHJvcGVy
dGllc1Jlc3VsdC5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkocHJv
cGVydHkubmFtZSwgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChwcm9wZXJ0
eS52YWx1ZSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBjYWxsYmFjayhyZXN1bHQsIGludGVybmFsUHJvcGVydGllc1Jlc3VsdCk7CiAgICAgICAgIH0K
ICAgICAgICAgUnVudGltZUFnZW50LmdldFByb3BlcnRpZXModGhpcy5fb2JqZWN0SWQsIG93blBy
b3BlcnRpZXMsIHJlbW90ZU9iamVjdEJpbmRlcik7CiAgICAgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170153</attachid>
            <date>2012-10-23 07:08:04 -0700</date>
            <delta_ts>2012-10-23 07:11:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100021-20121023180640.patch</filename>
            <type>text/plain</type>
            <size>7464</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFhNTQ4OTA3NzIyYjU2
MTViYjY2YTY3ZDg5YTQ5MmY2NTc1YTQ0ZC4uYTY2MjFjOGMzYzk0MTg5NTQyZWVlNGE5MmQxMjhi
ZmJmNGIxODQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEwLTIyICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2hvdyBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGZpZWxkICdpbnRlcm5h
bFByb3BlcnRpZXMnIGlzIHBhcnNlZCBhbmQgcGFzc2VkIHZpYSBhbGwgY2FsbGJhY2tzIHRvIE9i
amVjdCBQcm9wZXJ0aWVzIHNlY3Rpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAoLmNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldCBlbHNlKToKKwogMjAxMi0xMC0y
MiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBUcmVhdCBkeW5hbWljIGFub255bW91cyBzY3JpcHRzIGFzIG90aGVyIGFub255
bW91cyBhbmQgZml4IGFub255bW91cyBzY3JpcHQgZWRpdGluZyBhbmQgYnJlYWtwb2ludHMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmpl
Y3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBiNjRhMDBiZTljMTNkMzU2YzE0MTkwOWEwYWY2
MmMzMjVjNDg1NmNkLi4xMWVmYTMyZWU1NjY2ZmYwYWJjZDE5NTE3YWRhNTBkODRkNzM5NDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
T2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTc2LDcgKzc2LDcgQEAgV2ViSW5zcGVjdG9y
Lk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMpCisg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMsIGludGVybmFsUHJvcGVydGllcykK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQogICAgICAgICAgICAgICAg
IHJldHVybjsKQEAgLTQyMCw3ICs0MjAsMTEgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5
VHJlZUVsZW1lbnQucG9wdWxhdGUgPSBmdW5jdGlvbih0cmVlRWxlbWVudCwgdmFsdWUpIHsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMp
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dFByb3BlcnR5Pn0gcHJvcGVydGllcworICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3RQcm9wZXJ0eT49fSBpbnRlcm5hbFByb3BlcnRpZXMKKyAgICAgKi8KKyAg
ICBmdW5jdGlvbiBjYWxsYmFjayhwcm9wZXJ0aWVzLCBpbnRlcm5hbFByb3BlcnRpZXMpCiAgICAg
ewogICAgICAgICB0cmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogICAgICAgICBpZiAoIXBy
b3BlcnRpZXMpCkBAIC00MzMsOCArNDM3LDI4IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0
eVRyZWVFbGVtZW50LnBvcHVsYXRlID0gZnVuY3Rpb24odHJlZUVsZW1lbnQsIHZhbHVlKSB7CiAg
ICAgICAgICAgICBwcm9wZXJ0aWVzW2ldLnBhcmVudE9iamVjdCA9IHZhbHVlOwogICAgICAgICAg
ICAgdHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IHRyZWVFbGVtZW50LnRyZWVPdXRsaW5lLnNl
Y3Rpb24udHJlZUVsZW1lbnRDb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzW2ldKSk7CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0cmVl
RWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJl
ZUVsZW1lbnQodmFsdWUpKTsKKyAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09ICJmdW5jdGlvbiIp
IHsKKyAgICAgICAgICAgIC8vIFdoZXRoZXIgZnVuY3Rpb24gaGFzIFRhcmdldEZ1bmN0aW9uIGlu
dGVybmFsIHByb3BlcnR5LgorICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHNpbXBsZSB3YXkgdG8g
dGVsbCB0aGF0IHRoZSBmdW5jdGlvbiBpcyBhY3R1YWxseSBhIGJvdW5kIGZ1bmN0aW9uIGFuZCBj
YW5ub3QgaGF2ZSBmdW5jdGlvbiBzY29wZSBub2RlLiAgIAorICAgICAgICAgICAgdmFyIGhhc1Rh
cmdldEZ1bmN0aW9uID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbFByb3BlcnRp
ZXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVybmFsUHJvcGVy
dGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWxQcm9w
ZXJ0aWVzW2ldLm5hbWUgPT0gIltbVGFyZ2V0RnVuY3Rpb25dXSIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhhc1RhcmdldEZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFoYXNUYXJnZXRGdW5jdGlvbikKKyAgICAgICAg
ICAgICAgICB0cmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV2ViSW5zcGVjdG9yLkZ1bmN0aW9u
U2NvcGVNYWluVHJlZUVsZW1lbnQodmFsdWUpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW50
ZXJuYWxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVy
bmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGludGVybmFsUHJv
cGVydGllc1tpXS5wYXJlbnRPYmplY3QgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB0cmVlRWxl
bWVudC5hcHBlbmRDaGlsZChuZXcgdHJlZUVsZW1lbnQudHJlZU91dGxpbmUuc2VjdGlvbi50cmVl
RWxlbWVudENvbnN0cnVjdG9yKGludGVybmFsUHJvcGVydGllc1tpXSkpOworICAgICAgICAgICAg
fSAKKyAgICAgICAgfQogICAgIH0KIAogICAgIHZhbHVlLmdldE93blByb3BlcnRpZXMoY2FsbGJh
Y2spOwpAQCAtNjgzLDcgKzcwNyw3IEBAIFdlYkluc3BlY3Rvci5BcnJheUdyb3VwaW5nVHJlZUVs
ZW1lbnQuX3BvcHVsYXRlQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHRyZWVFbGVtZW50CiAgICAgfQog
CiAgICAgLyoqIEB0aGlzIHtXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50fSAq
LwotICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXMpCisgICAgZnVuY3Rp
b24gcHJvY2Vzc1Byb3BlcnRpZXMocHJvcGVydGllcywgaW50ZXJuYWxQcm9wZXJ0aWVzKQogICAg
IHsKICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzI4
LDcgKzc1Miw3IEBAIFdlYkluc3BlY3Rvci5BcnJheUdyb3VwaW5nVHJlZUVsZW1lbnQuX3BvcHVs
YXRlTm9uSW5kZXhQcm9wZXJ0aWVzID0gZnVuY3Rpb24odHJlCiAgICAgfQogCiAgICAgLyoqIEB0
aGlzIHtXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50fSAqLwotICAgIGZ1bmN0
aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXMpCisgICAgZnVuY3Rpb24gcHJvY2Vzc1By
b3BlcnRpZXMocHJvcGVydGllcywgaW50ZXJuYWxQcm9wZXJ0aWVzKQogICAgIHsKICAgICAgICAg
aWYgKCFwcm9wZXJ0aWVzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwppbmRleCAzMjRmNGVkYjVh
MGE5OWJkODBhM2E2MjVkZjk5Njk4NDQ1NDBhOTkxLi45ZGU1MjRiMzQyNjY4ZTA2OTUxYzcyNjI2
NjM0NGRhMTcwMjY1ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtOTksNyArOTksNyBAQCBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LnJlc29sdmVOb2RlID0gZnVuY3Rpb24obm9kZSwgb2JqZWN0R3JvdXAsIGNhbGxi
YWNrKQogfQogCiAvKioKLSAqIEBwYXJhbSB7UnVudGltZUFnZW50LlJlbW90ZU9iamVjdH0gcGF5
bG9hZAorICogQHBhcmFtIHtSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0PX0gcGF5bG9hZAogICog
QHJldHVybiB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0KICAqLwogV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5mcm9tUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCkBAIC0xNjMsNyArMTYz
LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAog
ICAgIC8qKgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3RQcm9wZXJ0eT4pfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJy
YXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT4sIEFycmF5LjxXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+PSl9IGNhbGxiYWNrCiAgICAgICovCiAgICAgZ2V0T3du
UHJvcGVydGllczogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewpAQCAtMTcxLDcgKzE3MSw3IEBA
IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0UHJvcGVydHk+KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+LCBBcnJheS48V2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdFByb3BlcnR5Pj0pfSBjYWxsYmFjawogICAgICAqLwogICAgIGdldEFsbFByb3Bl
cnRpZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKQEAgLTE4MCw3ICsxODAsNyBAQCBXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gb3duUHJvcGVydGllcwotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJy
YXkuPFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3Q+KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+LCBBcnJh
eS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pj0pfSBjYWxsYmFjawogICAgICAq
LwogICAgIF9nZXRQcm9wZXJ0aWVzOiBmdW5jdGlvbihvd25Qcm9wZXJ0aWVzLCBjYWxsYmFjaykK
ICAgICB7CkBAIC0xOTEsOSArMTkxLDEwIEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJv
dG90eXBlID0gewogCiAgICAgICAgIC8qKgogICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5F
cnJvcn0gZXJyb3IKLSAgICAgICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90
ZU9iamVjdFByb3BlcnR5Pn0gcHJvcGVydGllcworICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxS
dW50aW1lQWdlbnQuUHJvcGVydHlEZXNjcmlwdG9yPn0gcHJvcGVydGllcworICAgICAgICAgKiBA
cGFyYW0ge0FycmF5LjxSdW50aW1lQWdlbnQuSW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+PX0g
aW50ZXJuYWxQcm9wZXJ0aWVzCiAgICAgICAgICAqLwotICAgICAgICBmdW5jdGlvbiByZW1vdGVP
YmplY3RCaW5kZXIoZXJyb3IsIHByb3BlcnRpZXMpCisgICAgICAgIGZ1bmN0aW9uIHJlbW90ZU9i
amVjdEJpbmRlcihlcnJvciwgcHJvcGVydGllcywgaW50ZXJuYWxQcm9wZXJ0aWVzKQogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICBjYWxsYmFjayhu
dWxsKTsKQEAgLTIxMCw3ICsyMTEsMTUgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdC5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkocHJvcGVydHku
bmFtZSwgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChwcm9wZXJ0eS52YWx1
ZSksIHByb3BlcnR5KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYWxsYmFjayhyZXN1
bHQpOworICAgICAgICAgICAgdmFyIGludGVybmFsUHJvcGVydGllc1Jlc3VsdDsKKyAgICAgICAg
ICAgIGlmIChpbnRlcm5hbFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbFBy
b3BlcnRpZXNSZXN1bHQgPSBbXTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGludGVybmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB2
YXIgcHJvcGVydHkgPSBpbnRlcm5hbFByb3BlcnRpZXNbaV07CisgICAgICAgICAgICAgICAgICAg
IGludGVybmFsUHJvcGVydGllc1Jlc3VsdC5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0UHJvcGVydHkocHJvcGVydHkubmFtZSwgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9t
UGF5bG9hZChwcm9wZXJ0eS52YWx1ZSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQsIGludGVybmFsUHJvcGVydGllc1Jlc3Vs
dCk7CiAgICAgICAgIH0KICAgICAgICAgUnVudGltZUFnZW50LmdldFByb3BlcnRpZXModGhpcy5f
b2JqZWN0SWQsIG93blByb3BlcnRpZXMsIHJlbW90ZU9iamVjdEJpbmRlcik7CiAgICAgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170154</attachid>
            <date>2012-10-23 07:11:41 -0700</date>
            <delta_ts>2012-11-13 09:10:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100021-20121023181018.patch</filename>
            <type>text/plain</type>
            <size>7539</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFhNTQ4OTA3NzIyYjU2
MTViYjY2YTY3ZDg5YTQ5MmY2NTc1YTQ0ZC4uYTY2MjFjOGMzYzk0MTg5NTQyZWVlNGE5MmQxMjhi
ZmJmNGIxODQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEwLTIyICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2hvdyBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGZpZWxkICdpbnRlcm5h
bFByb3BlcnRpZXMnIGlzIHBhcnNlZCBhbmQgcGFzc2VkIHZpYSBhbGwgY2FsbGJhY2tzIHRvIE9i
amVjdCBQcm9wZXJ0aWVzIHNlY3Rpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAoLmNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldCBlbHNlKToKKwogMjAxMi0xMC0y
MiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBUcmVhdCBkeW5hbWljIGFub255bW91cyBzY3JpcHRzIGFzIG90aGVyIGFub255
bW91cyBhbmQgZml4IGFub255bW91cyBzY3JpcHQgZWRpdGluZyBhbmQgYnJlYWtwb2ludHMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmpl
Y3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCBiNjRhMDBiZTljMTNkMzU2YzE0MTkwOWEwYWY2
MmMzMjVjNDg1NmNkLi45Y2E1Y2VmNTUwN2U2Zjg1YTEwYzYyMGY1OTMxNzZkOTk0NjhiZGRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3Bl
cnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
T2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTc2LDcgKzc2LDcgQEAgV2ViSW5zcGVjdG9y
Lk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMpCisg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMsIGludGVybmFsUHJvcGVydGllcykK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQogICAgICAgICAgICAgICAg
IHJldHVybjsKQEAgLTQyMCw3ICs0MjAsMTEgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5
VHJlZUVsZW1lbnQucG9wdWxhdGUgPSBmdW5jdGlvbih0cmVlRWxlbWVudCwgdmFsdWUpIHsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHByb3BlcnRpZXMp
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dFByb3BlcnR5Pn0gcHJvcGVydGllcworICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3RQcm9wZXJ0eT49fSBpbnRlcm5hbFByb3BlcnRpZXMKKyAgICAgKi8KKyAg
ICBmdW5jdGlvbiBjYWxsYmFjayhwcm9wZXJ0aWVzLCBpbnRlcm5hbFByb3BlcnRpZXMpCiAgICAg
ewogICAgICAgICB0cmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogICAgICAgICBpZiAoIXBy
b3BlcnRpZXMpCkBAIC00MzMsOCArNDM3LDI5IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0
eVRyZWVFbGVtZW50LnBvcHVsYXRlID0gZnVuY3Rpb24odHJlZUVsZW1lbnQsIHZhbHVlKSB7CiAg
ICAgICAgICAgICBwcm9wZXJ0aWVzW2ldLnBhcmVudE9iamVjdCA9IHZhbHVlOwogICAgICAgICAg
ICAgdHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IHRyZWVFbGVtZW50LnRyZWVPdXRsaW5lLnNl
Y3Rpb24udHJlZUVsZW1lbnRDb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzW2ldKSk7CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0cmVl
RWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV2ViSW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJl
ZUVsZW1lbnQodmFsdWUpKTsKKyAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09ICJmdW5jdGlvbiIp
IHsKKyAgICAgICAgICAgIC8vIFdoZXRoZXIgZnVuY3Rpb24gaGFzIFRhcmdldEZ1bmN0aW9uIGlu
dGVybmFsIHByb3BlcnR5LgorICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHNpbXBsZSB3YXkgdG8g
dGVsbCB0aGF0IHRoZSBmdW5jdGlvbiBpcyBhY3R1YWxseSBhIGJvdW5kIGZ1bmN0aW9uICh3ZSBh
cmUgbm90IHRvbGQpLgorICAgICAgICAgICAgLy8gQm91bmQgZnVuY3Rpb24gbmV2ZXIgaGFzIGlu
bmVyIHNjb3BlIGFuZCBkb2Vzbid0IG5lZWQgY29ycmVzcG9uZGluZyBVSSBub2RlLiAgIAorICAg
ICAgICAgICAgdmFyIGhhc1RhcmdldEZ1bmN0aW9uID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlm
IChpbnRlcm5hbFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGludGVybmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoaW50ZXJuYWxQcm9wZXJ0aWVzW2ldLm5hbWUgPT0gIltbVGFyZ2V0RnVuY3Rpb25dXSIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc1RhcmdldEZ1bmN0aW9uID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFoYXNUYXJnZXRG
dW5jdGlvbikKKyAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV2Vi
SW5zcGVjdG9yLkZ1bmN0aW9uU2NvcGVNYWluVHJlZUVsZW1lbnQodmFsdWUpKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoaW50ZXJuYWxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGludGVybmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAg
ICAgICAgIGludGVybmFsUHJvcGVydGllc1tpXS5wYXJlbnRPYmplY3QgPSB2YWx1ZTsKKyAgICAg
ICAgICAgICAgICB0cmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgdHJlZUVsZW1lbnQudHJlZU91
dGxpbmUuc2VjdGlvbi50cmVlRWxlbWVudENvbnN0cnVjdG9yKGludGVybmFsUHJvcGVydGllc1tp
XSkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQogICAgIH0KIAogICAgIHZhbHVlLmdldE93
blByb3BlcnRpZXMoY2FsbGJhY2spOwpAQCAtNjgzLDcgKzcwOCw3IEBAIFdlYkluc3BlY3Rvci5B
cnJheUdyb3VwaW5nVHJlZUVsZW1lbnQuX3BvcHVsYXRlQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHRy
ZWVFbGVtZW50CiAgICAgfQogCiAgICAgLyoqIEB0aGlzIHtXZWJJbnNwZWN0b3IuQXJyYXlHcm91
cGluZ1RyZWVFbGVtZW50fSAqLwotICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHByb3Bl
cnRpZXMpCisgICAgZnVuY3Rpb24gcHJvY2Vzc1Byb3BlcnRpZXMocHJvcGVydGllcywgaW50ZXJu
YWxQcm9wZXJ0aWVzKQogICAgIHsKICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtNzI4LDcgKzc1Myw3IEBAIFdlYkluc3BlY3Rvci5BcnJheUdyb3VwaW5n
VHJlZUVsZW1lbnQuX3BvcHVsYXRlTm9uSW5kZXhQcm9wZXJ0aWVzID0gZnVuY3Rpb24odHJlCiAg
ICAgfQogCiAgICAgLyoqIEB0aGlzIHtXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVt
ZW50fSAqLwotICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXMpCisgICAg
ZnVuY3Rpb24gcHJvY2Vzc1Byb3BlcnRpZXMocHJvcGVydGllcywgaW50ZXJuYWxQcm9wZXJ0aWVz
KQogICAgIHsKICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQogICAgICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmpl
Y3QuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5q
cwppbmRleCAzMjRmNGVkYjVhMGE5OWJkODBhM2E2MjVkZjk5Njk4NDQ1NDBhOTkxLi45ZGU1MjRi
MzQyNjY4ZTA2OTUxYzcyNjI2NjM0NGRhMTcwMjY1ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtOTksNyArOTksNyBA
QCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlID0gZnVuY3Rpb24obm9kZSwg
b2JqZWN0R3JvdXAsIGNhbGxiYWNrKQogfQogCiAvKioKLSAqIEBwYXJhbSB7UnVudGltZUFnZW50
LlJlbW90ZU9iamVjdH0gcGF5bG9hZAorICogQHBhcmFtIHtSdW50aW1lQWdlbnQuUmVtb3RlT2Jq
ZWN0PX0gcGF5bG9hZAogICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0KICAq
LwogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxv
YWQpCkBAIC0xNjMsNyArMTYzLDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5
cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXku
PFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT4pfSBjYWxsYmFjaworICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT4s
IEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+PSl9IGNhbGxiYWNrCiAg
ICAgICovCiAgICAgZ2V0T3duUHJvcGVydGllczogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewpA
QCAtMTcxLDcgKzE3MSw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0g
ewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+KX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+LCBBcnJh
eS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pj0pfSBjYWxsYmFjawogICAgICAq
LwogICAgIGdldEFsbFByb3BlcnRpZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKQEAgLTE4
MCw3ICsxODAsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKIAog
ICAgIC8qKgogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3duUHJvcGVydGllcwotICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFJ1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3Q+KX0gY2FsbGJh
Y2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0UHJvcGVydHk+LCBBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pj0p
fSBjYWxsYmFjawogICAgICAqLwogICAgIF9nZXRQcm9wZXJ0aWVzOiBmdW5jdGlvbihvd25Qcm9w
ZXJ0aWVzLCBjYWxsYmFjaykKICAgICB7CkBAIC0xOTEsOSArMTkxLDEwIEBAIFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogCiAgICAgICAgIC8qKgogICAgICAgICAgKiBA
cGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKLSAgICAgICAgICogQHBhcmFtIHtBcnJheS48
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pn0gcHJvcGVydGllcworICAgICAgICAg
KiBAcGFyYW0ge0FycmF5LjxSdW50aW1lQWdlbnQuUHJvcGVydHlEZXNjcmlwdG9yPn0gcHJvcGVy
dGllcworICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxSdW50aW1lQWdlbnQuSW50ZXJuYWxQcm9w
ZXJ0eURlc2NyaXB0b3I+PX0gaW50ZXJuYWxQcm9wZXJ0aWVzCiAgICAgICAgICAqLwotICAgICAg
ICBmdW5jdGlvbiByZW1vdGVPYmplY3RCaW5kZXIoZXJyb3IsIHByb3BlcnRpZXMpCisgICAgICAg
IGZ1bmN0aW9uIHJlbW90ZU9iamVjdEJpbmRlcihlcnJvciwgcHJvcGVydGllcywgaW50ZXJuYWxQ
cm9wZXJ0aWVzKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAg
ICAgICAgICBjYWxsYmFjayhudWxsKTsKQEAgLTIxMCw3ICsyMTEsMTUgQEAgV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
UHJvcGVydHkocHJvcGVydHkubmFtZSwgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5
bG9hZChwcm9wZXJ0eS52YWx1ZSksIHByb3BlcnR5KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICAgICAgdmFyIGludGVybmFsUHJvcGVydGll
c1Jlc3VsdDsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbFByb3BlcnRpZXMpIHsKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNSZXN1bHQgPSBbXTsKKyAgICAgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGludGVybmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAg
ICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBpbnRlcm5hbFByb3BlcnRpZXNbaV07Cisg
ICAgICAgICAgICAgICAgICAgIGludGVybmFsUHJvcGVydGllc1Jlc3VsdC5wdXNoKG5ldyBXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkocHJvcGVydHkubmFtZSwgV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChwcm9wZXJ0eS52YWx1ZSkpKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQsIGludGVy
bmFsUHJvcGVydGllc1Jlc3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgUnVudGltZUFnZW50Lmdl
dFByb3BlcnRpZXModGhpcy5fb2JqZWN0SWQsIG93blByb3BlcnRpZXMsIHJlbW90ZU9iamVjdEJp
bmRlcik7CiAgICAgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173908</attachid>
            <date>2012-11-13 09:10:08 -0800</date>
            <delta_ts>2012-11-13 10:09:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100021-20121113210808.patch</filename>
            <type>text/plain</type>
            <size>16601</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY1NGYzNjQ2M2UxZTJi
MjA5YjdmMWU3YjgzYmVkZGU0ZDliMmQ5My4uZWZiNzYwY2RlYTU0NmU5NjhlOTFiMDY0MWQ3NGRm
ZmJlNWZjMTU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTExLTEzICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2hvdyBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGZpZWxkICdpbnRlcm5h
bFByb3BlcnRpZXMnIGlzIHBhcnNlZCBhbmQgcGFzc2VkIHZpYSBhbGwgY2FsbGJhY2tzIHRvIE9i
amVjdCBQcm9wZXJ0aWVzIHNlY3Rpb24uCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVn
Z2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9i
amVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZS51cGRhdGUuY2FsbGJhY2spOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZS51cGRhdGUp
OgorICAgICAgICAoLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9w
ZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlKToKKyAgICAgICAgKC5wcm9jZXNzUHJvcGVydGllcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0
ZUFzRnJhZ21lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFycmF5R3JvdXBpbmdUcmVlRWxl
bWVudC5fcG9wdWxhdGVOb25JbmRleFByb3BlcnRpZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5wcm90b3R5cGUuc2V0IGVsc2UpOgorCiAyMDEyLTExLTEzICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTM0MjA1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKaW5kZXggMTIxMDZjNGZiMmRi
NzVhODRkNjg4ZjM1NDY2NTQzMzc1NWQxMmI2Yy4uODNkZjBhYTA0ZjMxZTYwNTMwYTE5NjFjYjk5
NmVhNjQxMzU5YTNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCkBAIC03Niw3ICs3Niw3
IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
ayhwcm9wZXJ0aWVzKQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhwcm9wZXJ0aWVzLCBpbnRl
cm5hbFByb3BlcnRpZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC00MjgsNyArNDI4LDExIEBAIFdlYkluc3BlY3Rv
ci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlID0gZnVuY3Rpb24odHJlZUVsZW1l
bnQsIHZhbHVlKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBjYWxs
YmFjayhwcm9wZXJ0aWVzKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT59IHByb3BlcnRpZXMKKyAgICAgKiBAcGFyYW0ge0Fy
cmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+PX0gaW50ZXJuYWxQcm9wZXJ0
aWVzCisgICAgICovCisgICAgZnVuY3Rpb24gY2FsbGJhY2socHJvcGVydGllcywgaW50ZXJuYWxQ
cm9wZXJ0aWVzKQogICAgIHsKICAgICAgICAgdHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsK
ICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQpAQCAtNDQxLDggKzQ0NSwyOSBAQCBXZWJJbnNwZWN0
b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wb3B1bGF0ZSA9IGZ1bmN0aW9uKHRyZWVFbGVt
ZW50LCB2YWx1ZSkgewogICAgICAgICAgICAgcHJvcGVydGllc1tpXS5wYXJlbnRPYmplY3QgPSB2
YWx1ZTsKICAgICAgICAgICAgIHRyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyB0cmVlRWxlbWVu
dC50cmVlT3V0bGluZS5zZWN0aW9uLnRyZWVFbGVtZW50Q29uc3RydWN0b3IocHJvcGVydGllc1tp
XSkpOwogICAgICAgICB9Ci0gICAgICAgIGlmICh2YWx1ZS50eXBlID09PSAiZnVuY3Rpb24iKQot
ICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5GdW5j
dGlvblNjb3BlTWFpblRyZWVFbGVtZW50KHZhbHVlKSk7CisgICAgICAgIGlmICh2YWx1ZS50eXBl
ID09PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAgICAvLyBXaGV0aGVyIGZ1bmN0aW9uIGhhcyBU
YXJnZXRGdW5jdGlvbiBpbnRlcm5hbCBwcm9wZXJ0eS4KKyAgICAgICAgICAgIC8vIFRoaXMgaXMg
YSBzaW1wbGUgd2F5IHRvIHRlbGwgdGhhdCB0aGUgZnVuY3Rpb24gaXMgYWN0dWFsbHkgYSBib3Vu
ZCBmdW5jdGlvbiAod2UgYXJlIG5vdCB0b2xkKS4KKyAgICAgICAgICAgIC8vIEJvdW5kIGZ1bmN0
aW9uIG5ldmVyIGhhcyBpbm5lciBzY29wZSBhbmQgZG9lc24ndCBuZWVkIGNvcnJlc3BvbmRpbmcg
VUkgbm9kZS4gICAKKyAgICAgICAgICAgIHZhciBoYXNUYXJnZXRGdW5jdGlvbiA9IGZhbHNlOwor
CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGllc1tpXS5uYW1lID09ICJbW1Rh
cmdldEZ1bmN0aW9uXV0iKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNUYXJnZXRGdW5j
dGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmICghaGFzVGFyZ2V0RnVuY3Rpb24pCisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3BlTWFpblRyZWVFbGVtZW50KHZh
bHVlKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGllcykgeworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNbaV0ucGFyZW50T2JqZWN0
ID0gdmFsdWU7CisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IHRy
ZWVFbGVtZW50LnRyZWVPdXRsaW5lLnNlY3Rpb24udHJlZUVsZW1lbnRDb25zdHJ1Y3RvcihpbnRl
cm5hbFByb3BlcnRpZXNbaV0pKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KICAgICB9CiAK
ICAgICB2YWx1ZS5nZXRPd25Qcm9wZXJ0aWVzKGNhbGxiYWNrKTsKQEAgLTY4OCw3ICs3MTMsNyBA
QCBXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0ZUFzRnJhZ21l
bnQgPSBmdW5jdGlvbih0cmVlRWxlbWVudAogICAgIH0KIAogICAgIC8qKiBAdGhpcyB7V2ViSW5z
cGVjdG9yLkFycmF5R3JvdXBpbmdUcmVlRWxlbWVudH0gKi8KLSAgICBmdW5jdGlvbiBwcm9jZXNz
UHJvcGVydGllcyhwcm9wZXJ0aWVzKQorICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHBy
b3BlcnRpZXMsIGludGVybmFsUHJvcGVydGllcykKICAgICB7CiAgICAgICAgIGlmICghcHJvcGVy
dGllcykKICAgICAgICAgICAgIHJldHVybjsKQEAgLTczMyw3ICs3NTgsNyBAQCBXZWJJbnNwZWN0
b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0ZU5vbkluZGV4UHJvcGVydGllcyA9
IGZ1bmN0aW9uKHRyZQogICAgIH0KIAogICAgIC8qKiBAdGhpcyB7V2ViSW5zcGVjdG9yLkFycmF5
R3JvdXBpbmdUcmVlRWxlbWVudH0gKi8KLSAgICBmdW5jdGlvbiBwcm9jZXNzUHJvcGVydGllcyhw
cm9wZXJ0aWVzKQorICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIGlu
dGVybmFsUHJvcGVydGllcykKICAgICB7CiAgICAgICAgIGlmICghcHJvcGVydGllcykKICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZW1vdGVPYmplY3QuanMKaW5kZXggYmUzYzkxYTliYTFmMzc4OWQ0OTMwMDkxZjBkNzBkMmUx
NjcwNGRkYy4uM2YwODBiMzUyMTQ0ZmU5ZGQ0ODliYzBmN2E2NmYyOTZhYTg0ZTU2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
QEAgLTk5LDcgKzk5LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZSA9
IGZ1bmN0aW9uKG5vZGUsIG9iamVjdEdyb3VwLCBjYWxsYmFjaykKIH0KIAogLyoqCi0gKiBAcGFy
YW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHBheWxvYWQKKyAqIEBwYXJhbSB7UnVudGlt
ZUFnZW50LlJlbW90ZU9iamVjdD19IHBheWxvYWQKICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3R9CiAgKi8KIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQg
PSBmdW5jdGlvbihwYXlsb2FkKQpAQCAtMTYzLDcgKzE2Myw3IEBAIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+KX0gY2Fs
bGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0UHJvcGVydHk+LCBBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5
Pj0pfSBjYWxsYmFjawogICAgICAqLwogICAgIGdldE93blByb3BlcnRpZXM6IGZ1bmN0aW9uKGNh
bGxiYWNrKQogICAgIHsKQEAgLTE3MSw3ICsxNzEsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5j
dGlvbihBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pil9IGNhbGxiYWNr
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dFByb3BlcnR5PiwgQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT49KX0g
Y2FsbGJhY2sKICAgICAgKi8KICAgICBnZXRBbGxQcm9wZXJ0aWVzOiBmdW5jdGlvbihjYWxsYmFj
aykKICAgICB7CkBAIC0xODAsNyArMTgwLDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5w
cm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG93blByb3Bl
cnRpZXMKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxSdW50aW1lQWdlbnQuUmVtb3Rl
T2JqZWN0Pil9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48V2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5PiwgQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3RQcm9wZXJ0eT49KX0gY2FsbGJhY2sKICAgICAgKi8KICAgICBfZ2V0UHJvcGVydGllczog
ZnVuY3Rpb24ob3duUHJvcGVydGllcywgY2FsbGJhY2spCiAgICAgewpAQCAtMTkxLDkgKzE5MSwx
MCBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKIAogICAgICAgICAv
KioKICAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9yCi0gICAgICAgICAq
IEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT59IHByb3Bl
cnRpZXMKKyAgICAgICAgICogQHBhcmFtIHtBcnJheS48UnVudGltZUFnZW50LlByb3BlcnR5RGVz
Y3JpcHRvcj59IHByb3BlcnRpZXMKKyAgICAgICAgICogQHBhcmFtIHtBcnJheS48UnVudGltZUFn
ZW50LkludGVybmFsUHJvcGVydHlEZXNjcmlwdG9yPj19IGludGVybmFsUHJvcGVydGllcwogICAg
ICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0QmluZGVyKGVycm9yLCBwcm9w
ZXJ0aWVzKQorICAgICAgICBmdW5jdGlvbiByZW1vdGVPYmplY3RCaW5kZXIoZXJyb3IsIHByb3Bl
cnRpZXMsIGludGVybmFsUHJvcGVydGllcykKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGVy
cm9yKSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CkBAIC0yMTAsNyArMjExLDE1
IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChuZXcgV2ViSW5zcGVj
dG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KHByb3BlcnR5Lm5hbWUsIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QuZnJvbVBheWxvYWQocHJvcGVydHkudmFsdWUpLCBwcm9wZXJ0eSkpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHZhciBp
bnRlcm5hbFByb3BlcnRpZXNSZXN1bHQ7CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxQcm9wZXJ0
aWVzKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxQcm9wZXJ0aWVzUmVzdWx0ID0gW107Cisg
ICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gaW50ZXJuYWxQ
cm9wZXJ0aWVzW2ldOworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNSZXN1
bHQucHVzaChuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KHByb3BlcnR5Lm5h
bWUsIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocHJvcGVydHkudmFsdWUp
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJh
Y2socmVzdWx0LCBpbnRlcm5hbFByb3BlcnRpZXNSZXN1bHQpOwogICAgICAgICB9CiAgICAgICAg
IFJ1bnRpbWVBZ2VudC5nZXRQcm9wZXJ0aWVzKHRoaXMuX29iamVjdElkLCBvd25Qcm9wZXJ0aWVz
LCByZW1vdGVPYmplY3RCaW5kZXIpOwogICAgIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODkxMDEyZDc0YzY1ZjViMWJi
MDE0NGFiZWQ0NmZkMzI3YjdhNWM1Mi4uNTQ2NzMxY2EyNWFmODVlNzBhMzNmOTA0MTE0N2VmMTlj
YzJlZTRlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTEzICBQZXRlciBSeWJpbiAg
PHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hvdyBpbnRl
cm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBuZXcgdGVzdCBpcyBhZGRlZC4gSW5zcGVj
dG9yVGVzdC5kdW1wT2JqZWN0UHJvcGVydHlTZWN0aW9uRGVlcCBmdW5jdGlvbiBpcyBhZGRlZC4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6CisgICAg
ICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3QuZHVtcE9iamVjdFByb3Bl
cnR5U2VjdGlvbkRlZXApOgorICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0
b3JUZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNlY3Rpb25EZWVwLmR1bXBUcmVlRWxlbWVudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNp
YWwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTEx
LTEzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEuY29zdGFAaW50ZWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVwZGF0ZSBleHBlY3RhdGlvbnMgYWZ0ZXIgcjEz
NDM0NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10
ZXN0LmpzCmluZGV4IGFkZTVhZTYxMzcxMWQ3YTY4MTUwZDE4MDU3OTU1ZWY5Y2JmMjM2NjMuLjRh
MWFmMTQwMTRlNDc0NmEyZWFmNWJjZWQ5Yjk1ODQwZjlkMDhjZDMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcwpAQCAtMjYxLDYgKzI2
MSwzMCBAQCBJbnNwZWN0b3JUZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNlY3Rpb24gPSBmdW5jdGlv
bihzZWN0aW9uLCBmb3JtYXR0ZXJzKQogICAgIH0KIH0KIAorSW5zcGVjdG9yVGVzdC5kdW1wT2Jq
ZWN0UHJvcGVydHlTZWN0aW9uRGVlcCA9IGZ1bmN0aW9uKHNlY3Rpb24pCit7CisgICAgZnVuY3Rp
b24gZG9tTm9kZVRvU3RyaW5nKG5vZGUpIHsKKyAgICAgICAgaWYgKG5vZGUpCisgICAgICAgICAg
ICByZXR1cm4gIiciICsgbm9kZS5pbm5lckhUTUwgKyAiJyI7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHJldHVybiAibnVsbCI7CisgICAgfQorICAgIGZ1bmN0aW9uIGR1bXBUcmVlRWxlbWVu
dCh0cmVlRWxlbWVudCwgcHJlZml4KSB7CisgICAgICAgIGlmICgibmFtZUVsZW1lbnQiIGluIHRy
ZWVFbGVtZW50KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4ICsg
ZG9tTm9kZVRvU3RyaW5nKHRyZWVFbGVtZW50Lm5hbWVFbGVtZW50KSArICIgPT4gIiArIGRvbU5v
ZGVUb1N0cmluZyh0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQpKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4ICsgdHJlZUVsZW1lbnQudGl0
bGUpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRyZWVFbGVtZW50LmNoaWxkcmVuLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkdW1wVHJlZUVsZW1lbnQodHJlZUVsZW1lbnQuY2hp
bGRyZW5baV0sIHByZWZpeCArICIgICAgIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIg
Y2hpbGROb2RlcyA9IHNlY3Rpb24ucHJvcGVydGllc1RyZWVPdXRsaW5lLmNoaWxkcmVuOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykgeworICAgICAgICBk
dW1wVHJlZUVsZW1lbnQoY2hpbGROb2Rlc1tpXSwgIiIpOworICAgIH0KK30KKwogLy8gRklYTUU6
IHRoaXMgcmV0dXJucyB0aGUgZmlyc3QgdHJlZSBpdGVtIGZvdW5kIChtYXkgZmFpbCBmb3Igc2Ft
ZS1uYW1lZCBwcm9wZXJ0aWVzIGluIGEgc3R5bGUpLgogSW5zcGVjdG9yVGVzdC5nZXRFbGVtZW50
U3R5bGVQcm9wZXJ0eVRyZWVJdGVtID0gZnVuY3Rpb24ocHJvcGVydHlOYW1lKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGllcy1z
cGVjaWFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjJmOTRlMWQ1OWQ2NTEwZmZkZTU4NDMy
YTMzMjZlMjg2OWE3Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBA
QAorVGVzdHMgaG93IGRlYnVnZ2VyIHByZXNlbnRzIHNwZWNpYWwgcHJvcGVydGllcyBvZiBjbG9z
dXJlcywgYm91bmQgZnVuY3Rpb25zIGFuZCBvYmplY3Qgd3JhcHBlcnMuCisKK0RlYnVnZ2VyIHdh
cyBlbmFibGVkLgorU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uCitTZXQgdGltZXIgZm9yIHRlc3Qg
ZnVuY3Rpb24uCitXYXRjaCBleHByZXNzaW9ucyB1cGRhdGVkLgorTm9kZXMgYXJlIGV4cGFuZGVk
LgorJ09iamVjdCh0cnVlKScgPT4gJ0Jvb2xlYW4nCisgICAgJ19fcHJvdG9fXycgPT4gJ0Jvb2xl
YW4nCisgICAgJ1tbUHJpbWl0aXZlVmFsdWVdXScgPT4gJ3RydWUnCisnKGZ1bmN0aW9uKGEsYikg
eyByZXR1cm4gYSArIGI7IH0pJyA9PiAnZnVuY3Rpb24gKGEsYikgeyByZXR1cm4gYSArIGI7IH0n
CisgICAgJ2FyZ3VtZW50cycgPT4gJ251bGwnCisgICAgJ2NhbGxlcicgPT4gJ251bGwnCisgICAg
J2xlbmd0aCcgPT4gJzInCisgICAgJ25hbWUnID0+ICciIicKKyAgICAncHJvdG90eXBlJyA9PiAn
T2JqZWN0JworICAgICdfX3Byb3RvX18nID0+ICdmdW5jdGlvbiBFbXB0eSgpIHt9JworICAgIDxm
dW5jdGlvbiBzY29wZT4KKycoZnVuY3Rpb24oYSxiKSB7IHJldHVybiBhICsgYjsgfSkuYmluZCh7
fSwgMiknID0+ICdmdW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0gfScKKyAgICAnZ2V0IGFyZ3Vt
ZW50cycgPT4gJ2Z1bmN0aW9uIFRocm93VHlwZUVycm9yKCkgeyBbbmF0aXZlIGNvZGVdIH0nCisg
ICAgJ2dldCBjYWxsZXInID0+ICdmdW5jdGlvbiBUaHJvd1R5cGVFcnJvcigpIHsgW25hdGl2ZSBj
b2RlXSB9JworICAgICdsZW5ndGgnID0+ICcxJworICAgICduYW1lJyA9PiAnIiInCisgICAgJ3Nl
dCBhcmd1bWVudHMnID0+ICdmdW5jdGlvbiBUaHJvd1R5cGVFcnJvcigpIHsgW25hdGl2ZSBjb2Rl
XSB9JworICAgICdzZXQgY2FsbGVyJyA9PiAnZnVuY3Rpb24gVGhyb3dUeXBlRXJyb3IoKSB7IFtu
YXRpdmUgY29kZV0gfScKKyAgICAnX19wcm90b19fJyA9PiAnZnVuY3Rpb24gRW1wdHkoKSB7fScK
KyAgICAnW1tUYXJnZXRGdW5jdGlvbl1dJyA9PiAnZnVuY3Rpb24gKGEsYikgeyByZXR1cm4gYSAr
IGI7IH0nCisgICAgJ1tbQm91bmRUaGlzXV0nID0+ICdPYmplY3QnCisgICAgJ1tbQm91bmRBcmdz
XV0nID0+ICdBcnJheVsxXScKK0RlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjlhZjI3YmJmYjdmNzYyYzUxY2FiZDc3Yjk2MjY0YjhiNTllZjRiMzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGllcy1z
cGVjaWFsLmh0bWwKQEAgLTAsMCArMSw3OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdEZ1bmN0aW9u
KCkKK3sKKyAgICB2YXIgeCA9IE1hdGguc3FydCgxMCk7CisgICAgcmV0dXJuIHg7Cit9CisKK3Zh
ciB0ZXN0ID0gZnVuY3Rpb24oKQoreworICAgIEluc3BlY3RvclRlc3Quc2V0UXVpZXQodHJ1ZSk7
CisgICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7CisKKyAgICB2YXIg
Y3VycmVudFNvdXJjZUZyYW1lOworICAgIHZhciB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbjsKKwor
ICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlh
bGl6ZSBzY3JpcHRzIHBhbmVsIHNvIHRoYXQgd2F0Y2ggZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBj
cmVhdGVkLgorICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7CisKKyAg
ICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlw
dHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnMuc2VjdGlvbjsKKyAgICAgICAgd2F0Y2hF
eHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOworICAgICAgICB3YXRjaEV4
cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIk9iamVjdCh0cnVlKSIpOwor
ICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIihm
dW5jdGlvbihhLGIpIHsgcmV0dXJuIGEgKyBiOyB9KSIpOworICAgICAgICB3YXRjaEV4cHJlc3Np
b25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIihmdW5jdGlvbihhLGIpIHsgcmV0dXJu
IGEgKyBiOyB9KS5iaW5kKHt9LCAyKSIpOworICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlv
bi51cGRhdGUoKTsKKworICAgICAgICB2YXIgdGVzdE5hbWUgPSBXZWJJbnNwZWN0b3IuaW5zcGVj
dGVkUGFnZVVSTDsKKyAgICAgICAgdGVzdE5hbWUgPSB0ZXN0TmFtZS5zdWJzdHJpbmcodGVzdE5h
bWUubGFzdEluZGV4T2YoJy8nKSArIDEpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3Jp
cHRTb3VyY2UodGVzdE5hbWUsIGRpZFNob3dTY3JpcHRTb3VyY2UpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCisgICAgeworICAgICAgICBj
dXJyZW50U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLiIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNldEJyZWFrcG9pbnQoY3VycmVudFNvdXJjZUZyYW1lLCA5LCAiIiwgdHJ1ZSk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9u
c1NlY3Rpb24ucHJvdG90eXBlLCAidXBkYXRlIiwgd2F0Y2hFeHByZXNzaW9uc1VwZGF0ZWQpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChk
aWRQYXVzZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGRpZFBhdXNlZChjYWxsRnJhbWVzKQor
ICAgIHsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB3YXRjaEV4cHJlc3Npb25zVXBkYXRlZCgpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2F0Y2ggZXhwcmVzc2lvbnMg
dXBkYXRlZC4iKTsKKyAgICAgICAgdmFyIHRyZWVOb2RlcyA9IHdhdGNoRXhwcmVzc2lvbnNTZWN0
aW9uLnByb3BlcnRpZXNUcmVlT3V0bGluZS5jaGlsZHJlbjsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB0cmVlTm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRyZWVOb2Rlc1tp
XS5leHBhbmQoKTsKKyAgICAgICAgfQorICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMobm9kZXNFeHBhbmRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbm9k
ZXNFeHBhbmRlZCgpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5vZGVzIGFy
ZSBleHBhbmRlZC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wT2JqZWN0UHJvcGVydHlT
ZWN0aW9uRGVlcCh3YXRjaEV4cHJlc3Npb25zU2VjdGlvbik7CisKKyAgICAgICAgLy8gQ2xlYXIg
d2F0Y2ggZXhwcmVzc2lvbnMgYWZ0ZXIgZXhlY3V0aW9uLgorICAgICAgICB3YXRjaEV4cHJlc3Np
b25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107CisgICAgICAgIHdhdGNoRXhwcmVzc2lv
bnNTZWN0aW9uLnVwZGF0ZSgpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1
Z2dlclRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPHA+VGVzdHMgaG93IGRlYnVnZ2VyIHByZXNlbnRzIHNwZWNpYWwgcHJv
cGVydGllcyBvZiBjbG9zdXJlcywgYm91bmQgZnVuY3Rpb25zIGFuZCBvYmplY3Qgd3JhcHBlcnMu
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvZGVidWdnZXIvcHJv
cGVydGllcy1zcGVjaWFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjJmOTRlMWQ1OWQ2NTEw
ZmZkZTU4NDMyYTMzMjZlMjg2OWE3Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGVzdHMgaG93IGRlYnVnZ2VyIHByZXNlbnRz
IHNwZWNpYWwgcHJvcGVydGllcyBvZiBjbG9zdXJlcywgYm91bmQgZnVuY3Rpb25zIGFuZCBvYmpl
Y3Qgd3JhcHBlcnMuCisKK0RlYnVnZ2VyIHdhcyBlbmFibGVkLgorU2NyaXB0IHNvdXJjZSB3YXMg
c2hvd24uCitTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCitXYXRjaCBleHByZXNzaW9ucyB1
cGRhdGVkLgorTm9kZXMgYXJlIGV4cGFuZGVkLgorJ09iamVjdCh0cnVlKScgPT4gJ0Jvb2xlYW4n
CisgICAgJ19fcHJvdG9fXycgPT4gJ0Jvb2xlYW4nCisgICAgJ1tbUHJpbWl0aXZlVmFsdWVdXScg
PT4gJ3RydWUnCisnKGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0pJyA9PiAnZnVuY3Rp
b24gKGEsYikgeyByZXR1cm4gYSArIGI7IH0nCisgICAgJ2FyZ3VtZW50cycgPT4gJ251bGwnCisg
ICAgJ2NhbGxlcicgPT4gJ251bGwnCisgICAgJ2xlbmd0aCcgPT4gJzInCisgICAgJ25hbWUnID0+
ICciIicKKyAgICAncHJvdG90eXBlJyA9PiAnT2JqZWN0JworICAgICdfX3Byb3RvX18nID0+ICdm
dW5jdGlvbiBFbXB0eSgpIHt9JworICAgIDxmdW5jdGlvbiBzY29wZT4KKycoZnVuY3Rpb24oYSxi
KSB7IHJldHVybiBhICsgYjsgfSkuYmluZCh7fSwgMiknID0+ICdmdW5jdGlvbiAoKSB7IFtuYXRp
dmUgY29kZV0gfScKKyAgICAnZ2V0IGFyZ3VtZW50cycgPT4gJ2Z1bmN0aW9uIFRocm93VHlwZUVy
cm9yKCkgeyBbbmF0aXZlIGNvZGVdIH0nCisgICAgJ2dldCBjYWxsZXInID0+ICdmdW5jdGlvbiBU
aHJvd1R5cGVFcnJvcigpIHsgW25hdGl2ZSBjb2RlXSB9JworICAgICdsZW5ndGgnID0+ICcxJwor
ICAgICduYW1lJyA9PiAnIiInCisgICAgJ3NldCBhcmd1bWVudHMnID0+ICdmdW5jdGlvbiBUaHJv
d1R5cGVFcnJvcigpIHsgW25hdGl2ZSBjb2RlXSB9JworICAgICdzZXQgY2FsbGVyJyA9PiAnZnVu
Y3Rpb24gVGhyb3dUeXBlRXJyb3IoKSB7IFtuYXRpdmUgY29kZV0gfScKKyAgICAnX19wcm90b19f
JyA9PiAnZnVuY3Rpb24gRW1wdHkoKSB7fScKKyAgICAnW1tUYXJnZXRGdW5jdGlvbl1dJyA9PiAn
ZnVuY3Rpb24gKGEsYikgeyByZXR1cm4gYSArIGI7IH0nCisgICAgJ1tbQm91bmRUaGlzXV0nID0+
ICdPYmplY3QnCisgICAgJ1tbQm91bmRBcmdzXV0nID0+ICdBcnJheVsxXScKK0RlYnVnZ2VyIHdh
cyBkaXNhYmxlZC4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173918</attachid>
            <date>2012-11-13 10:09:47 -0800</date>
            <delta_ts>2012-11-15 08:52:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100021-20121113220747.patch</filename>
            <type>text/plain</type>
            <size>16623</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY1NGYzNjQ2M2UxZTJi
MjA5YjdmMWU3YjgzYmVkZGU0ZDliMmQ5My4uZWZiNzYwY2RlYTU0NmU5NjhlOTFiMDY0MWQ3NGRm
ZmJlNWZjMTU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTExLTEzICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2hvdyBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGZpZWxkICdpbnRlcm5h
bFByb3BlcnRpZXMnIGlzIHBhcnNlZCBhbmQgcGFzc2VkIHZpYSBhbGwgY2FsbGJhY2tzIHRvIE9i
amVjdCBQcm9wZXJ0aWVzIHNlY3Rpb24uCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVn
Z2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9i
amVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZS51cGRhdGUuY2FsbGJhY2spOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZS51cGRhdGUp
OgorICAgICAgICAoLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9w
ZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlKToKKyAgICAgICAgKC5wcm9jZXNzUHJvcGVydGllcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0
ZUFzRnJhZ21lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFycmF5R3JvdXBpbmdUcmVlRWxl
bWVudC5fcG9wdWxhdGVOb25JbmRleFByb3BlcnRpZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5wcm90b3R5cGUuc2V0IGVsc2UpOgorCiAyMDEyLTExLTEzICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTM0MjA1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKaW5kZXggMTIxMDZjNGZiMmRi
NzVhODRkNjg4ZjM1NDY2NTQzMzc1NWQxMmI2Yy4uODNkZjBhYTA0ZjMxZTYwNTMwYTE5NjFjYjk5
NmVhNjQxMzU5YTNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCkBAIC03Niw3ICs3Niw3
IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
ayhwcm9wZXJ0aWVzKQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhwcm9wZXJ0aWVzLCBpbnRl
cm5hbFByb3BlcnRpZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC00MjgsNyArNDI4LDExIEBAIFdlYkluc3BlY3Rv
ci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlID0gZnVuY3Rpb24odHJlZUVsZW1l
bnQsIHZhbHVlKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBjYWxs
YmFjayhwcm9wZXJ0aWVzKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT59IHByb3BlcnRpZXMKKyAgICAgKiBAcGFyYW0ge0Fy
cmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+PX0gaW50ZXJuYWxQcm9wZXJ0
aWVzCisgICAgICovCisgICAgZnVuY3Rpb24gY2FsbGJhY2socHJvcGVydGllcywgaW50ZXJuYWxQ
cm9wZXJ0aWVzKQogICAgIHsKICAgICAgICAgdHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsK
ICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQpAQCAtNDQxLDggKzQ0NSwyOSBAQCBXZWJJbnNwZWN0
b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wb3B1bGF0ZSA9IGZ1bmN0aW9uKHRyZWVFbGVt
ZW50LCB2YWx1ZSkgewogICAgICAgICAgICAgcHJvcGVydGllc1tpXS5wYXJlbnRPYmplY3QgPSB2
YWx1ZTsKICAgICAgICAgICAgIHRyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyB0cmVlRWxlbWVu
dC50cmVlT3V0bGluZS5zZWN0aW9uLnRyZWVFbGVtZW50Q29uc3RydWN0b3IocHJvcGVydGllc1tp
XSkpOwogICAgICAgICB9Ci0gICAgICAgIGlmICh2YWx1ZS50eXBlID09PSAiZnVuY3Rpb24iKQot
ICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5GdW5j
dGlvblNjb3BlTWFpblRyZWVFbGVtZW50KHZhbHVlKSk7CisgICAgICAgIGlmICh2YWx1ZS50eXBl
ID09PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAgICAvLyBXaGV0aGVyIGZ1bmN0aW9uIGhhcyBU
YXJnZXRGdW5jdGlvbiBpbnRlcm5hbCBwcm9wZXJ0eS4KKyAgICAgICAgICAgIC8vIFRoaXMgaXMg
YSBzaW1wbGUgd2F5IHRvIHRlbGwgdGhhdCB0aGUgZnVuY3Rpb24gaXMgYWN0dWFsbHkgYSBib3Vu
ZCBmdW5jdGlvbiAod2UgYXJlIG5vdCB0b2xkKS4KKyAgICAgICAgICAgIC8vIEJvdW5kIGZ1bmN0
aW9uIG5ldmVyIGhhcyBpbm5lciBzY29wZSBhbmQgZG9lc24ndCBuZWVkIGNvcnJlc3BvbmRpbmcg
VUkgbm9kZS4gICAKKyAgICAgICAgICAgIHZhciBoYXNUYXJnZXRGdW5jdGlvbiA9IGZhbHNlOwor
CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGllc1tpXS5uYW1lID09ICJbW1Rh
cmdldEZ1bmN0aW9uXV0iKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNUYXJnZXRGdW5j
dGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmICghaGFzVGFyZ2V0RnVuY3Rpb24pCisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3BlTWFpblRyZWVFbGVtZW50KHZh
bHVlKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGllcykgeworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNbaV0ucGFyZW50T2JqZWN0
ID0gdmFsdWU7CisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IHRy
ZWVFbGVtZW50LnRyZWVPdXRsaW5lLnNlY3Rpb24udHJlZUVsZW1lbnRDb25zdHJ1Y3RvcihpbnRl
cm5hbFByb3BlcnRpZXNbaV0pKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KICAgICB9CiAK
ICAgICB2YWx1ZS5nZXRPd25Qcm9wZXJ0aWVzKGNhbGxiYWNrKTsKQEAgLTY4OCw3ICs3MTMsNyBA
QCBXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0ZUFzRnJhZ21l
bnQgPSBmdW5jdGlvbih0cmVlRWxlbWVudAogICAgIH0KIAogICAgIC8qKiBAdGhpcyB7V2ViSW5z
cGVjdG9yLkFycmF5R3JvdXBpbmdUcmVlRWxlbWVudH0gKi8KLSAgICBmdW5jdGlvbiBwcm9jZXNz
UHJvcGVydGllcyhwcm9wZXJ0aWVzKQorICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHBy
b3BlcnRpZXMsIGludGVybmFsUHJvcGVydGllcykKICAgICB7CiAgICAgICAgIGlmICghcHJvcGVy
dGllcykKICAgICAgICAgICAgIHJldHVybjsKQEAgLTczMyw3ICs3NTgsNyBAQCBXZWJJbnNwZWN0
b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0ZU5vbkluZGV4UHJvcGVydGllcyA9
IGZ1bmN0aW9uKHRyZQogICAgIH0KIAogICAgIC8qKiBAdGhpcyB7V2ViSW5zcGVjdG9yLkFycmF5
R3JvdXBpbmdUcmVlRWxlbWVudH0gKi8KLSAgICBmdW5jdGlvbiBwcm9jZXNzUHJvcGVydGllcyhw
cm9wZXJ0aWVzKQorICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIGlu
dGVybmFsUHJvcGVydGllcykKICAgICB7CiAgICAgICAgIGlmICghcHJvcGVydGllcykKICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZW1vdGVPYmplY3QuanMKaW5kZXggYmUzYzkxYTliYTFmMzc4OWQ0OTMwMDkxZjBkNzBkMmUx
NjcwNGRkYy4uM2YwODBiMzUyMTQ0ZmU5ZGQ0ODliYzBmN2E2NmYyOTZhYTg0ZTU2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
QEAgLTk5LDcgKzk5LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZSA9
IGZ1bmN0aW9uKG5vZGUsIG9iamVjdEdyb3VwLCBjYWxsYmFjaykKIH0KIAogLyoqCi0gKiBAcGFy
YW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHBheWxvYWQKKyAqIEBwYXJhbSB7UnVudGlt
ZUFnZW50LlJlbW90ZU9iamVjdD19IHBheWxvYWQKICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3R9CiAgKi8KIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQg
PSBmdW5jdGlvbihwYXlsb2FkKQpAQCAtMTYzLDcgKzE2Myw3IEBAIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+KX0gY2Fs
bGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0UHJvcGVydHk+LCBBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5
Pj0pfSBjYWxsYmFjawogICAgICAqLwogICAgIGdldE93blByb3BlcnRpZXM6IGZ1bmN0aW9uKGNh
bGxiYWNrKQogICAgIHsKQEAgLTE3MSw3ICsxNzEsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5j
dGlvbihBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pil9IGNhbGxiYWNr
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dFByb3BlcnR5PiwgQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT49KX0g
Y2FsbGJhY2sKICAgICAgKi8KICAgICBnZXRBbGxQcm9wZXJ0aWVzOiBmdW5jdGlvbihjYWxsYmFj
aykKICAgICB7CkBAIC0xODAsNyArMTgwLDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5w
cm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG93blByb3Bl
cnRpZXMKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxSdW50aW1lQWdlbnQuUmVtb3Rl
T2JqZWN0Pil9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48V2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5PiwgQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3RQcm9wZXJ0eT49KX0gY2FsbGJhY2sKICAgICAgKi8KICAgICBfZ2V0UHJvcGVydGllczog
ZnVuY3Rpb24ob3duUHJvcGVydGllcywgY2FsbGJhY2spCiAgICAgewpAQCAtMTkxLDkgKzE5MSwx
MCBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKIAogICAgICAgICAv
KioKICAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9yCi0gICAgICAgICAq
IEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT59IHByb3Bl
cnRpZXMKKyAgICAgICAgICogQHBhcmFtIHtBcnJheS48UnVudGltZUFnZW50LlByb3BlcnR5RGVz
Y3JpcHRvcj59IHByb3BlcnRpZXMKKyAgICAgICAgICogQHBhcmFtIHtBcnJheS48UnVudGltZUFn
ZW50LkludGVybmFsUHJvcGVydHlEZXNjcmlwdG9yPj19IGludGVybmFsUHJvcGVydGllcwogICAg
ICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0QmluZGVyKGVycm9yLCBwcm9w
ZXJ0aWVzKQorICAgICAgICBmdW5jdGlvbiByZW1vdGVPYmplY3RCaW5kZXIoZXJyb3IsIHByb3Bl
cnRpZXMsIGludGVybmFsUHJvcGVydGllcykKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGVy
cm9yKSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CkBAIC0yMTAsNyArMjExLDE1
IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChuZXcgV2ViSW5zcGVj
dG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KHByb3BlcnR5Lm5hbWUsIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QuZnJvbVBheWxvYWQocHJvcGVydHkudmFsdWUpLCBwcm9wZXJ0eSkpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHZhciBp
bnRlcm5hbFByb3BlcnRpZXNSZXN1bHQ7CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxQcm9wZXJ0
aWVzKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxQcm9wZXJ0aWVzUmVzdWx0ID0gW107Cisg
ICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gaW50ZXJuYWxQ
cm9wZXJ0aWVzW2ldOworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNSZXN1
bHQucHVzaChuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KHByb3BlcnR5Lm5h
bWUsIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocHJvcGVydHkudmFsdWUp
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJh
Y2socmVzdWx0LCBpbnRlcm5hbFByb3BlcnRpZXNSZXN1bHQpOwogICAgICAgICB9CiAgICAgICAg
IFJ1bnRpbWVBZ2VudC5nZXRQcm9wZXJ0aWVzKHRoaXMuX29iamVjdElkLCBvd25Qcm9wZXJ0aWVz
LCByZW1vdGVPYmplY3RCaW5kZXIpOwogICAgIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODkxMDEyZDc0YzY1ZjViMWJi
MDE0NGFiZWQ0NmZkMzI3YjdhNWM1Mi4uNTQ2NzMxY2EyNWFmODVlNzBhMzNmOTA0MTE0N2VmMTlj
YzJlZTRlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTEzICBQZXRlciBSeWJpbiAg
PHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hvdyBpbnRl
cm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBuZXcgdGVzdCBpcyBhZGRlZC4gSW5zcGVj
dG9yVGVzdC5kdW1wT2JqZWN0UHJvcGVydHlTZWN0aW9uRGVlcCBmdW5jdGlvbiBpcyBhZGRlZC4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6CisgICAg
ICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3QuZHVtcE9iamVjdFByb3Bl
cnR5U2VjdGlvbkRlZXApOgorICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0
b3JUZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNlY3Rpb25EZWVwLmR1bXBUcmVlRWxlbWVudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNp
YWwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTEx
LTEzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEuY29zdGFAaW50ZWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVwZGF0ZSBleHBlY3RhdGlvbnMgYWZ0ZXIgcjEz
NDM0NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10
ZXN0LmpzCmluZGV4IGFkZTVhZTYxMzcxMWQ3YTY4MTUwZDE4MDU3OTU1ZWY5Y2JmMjM2NjMuLjEx
N2M0ZWMzYWM3NGE3N2IxNzEwMDkzN2ZmNGY1MDRmN2QxMWE4ZTYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcwpAQCAtMjYxLDYgKzI2
MSwyOSBAQCBJbnNwZWN0b3JUZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNlY3Rpb24gPSBmdW5jdGlv
bihzZWN0aW9uLCBmb3JtYXR0ZXJzKQogICAgIH0KIH0KIAorSW5zcGVjdG9yVGVzdC5kdW1wT2Jq
ZWN0UHJvcGVydHlTZWN0aW9uRGVlcCA9IGZ1bmN0aW9uKHNlY3Rpb24pCit7CisgICAgZnVuY3Rp
b24gZG9tTm9kZVRvU3RyaW5nKG5vZGUpIHsKKyAgICAgICAgaWYgKG5vZGUpCisgICAgICAgICAg
ICByZXR1cm4gIiciICsgbm9kZS50ZXh0Q29udGVudCArICInIjsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgcmV0dXJuICJudWxsIjsKKyAgICB9CisgICAgZnVuY3Rpb24gZHVtcFRyZWVFbGVt
ZW50UmVjdXJzaXZlbHkodHJlZUVsZW1lbnQsIHByZWZpeCkgeworICAgICAgICBpZiAoIm5hbWVF
bGVtZW50IiBpbiB0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KHByZWZpeCArIGRvbU5vZGVUb1N0cmluZyh0cmVlRWxlbWVudC5uYW1lRWxlbWVudCkgKyAi
ID0+ICIgKyBkb21Ob2RlVG9TdHJpbmcodHJlZUVsZW1lbnQudmFsdWVFbGVtZW50KSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHByZWZpeCArIHRy
ZWVFbGVtZW50LnRpdGxlKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlRWxlbWVu
dC5jaGlsZHJlbi5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGR1bXBUcmVlRWxlbWVudFJlY3Vy
c2l2ZWx5KHRyZWVFbGVtZW50LmNoaWxkcmVuW2ldLCBwcmVmaXggKyAiICAgICIpOworICAgIH0K
KworICAgIHZhciBjaGlsZE5vZGVzID0gc2VjdGlvbi5wcm9wZXJ0aWVzVHJlZU91dGxpbmUuY2hp
bGRyZW47CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgIGR1bXBUcmVlRWxlbWVudFJlY3Vyc2l2ZWx5KGNoaWxkTm9kZXNbaV0sICIiKTsK
KyAgICB9Cit9CisKIC8vIEZJWE1FOiB0aGlzIHJldHVybnMgdGhlIGZpcnN0IHRyZWUgaXRlbSBm
b3VuZCAobWF5IGZhaWwgZm9yIHNhbWUtbmFtZWQgcHJvcGVydGllcyBpbiBhIHN0eWxlKS4KIElu
c3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRlbSA9IGZ1bmN0aW9uKHBy
b3BlcnR5TmFtZSkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9wcm9wZXJ0aWVzLXNwZWNpYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIy
Zjk0ZTFkNTlkNjUxMGZmZGU1ODQzMmEzMzI2ZTI4NjlhNzY4OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMzEgQEAKK1Rlc3RzIGhvdyBkZWJ1Z2dlciBwcmVzZW50cyBzcGVj
aWFsIHByb3BlcnRpZXMgb2YgY2xvc3VyZXMsIGJvdW5kIGZ1bmN0aW9ucyBhbmQgb2JqZWN0IHdy
YXBwZXJzLgorCitEZWJ1Z2dlciB3YXMgZW5hYmxlZC4KK1NjcmlwdCBzb3VyY2Ugd2FzIHNob3du
LgorU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgorV2F0Y2ggZXhwcmVzc2lvbnMgdXBkYXRl
ZC4KK05vZGVzIGFyZSBleHBhbmRlZC4KKydPYmplY3QodHJ1ZSknID0+ICdCb29sZWFuJworICAg
ICdfX3Byb3RvX18nID0+ICdCb29sZWFuJworICAgICdbW1ByaW1pdGl2ZVZhbHVlXV0nID0+ICd0
cnVlJworJyhmdW5jdGlvbihhLGIpIHsgcmV0dXJuIGEgKyBiOyB9KScgPT4gJ2Z1bmN0aW9uIChh
LGIpIHsgcmV0dXJuIGEgKyBiOyB9JworICAgICdhcmd1bWVudHMnID0+ICdudWxsJworICAgICdj
YWxsZXInID0+ICdudWxsJworICAgICdsZW5ndGgnID0+ICcyJworICAgICduYW1lJyA9PiAnIiIn
CisgICAgJ3Byb3RvdHlwZScgPT4gJ09iamVjdCcKKyAgICAnX19wcm90b19fJyA9PiAnZnVuY3Rp
b24gRW1wdHkoKSB7fScKKyAgICA8ZnVuY3Rpb24gc2NvcGU+CisnKGZ1bmN0aW9uKGEsYikgeyBy
ZXR1cm4gYSArIGI7IH0pLmJpbmQoe30sIDIpJyA9PiAnZnVuY3Rpb24gKCkgeyBbbmF0aXZlIGNv
ZGVdIH0nCisgICAgJ2dldCBhcmd1bWVudHMnID0+ICdmdW5jdGlvbiBUaHJvd1R5cGVFcnJvcigp
IHsgW25hdGl2ZSBjb2RlXSB9JworICAgICdnZXQgY2FsbGVyJyA9PiAnZnVuY3Rpb24gVGhyb3dU
eXBlRXJyb3IoKSB7IFtuYXRpdmUgY29kZV0gfScKKyAgICAnbGVuZ3RoJyA9PiAnMScKKyAgICAn
bmFtZScgPT4gJyIiJworICAgICdzZXQgYXJndW1lbnRzJyA9PiAnZnVuY3Rpb24gVGhyb3dUeXBl
RXJyb3IoKSB7IFtuYXRpdmUgY29kZV0gfScKKyAgICAnc2V0IGNhbGxlcicgPT4gJ2Z1bmN0aW9u
IFRocm93VHlwZUVycm9yKCkgeyBbbmF0aXZlIGNvZGVdIH0nCisgICAgJ19fcHJvdG9fXycgPT4g
J2Z1bmN0aW9uIEVtcHR5KCkge30nCisgICAgJ1tbVGFyZ2V0RnVuY3Rpb25dXScgPT4gJ2Z1bmN0
aW9uIChhLGIpIHsgcmV0dXJuIGEgKyBiOyB9JworICAgICdbW0JvdW5kVGhpc11dJyA9PiAnT2Jq
ZWN0JworICAgICdbW0JvdW5kQXJnc11dJyA9PiAnQXJyYXlbMV0nCitEZWJ1Z2dlciB3YXMgZGlz
YWJsZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9w
ZXJ0aWVzLXNwZWNpYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9w
ZXJ0aWVzLXNwZWNpYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWYyN2JiZmI3Zjc2MmM1MWNhYmQ3N2I5
NjI2NGI4YjU5ZWY0YjM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sCkBAIC0wLDAgKzEsNzggQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIHRlc3RGdW5jdGlvbigpCit7CisgICAgdmFyIHggPSBNYXRoLnNxcnQoMTApOwor
ICAgIHJldHVybiB4OworfQorCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBJbnNwZWN0
b3JUZXN0LnNldFF1aWV0KHRydWUpOworICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRl
c3Qoc3RlcDEpOworCisgICAgdmFyIGN1cnJlbnRTb3VyY2VGcmFtZTsKKyAgICB2YXIgd2F0Y2hF
eHByZXNzaW9uc1NlY3Rpb247CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAg
ICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0cyBwYW5lbCBzbyB0aGF0IHdhdGNoIGV4
cHJlc3Npb25zIHNlY3Rpb24gaXMgY3JlYXRlZC4KKyAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQ
YW5lbCgic2NyaXB0cyIpOworCisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0gV2Vi
SW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnNl
Y3Rpb247CisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMg
PSBbXTsKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5w
dXNoKCJPYmplY3QodHJ1ZSkiKTsKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0
Y2hFeHByZXNzaW9ucy5wdXNoKCIoZnVuY3Rpb24oYSxiKSB7IHJldHVybiBhICsgYjsgfSkiKTsK
KyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCIo
ZnVuY3Rpb24oYSxiKSB7IHJldHVybiBhICsgYjsgfSkuYmluZCh7fSwgMikiKTsKKyAgICAgICAg
d2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24udXBkYXRlKCk7CisKKyAgICAgICAgdmFyIHRlc3ROYW1l
ID0gV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkw7CisgICAgICAgIHRlc3ROYW1lID0gdGVz
dE5hbWUuc3Vic3RyaW5nKHRlc3ROYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKHRlc3ROYW1lLCBkaWRTaG93U2NyaXB0U291
cmNlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZy
YW1lKQorICAgIHsKKyAgICAgICAgY3VycmVudFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JpcHQgc291cmNlIHdhcyBzaG93bi4i
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KGN1cnJlbnRTb3VyY2VGcmFt
ZSwgOSwgIiIsIHRydWUpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5z
cGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3RvdHlwZSwgInVwZGF0ZSIsIHdhdGNo
RXhwcmVzc2lvbnNVcGRhdGVkKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rp
b25BbmRXYWl0VW50aWxQYXVzZWQoZGlkUGF1c2VkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBk
aWRQYXVzZWQoY2FsbEZyYW1lcykKKyAgICB7CisgICAgfQorCisgICAgZnVuY3Rpb24gd2F0Y2hF
eHByZXNzaW9uc1VwZGF0ZWQoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIldhdGNoIGV4cHJlc3Npb25zIHVwZGF0ZWQuIik7CisgICAgICAgIHZhciB0cmVlTm9kZXMg
PSB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi5wcm9wZXJ0aWVzVHJlZU91dGxpbmUuY2hpbGRyZW47
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJlZU5vZGVzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICB0cmVlTm9kZXNbaV0uZXhwYW5kKCk7CisgICAgICAgIH0KKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKG5vZGVzRXhwYW5kZWQpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIG5vZGVzRXhwYW5kZWQoKSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJOb2RlcyBhcmUgZXhwYW5kZWQuIik7CisgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcE9iamVjdFByb3BlcnR5U2VjdGlvbkRlZXAod2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24p
OworCisgICAgICAgIC8vIENsZWFyIHdhdGNoIGV4cHJlc3Npb25zIGFmdGVyIGV4ZWN1dGlvbi4K
KyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwor
ICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUoKTsKKworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7CisgICAgfQorfQorCis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIGhvdyBkZWJ1Z2dl
ciBwcmVzZW50cyBzcGVjaWFsIHByb3BlcnRpZXMgb2YgY2xvc3VyZXMsIGJvdW5kIGZ1bmN0aW9u
cyBhbmQgb2JqZWN0IHdyYXBwZXJzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0
aWVzLXNwZWNpYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
aW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGIyZjk0ZTFkNTlkNjUxMGZmZGU1ODQzMmEzMzI2ZTI4NjlhNzY4OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9kZWJ1Z2dl
ci9wcm9wZXJ0aWVzLXNwZWNpYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzEgQEAKK1Rlc3Rz
IGhvdyBkZWJ1Z2dlciBwcmVzZW50cyBzcGVjaWFsIHByb3BlcnRpZXMgb2YgY2xvc3VyZXMsIGJv
dW5kIGZ1bmN0aW9ucyBhbmQgb2JqZWN0IHdyYXBwZXJzLgorCitEZWJ1Z2dlciB3YXMgZW5hYmxl
ZC4KK1NjcmlwdCBzb3VyY2Ugd2FzIHNob3duLgorU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9u
LgorV2F0Y2ggZXhwcmVzc2lvbnMgdXBkYXRlZC4KK05vZGVzIGFyZSBleHBhbmRlZC4KKydPYmpl
Y3QodHJ1ZSknID0+ICdCb29sZWFuJworICAgICdfX3Byb3RvX18nID0+ICdCb29sZWFuJworICAg
ICdbW1ByaW1pdGl2ZVZhbHVlXV0nID0+ICd0cnVlJworJyhmdW5jdGlvbihhLGIpIHsgcmV0dXJu
IGEgKyBiOyB9KScgPT4gJ2Z1bmN0aW9uIChhLGIpIHsgcmV0dXJuIGEgKyBiOyB9JworICAgICdh
cmd1bWVudHMnID0+ICdudWxsJworICAgICdjYWxsZXInID0+ICdudWxsJworICAgICdsZW5ndGgn
ID0+ICcyJworICAgICduYW1lJyA9PiAnIiInCisgICAgJ3Byb3RvdHlwZScgPT4gJ09iamVjdCcK
KyAgICAnX19wcm90b19fJyA9PiAnZnVuY3Rpb24gRW1wdHkoKSB7fScKKyAgICA8ZnVuY3Rpb24g
c2NvcGU+CisnKGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0pLmJpbmQoe30sIDIpJyA9
PiAnZnVuY3Rpb24gKCkgeyBbbmF0aXZlIGNvZGVdIH0nCisgICAgJ2dldCBhcmd1bWVudHMnID0+
ICdmdW5jdGlvbiBUaHJvd1R5cGVFcnJvcigpIHsgW25hdGl2ZSBjb2RlXSB9JworICAgICdnZXQg
Y2FsbGVyJyA9PiAnZnVuY3Rpb24gVGhyb3dUeXBlRXJyb3IoKSB7IFtuYXRpdmUgY29kZV0gfScK
KyAgICAnbGVuZ3RoJyA9PiAnMScKKyAgICAnbmFtZScgPT4gJyIiJworICAgICdzZXQgYXJndW1l
bnRzJyA9PiAnZnVuY3Rpb24gVGhyb3dUeXBlRXJyb3IoKSB7IFtuYXRpdmUgY29kZV0gfScKKyAg
ICAnc2V0IGNhbGxlcicgPT4gJ2Z1bmN0aW9uIFRocm93VHlwZUVycm9yKCkgeyBbbmF0aXZlIGNv
ZGVdIH0nCisgICAgJ19fcHJvdG9fXycgPT4gJ2Z1bmN0aW9uIEVtcHR5KCkge30nCisgICAgJ1tb
VGFyZ2V0RnVuY3Rpb25dXScgPT4gJ2Z1bmN0aW9uIChhLGIpIHsgcmV0dXJuIGEgKyBiOyB9Jwor
ICAgICdbW0JvdW5kVGhpc11dJyA9PiAnT2JqZWN0JworICAgICdbW0JvdW5kQXJnc11dJyA9PiAn
QXJyYXlbMV0nCitEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174458</attachid>
            <date>2012-11-15 08:52:50 -0800</date>
            <delta_ts>2012-11-16 01:07:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100021-20121115205047.patch</filename>
            <type>text/plain</type>
            <size>16304</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiMmRmNWU4NjNmNGEy
YjVmYjEzN2VmZDZjZjc4ZjY5NjUwMGVmZi4uYTE2OGRiZTFiNDc5MzA3NGQ4YjAwYzE4NmZmZTYx
YjY2MDgxNWZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTExLTE0ICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2hvdyBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGZpZWxkICdpbnRlcm5h
bFByb3BlcnRpZXMnIGlzIHBhcnNlZCBhbmQgcGFzc2VkIHZpYSBhbGwgY2FsbGJhY2tzIHRvIE9i
amVjdCBQcm9wZXJ0aWVzIHNlY3Rpb24uCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVn
Z2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9i
amVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZS51cGRhdGUuY2FsbGJhY2spOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZS51cGRhdGUp
OgorICAgICAgICAoLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9w
ZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlKToKKyAgICAgICAgKC5wcm9jZXNzUHJvcGVydGllcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0
ZUFzRnJhZ21lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFycmF5R3JvdXBpbmdUcmVlRWxl
bWVudC5fcG9wdWxhdGVOb25JbmRleFByb3BlcnRpZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5wcm90b3R5cGUuc2V0IGVsc2UpOgorCiAyMDEyLTExLTE0ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTM0NTIzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKaW5kZXggNDllZmVkOGIxNDBh
NWM1MWE5ZWM4NGM0MjI3NDc1YzYyNWU1YzE3ZC4uMzg2NjkwODM0YzcyM2ZkYjM5Njk1MmZmZDJm
NDc5OWE1NjFiOTJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCkBAIC03Niw3ICs3Niw3
IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
ayhwcm9wZXJ0aWVzKQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhwcm9wZXJ0aWVzLCBpbnRl
cm5hbFByb3BlcnRpZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC00MjgsNyArNDI4LDExIEBAIFdlYkluc3BlY3Rv
ci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnBvcHVsYXRlID0gZnVuY3Rpb24odHJlZUVsZW1l
bnQsIHZhbHVlKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBjYWxs
YmFjayhwcm9wZXJ0aWVzKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT59IHByb3BlcnRpZXMKKyAgICAgKiBAcGFyYW0ge0Fy
cmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+PX0gaW50ZXJuYWxQcm9wZXJ0
aWVzCisgICAgICovCisgICAgZnVuY3Rpb24gY2FsbGJhY2socHJvcGVydGllcywgaW50ZXJuYWxQ
cm9wZXJ0aWVzKQogICAgIHsKICAgICAgICAgdHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsK
ICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKQpAQCAtNDQxLDggKzQ0NSwyOSBAQCBXZWJJbnNwZWN0
b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wb3B1bGF0ZSA9IGZ1bmN0aW9uKHRyZWVFbGVt
ZW50LCB2YWx1ZSkgewogICAgICAgICAgICAgcHJvcGVydGllc1tpXS5wYXJlbnRPYmplY3QgPSB2
YWx1ZTsKICAgICAgICAgICAgIHRyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyB0cmVlRWxlbWVu
dC50cmVlT3V0bGluZS5zZWN0aW9uLnRyZWVFbGVtZW50Q29uc3RydWN0b3IocHJvcGVydGllc1tp
XSkpOwogICAgICAgICB9Ci0gICAgICAgIGlmICh2YWx1ZS50eXBlID09PSAiZnVuY3Rpb24iKQot
ICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5GdW5j
dGlvblNjb3BlTWFpblRyZWVFbGVtZW50KHZhbHVlKSk7CisgICAgICAgIGlmICh2YWx1ZS50eXBl
ID09PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAgICAvLyBXaGV0aGVyIGZ1bmN0aW9uIGhhcyBU
YXJnZXRGdW5jdGlvbiBpbnRlcm5hbCBwcm9wZXJ0eS4KKyAgICAgICAgICAgIC8vIFRoaXMgaXMg
YSBzaW1wbGUgd2F5IHRvIHRlbGwgdGhhdCB0aGUgZnVuY3Rpb24gaXMgYWN0dWFsbHkgYSBib3Vu
ZCBmdW5jdGlvbiAod2UgYXJlIG5vdCB0b2xkKS4KKyAgICAgICAgICAgIC8vIEJvdW5kIGZ1bmN0
aW9uIG5ldmVyIGhhcyBpbm5lciBzY29wZSBhbmQgZG9lc24ndCBuZWVkIGNvcnJlc3BvbmRpbmcg
VUkgbm9kZS4gICAKKyAgICAgICAgICAgIHZhciBoYXNUYXJnZXRGdW5jdGlvbiA9IGZhbHNlOwor
CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGllc1tpXS5uYW1lID09ICJbW1Rh
cmdldEZ1bmN0aW9uXV0iKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNUYXJnZXRGdW5j
dGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmICghaGFzVGFyZ2V0RnVuY3Rpb24pCisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5GdW5jdGlvblNjb3BlTWFpblRyZWVFbGVtZW50KHZh
bHVlKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGllcykgeworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNbaV0ucGFyZW50T2JqZWN0
ID0gdmFsdWU7CisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IHRy
ZWVFbGVtZW50LnRyZWVPdXRsaW5lLnNlY3Rpb24udHJlZUVsZW1lbnRDb25zdHJ1Y3RvcihpbnRl
cm5hbFByb3BlcnRpZXNbaV0pKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KICAgICB9CiAK
ICAgICB2YWx1ZS5nZXRPd25Qcm9wZXJ0aWVzKGNhbGxiYWNrKTsKQEAgLTY4OCw3ICs3MTMsNyBA
QCBXZWJJbnNwZWN0b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0ZUFzRnJhZ21l
bnQgPSBmdW5jdGlvbih0cmVlRWxlbWVudAogICAgIH0KIAogICAgIC8qKiBAdGhpcyB7V2ViSW5z
cGVjdG9yLkFycmF5R3JvdXBpbmdUcmVlRWxlbWVudH0gKi8KLSAgICBmdW5jdGlvbiBwcm9jZXNz
UHJvcGVydGllcyhwcm9wZXJ0aWVzKQorICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHBy
b3BlcnRpZXMsIGludGVybmFsUHJvcGVydGllcykKICAgICB7CiAgICAgICAgIGlmICghcHJvcGVy
dGllcykKICAgICAgICAgICAgIHJldHVybjsKQEAgLTczMyw3ICs3NTgsNyBAQCBXZWJJbnNwZWN0
b3IuQXJyYXlHcm91cGluZ1RyZWVFbGVtZW50Ll9wb3B1bGF0ZU5vbkluZGV4UHJvcGVydGllcyA9
IGZ1bmN0aW9uKHRyZQogICAgIH0KIAogICAgIC8qKiBAdGhpcyB7V2ViSW5zcGVjdG9yLkFycmF5
R3JvdXBpbmdUcmVlRWxlbWVudH0gKi8KLSAgICBmdW5jdGlvbiBwcm9jZXNzUHJvcGVydGllcyhw
cm9wZXJ0aWVzKQorICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIGlu
dGVybmFsUHJvcGVydGllcykKICAgICB7CiAgICAgICAgIGlmICghcHJvcGVydGllcykKICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZW1vdGVPYmplY3QuanMKaW5kZXggYmUzYzkxYTliYTFmMzc4OWQ0OTMwMDkxZjBkNzBkMmUx
NjcwNGRkYy4uM2YwODBiMzUyMTQ0ZmU5ZGQ0ODliYzBmN2E2NmYyOTZhYTg0ZTU2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
QEAgLTk5LDcgKzk5LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZSA9
IGZ1bmN0aW9uKG5vZGUsIG9iamVjdEdyb3VwLCBjYWxsYmFjaykKIH0KIAogLyoqCi0gKiBAcGFy
YW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHBheWxvYWQKKyAqIEBwYXJhbSB7UnVudGlt
ZUFnZW50LlJlbW90ZU9iamVjdD19IHBheWxvYWQKICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3R9CiAgKi8KIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQg
PSBmdW5jdGlvbihwYXlsb2FkKQpAQCAtMTYzLDcgKzE2Myw3IEBAIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHk+KX0gY2Fs
bGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0UHJvcGVydHk+LCBBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5
Pj0pfSBjYWxsYmFjawogICAgICAqLwogICAgIGdldE93blByb3BlcnRpZXM6IGZ1bmN0aW9uKGNh
bGxiYWNrKQogICAgIHsKQEAgLTE3MSw3ICsxNzEsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5j
dGlvbihBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5Pil9IGNhbGxiYWNr
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dFByb3BlcnR5PiwgQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT49KX0g
Y2FsbGJhY2sKICAgICAgKi8KICAgICBnZXRBbGxQcm9wZXJ0aWVzOiBmdW5jdGlvbihjYWxsYmFj
aykKICAgICB7CkBAIC0xODAsNyArMTgwLDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5w
cm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG93blByb3Bl
cnRpZXMKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxSdW50aW1lQWdlbnQuUmVtb3Rl
T2JqZWN0Pil9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihBcnJheS48V2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5PiwgQXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3RQcm9wZXJ0eT49KX0gY2FsbGJhY2sKICAgICAgKi8KICAgICBfZ2V0UHJvcGVydGllczog
ZnVuY3Rpb24ob3duUHJvcGVydGllcywgY2FsbGJhY2spCiAgICAgewpAQCAtMTkxLDkgKzE5MSwx
MCBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKIAogICAgICAgICAv
KioKICAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9yCi0gICAgICAgICAq
IEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eT59IHByb3Bl
cnRpZXMKKyAgICAgICAgICogQHBhcmFtIHtBcnJheS48UnVudGltZUFnZW50LlByb3BlcnR5RGVz
Y3JpcHRvcj59IHByb3BlcnRpZXMKKyAgICAgICAgICogQHBhcmFtIHtBcnJheS48UnVudGltZUFn
ZW50LkludGVybmFsUHJvcGVydHlEZXNjcmlwdG9yPj19IGludGVybmFsUHJvcGVydGllcwogICAg
ICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0QmluZGVyKGVycm9yLCBwcm9w
ZXJ0aWVzKQorICAgICAgICBmdW5jdGlvbiByZW1vdGVPYmplY3RCaW5kZXIoZXJyb3IsIHByb3Bl
cnRpZXMsIGludGVybmFsUHJvcGVydGllcykKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGVy
cm9yKSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CkBAIC0yMTAsNyArMjExLDE1
IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChuZXcgV2ViSW5zcGVj
dG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KHByb3BlcnR5Lm5hbWUsIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QuZnJvbVBheWxvYWQocHJvcGVydHkudmFsdWUpLCBwcm9wZXJ0eSkpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHZhciBp
bnRlcm5hbFByb3BlcnRpZXNSZXN1bHQ7CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxQcm9wZXJ0
aWVzKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxQcm9wZXJ0aWVzUmVzdWx0ID0gW107Cisg
ICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gaW50ZXJuYWxQ
cm9wZXJ0aWVzW2ldOworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRpZXNSZXN1
bHQucHVzaChuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KHByb3BlcnR5Lm5h
bWUsIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocHJvcGVydHkudmFsdWUp
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJh
Y2socmVzdWx0LCBpbnRlcm5hbFByb3BlcnRpZXNSZXN1bHQpOwogICAgICAgICB9CiAgICAgICAg
IFJ1bnRpbWVBZ2VudC5nZXRQcm9wZXJ0aWVzKHRoaXMuX29iamVjdElkLCBvd25Qcm9wZXJ0aWVz
LCByZW1vdGVPYmplY3RCaW5kZXIpOwogICAgIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjNhOTIyNTRlZmYwOWM0NTFi
ZWM0ZTAyZThlYTdhNWZhOTdiNmFjMS4uMzAzMmE3ZWVmZmRiNjMxOThkNGFhM2U1OWY5MzFjZWY5
ZDI5YTM2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTE0ICBQZXRlciBSeWJpbiAg
PHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hvdyBpbnRl
cm5hbCBwcm9wZXJ0aWVzIGluIGluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDIxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBuZXcgdGVzdCBpcyBhZGRlZC4gSW5zcGVj
dG9yVGVzdC5kdW1wT2JqZWN0UHJvcGVydHlTZWN0aW9uRGVlcCBmdW5jdGlvbiBpcyBhZGRlZC4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6CisgICAg
ICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3QuZHVtcE9iamVjdFByb3Bl
cnR5U2VjdGlvbkRlZXApOgorICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0
b3JUZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNlY3Rpb25EZWVwLmR1bXBUcmVlRWxlbWVudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNp
YWwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTEx
LTE0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkIHRlc3QgZml4IGZvciByMTM0NTkzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKaW5kZXggYWRlNWFlNjEzNzExZDdhNjgx
NTBkMTgwNTc5NTVlZjljYmYyMzY2My4uMTE3YzRlYzNhYzc0YTc3YjE3MTAwOTM3ZmY0ZjUwNGY3
ZDExYThlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy10ZXN0LmpzCkBAIC0yNjEsNiArMjYxLDI5IEBAIEluc3BlY3RvclRlc3QuZHVtcE9iamVj
dFByb3BlcnR5U2VjdGlvbiA9IGZ1bmN0aW9uKHNlY3Rpb24sIGZvcm1hdHRlcnMpCiAgICAgfQog
fQogCitJbnNwZWN0b3JUZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNlY3Rpb25EZWVwID0gZnVuY3Rp
b24oc2VjdGlvbikKK3sKKyAgICBmdW5jdGlvbiBkb21Ob2RlVG9TdHJpbmcobm9kZSkgeworICAg
ICAgICBpZiAobm9kZSkKKyAgICAgICAgICAgIHJldHVybiAiJyIgKyBub2RlLnRleHRDb250ZW50
ICsgIiciOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gIm51bGwiOworICAgIH0K
KyAgICBmdW5jdGlvbiBkdW1wVHJlZUVsZW1lbnRSZWN1cnNpdmVseSh0cmVlRWxlbWVudCwgcHJl
Zml4KSB7CisgICAgICAgIGlmICgibmFtZUVsZW1lbnQiIGluIHRyZWVFbGVtZW50KQorICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4ICsgZG9tTm9kZVRvU3RyaW5nKHRy
ZWVFbGVtZW50Lm5hbWVFbGVtZW50KSArICIgPT4gIiArIGRvbU5vZGVUb1N0cmluZyh0cmVlRWxl
bWVudC52YWx1ZUVsZW1lbnQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQocHJlZml4ICsgdHJlZUVsZW1lbnQudGl0bGUpOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHRyZWVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsgaSsrKQorICAgICAg
ICAgICAgZHVtcFRyZWVFbGVtZW50UmVjdXJzaXZlbHkodHJlZUVsZW1lbnQuY2hpbGRyZW5baV0s
IHByZWZpeCArICIgICAgIik7CisgICAgfQorCisgICAgdmFyIGNoaWxkTm9kZXMgPSBzZWN0aW9u
LnByb3BlcnRpZXNUcmVlT3V0bGluZS5jaGlsZHJlbjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgZHVtcFRyZWVFbGVtZW50UmVjdXJz
aXZlbHkoY2hpbGROb2Rlc1tpXSwgIiIpOworICAgIH0KK30KKwogLy8gRklYTUU6IHRoaXMgcmV0
dXJucyB0aGUgZmlyc3QgdHJlZSBpdGVtIGZvdW5kIChtYXkgZmFpbCBmb3Igc2FtZS1uYW1lZCBw
cm9wZXJ0aWVzIGluIGEgc3R5bGUpLgogSW5zcGVjdG9yVGVzdC5nZXRFbGVtZW50U3R5bGVQcm9w
ZXJ0eVRyZWVJdGVtID0gZnVuY3Rpb24ocHJvcGVydHlOYW1lKQogewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGllcy1zcGVjaWFsLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjM5NTdlYWY4ZWMxMTY2YWRkZWNlZTUyMzJjZWI2ODdm
ODY2YmI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGVzdHMg
aG93IGRlYnVnZ2VyIHByZXNlbnRzIHNwZWNpYWwgcHJvcGVydGllcyBvZiBjbG9zdXJlcywgYm91
bmQgZnVuY3Rpb25zIGFuZCBvYmplY3Qgd3JhcHBlcnMuCisKK0RlYnVnZ2VyIHdhcyBlbmFibGVk
LgorU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uCitTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24u
CitXYXRjaCBleHByZXNzaW9ucyB1cGRhdGVkLgorTm9kZXMgYXJlIGV4cGFuZGVkLgorJ09iamVj
dCh0cnVlKScgPT4gJ0Jvb2xlYW4nCisgICAgJ19fcHJvdG9fXycgPT4gJ0Jvb2xlYW4nCisnKGZ1
bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0pJyA9PiAnZnVuY3Rpb24gKGEsIGIpIHsgcmV0
dXJuIGEgKyBiOyB9JworICAgICdhcmd1bWVudHMnID0+ICdudWxsJworICAgICdjYWxsZXInID0+
ICdudWxsJworICAgICdsZW5ndGgnID0+ICcyJworICAgICduYW1lJyA9PiAnIiInCisgICAgJ3By
b3RvdHlwZScgPT4gJ09iamVjdCcKKyAgICAnX19wcm90b19fJyA9PiAnZnVuY3Rpb24gKCkgeycK
KyAgICA8ZnVuY3Rpb24gc2NvcGU+CisnKGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0p
LmJpbmQoe30sIDIpJyA9PiAnZnVuY3Rpb24gKCkgeycKKyAgICAnZ2V0IGFyZ3VtZW50cycgPT4g
J2Z1bmN0aW9uICgpIHsnCisgICAgJ2dldCBjYWxsZXInID0+ICdmdW5jdGlvbiAoKSB7JworICAg
ICdsZW5ndGgnID0+ICcxJworICAgICduYW1lJyA9PiAnIiInCisgICAgJ3NldCBhcmd1bWVudHMn
ID0+ICdmdW5jdGlvbiAoKSB7JworICAgICdzZXQgY2FsbGVyJyA9PiAnZnVuY3Rpb24gKCkgeycK
KyAgICAnX19wcm90b19fJyA9PiAnZnVuY3Rpb24gKCkgeycKKyAgICA8ZnVuY3Rpb24gc2NvcGU+
CitEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWQzNmVj
NDgyYmFiZmNlN2RlOGIyZTljMzQ4OTg3ZTE2YWFjOGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sCkBAIC0w
LDAgKzEsNzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RGdW5jdGlvbigpCit7CisgICAgdmFyIHgg
PSBNYXRoLnNxcnQoMTApOworICAgIHJldHVybiB4OworfQorCit2YXIgdGVzdCA9IGZ1bmN0aW9u
KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnNldFF1aWV0KHRydWUpOworICAgIEluc3BlY3RvclRl
c3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOworCisgICAgdmFyIGN1cnJlbnRTb3VyY2VGcmFt
ZTsKKyAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb247CisKKyAgICBmdW5jdGlvbiBzdGVw
MSgpCisgICAgeworICAgICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0cyBwYW5l
bCBzbyB0aGF0IHdhdGNoIGV4cHJlc3Npb25zIHNlY3Rpb24gaXMgY3JlYXRlZC4KKyAgICAgICAg
V2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOworCisgICAgICAgIHdhdGNoRXhwcmVz
c2lvbnNTZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53
YXRjaEV4cHJlc3Npb25zLnNlY3Rpb247CisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
LndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24u
d2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJPYmplY3QodHJ1ZSkiKTsKKyAgICAgICAgd2F0Y2hFeHBy
ZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCIoZnVuY3Rpb24oYSxiKSB7IHJl
dHVybiBhICsgYjsgfSkiKTsKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hF
eHByZXNzaW9ucy5wdXNoKCIoZnVuY3Rpb24oYSxiKSB7IHJldHVybiBhICsgYjsgfSkuYmluZCh7
fSwgMikiKTsKKyAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24udXBkYXRlKCk7CisKKyAg
ICAgICAgdmFyIHRlc3ROYW1lID0gV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkw7CisgICAg
ICAgIHRlc3ROYW1lID0gdGVzdE5hbWUuc3Vic3RyaW5nKHRlc3ROYW1lLmxhc3RJbmRleE9mKCcv
JykgKyAxKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKHRlc3ROYW1l
LCBkaWRTaG93U2NyaXB0U291cmNlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkaWRTaG93U2Ny
aXB0U291cmNlKHNvdXJjZUZyYW1lKQorICAgIHsKKyAgICAgICAgY3VycmVudFNvdXJjZUZyYW1l
ID0gc291cmNlRnJhbWU7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JpcHQg
c291cmNlIHdhcyBzaG93bi4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50
KGN1cnJlbnRTb3VyY2VGcmFtZSwgOSwgIiIsIHRydWUpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3RvdHlw
ZSwgInVwZGF0ZSIsIHdhdGNoRXhwcmVzc2lvbnNVcGRhdGVkKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoZGlkUGF1c2VkKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBkaWRQYXVzZWQoY2FsbEZyYW1lcykKKyAgICB7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gd2F0Y2hFeHByZXNzaW9uc1VwZGF0ZWQoKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIldhdGNoIGV4cHJlc3Npb25zIHVwZGF0ZWQuIik7CisgICAg
ICAgIHZhciB0cmVlTm9kZXMgPSB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi5wcm9wZXJ0aWVzVHJl
ZU91dGxpbmUuY2hpbGRyZW47CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJlZU5vZGVz
Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0cmVlTm9kZXNbaV0uZXhwYW5kKCk7CisgICAg
ICAgIH0KKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKG5v
ZGVzRXhwYW5kZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5vZGVzRXhwYW5kZWQoKQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5vZGVzIGFyZSBleHBhbmRlZC4i
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wT2JqZWN0UHJvcGVydHlTZWN0aW9uRGVlcCh3
YXRjaEV4cHJlc3Npb25zU2VjdGlvbik7CisKKyAgICAgICAgLy8gQ2xlYXIgd2F0Y2ggZXhwcmVz
c2lvbnMgYWZ0ZXIgZXhlY3V0aW9uLgorICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53
YXRjaEV4cHJlc3Npb25zID0gW107CisgICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnVw
ZGF0ZSgpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsK
KyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPHA+VGVzdHMgaG93IGRlYnVnZ2VyIHByZXNlbnRzIHNwZWNpYWwgcHJvcGVydGllcyBvZiBj
bG9zdXJlcywgYm91bmQgZnVuY3Rpb25zIGFuZCBvYmplY3Qgd3JhcHBlcnMuPC9wPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5z
cGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGllcy1zcGVj
aWFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjJmOTRlMWQ1OWQ2NTEwZmZkZTU4NDMyYTMz
MjZlMjg2OWE3Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzMSBAQAorVGVzdHMgaG93IGRlYnVnZ2VyIHByZXNlbnRzIHNwZWNpYWwgcHJv
cGVydGllcyBvZiBjbG9zdXJlcywgYm91bmQgZnVuY3Rpb25zIGFuZCBvYmplY3Qgd3JhcHBlcnMu
CisKK0RlYnVnZ2VyIHdhcyBlbmFibGVkLgorU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uCitTZXQg
dGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCitXYXRjaCBleHByZXNzaW9ucyB1cGRhdGVkLgorTm9k
ZXMgYXJlIGV4cGFuZGVkLgorJ09iamVjdCh0cnVlKScgPT4gJ0Jvb2xlYW4nCisgICAgJ19fcHJv
dG9fXycgPT4gJ0Jvb2xlYW4nCisgICAgJ1tbUHJpbWl0aXZlVmFsdWVdXScgPT4gJ3RydWUnCisn
KGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0pJyA9PiAnZnVuY3Rpb24gKGEsYikgeyBy
ZXR1cm4gYSArIGI7IH0nCisgICAgJ2FyZ3VtZW50cycgPT4gJ251bGwnCisgICAgJ2NhbGxlcicg
PT4gJ251bGwnCisgICAgJ2xlbmd0aCcgPT4gJzInCisgICAgJ25hbWUnID0+ICciIicKKyAgICAn
cHJvdG90eXBlJyA9PiAnT2JqZWN0JworICAgICdfX3Byb3RvX18nID0+ICdmdW5jdGlvbiBFbXB0
eSgpIHt9JworICAgIDxmdW5jdGlvbiBzY29wZT4KKycoZnVuY3Rpb24oYSxiKSB7IHJldHVybiBh
ICsgYjsgfSkuYmluZCh7fSwgMiknID0+ICdmdW5jdGlvbiAoKSB7IFtuYXRpdmUgY29kZV0gfScK
KyAgICAnZ2V0IGFyZ3VtZW50cycgPT4gJ2Z1bmN0aW9uIFRocm93VHlwZUVycm9yKCkgeyBbbmF0
aXZlIGNvZGVdIH0nCisgICAgJ2dldCBjYWxsZXInID0+ICdmdW5jdGlvbiBUaHJvd1R5cGVFcnJv
cigpIHsgW25hdGl2ZSBjb2RlXSB9JworICAgICdsZW5ndGgnID0+ICcxJworICAgICduYW1lJyA9
PiAnIiInCisgICAgJ3NldCBhcmd1bWVudHMnID0+ICdmdW5jdGlvbiBUaHJvd1R5cGVFcnJvcigp
IHsgW25hdGl2ZSBjb2RlXSB9JworICAgICdzZXQgY2FsbGVyJyA9PiAnZnVuY3Rpb24gVGhyb3dU
eXBlRXJyb3IoKSB7IFtuYXRpdmUgY29kZV0gfScKKyAgICAnX19wcm90b19fJyA9PiAnZnVuY3Rp
b24gRW1wdHkoKSB7fScKKyAgICAnW1tUYXJnZXRGdW5jdGlvbl1dJyA9PiAnZnVuY3Rpb24gKGEs
YikgeyByZXR1cm4gYSArIGI7IH0nCisgICAgJ1tbQm91bmRUaGlzXV0nID0+ICdPYmplY3QnCisg
ICAgJ1tbQm91bmRBcmdzXV0nID0+ICdBcnJheVsxXScKK0RlYnVnZ2VyIHdhcyBkaXNhYmxlZC4K
Kwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>