<?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>87737</bug_id>
          
          <creation_ts>2012-05-29 06:23:03 -0700</creation_ts>
          <short_desc>Web Inspector: draw pie-chart based on memory data received from backend</short_desc>
          <delta_ts>2012-06-01 01:18:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87262</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>635942</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-29 06:23:03 -0700</bug_when>
    <thetext>Profiles view should support drawing pie-charts based on the data received from the inspector memory agent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635949</commentid>
    <comment_count>1</comment_count>
      <attachid>144541</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-29 06:24:58 -0700</bug_when>
    <thetext>Created attachment 144541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635954</commentid>
    <comment_count>2</comment_count>
      <attachid>144543</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-29 06:28:35 -0700</bug_when>
    <thetext>Created attachment 144543
Screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635957</commentid>
    <comment_count>3</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-29 06:32:12 -0700</bug_when>
    <thetext>All this functionality is still experimental.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636359</commentid>
    <comment_count>4</comment_count>
      <attachid>144541</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-29 13:00:21 -0700</bug_when>
    <thetext>Comment on attachment 144541
Patch

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

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:56
&gt; +        this._pieChart.updateSize();

Making chart a view would do this for you automatically.

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:113
&gt; +            profileHeader.memoryBlock = memoryBlock;

Are these public fields on the header? Do they need to be public?

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:186
&gt; +WebInspector.MemoryBlockViewProperties = function(fillStyle, name, description)

Missing constructor annotation.

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:188
&gt; +    this.fillStyle = fillStyle;

Are these all public (i.e. visible outside this file?)

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:193
&gt; +WebInspector._standardMemoryBlocks= null;

Please do not define properties on the global inspector namespace.

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:195
&gt; +WebInspector.MemoryBlockViewProperties.initialize = function()

should be private

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:204
&gt; +    addBlock(&quot;rgba(240, 240, 250, 0.8)&quot;, &quot;ProcessPrivateMemory&quot;, &quot;Total&quot;);

These should be l18n ready for consistency.

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:209
&gt; +WebInspector.MemoryBlockViewProperties.forMemoryBlock = function(memoryBlock)

should be private

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:220
&gt; +WebInspector.NativeMemoryPieChart = function(memorySnapshot)

Missing @constructor declaration. I guess you have not tried compiling it.

&gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:257
&gt; +    paint: function()

I think it makes sense to extract a generic PieChart component.

&gt; Source/WebCore/inspector/front-end/heapProfiler.css:264
&gt; +.memory-pie-chart-container {

Is native memory pie chart a part of the heap profiler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637045</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-30 02:12:02 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 144541 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144541&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:56
&gt; &gt; +        this._pieChart.updateSize();
&gt; 
&gt; Making chart a view would do this for you automatically.
&gt; 
Done.

&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:113
&gt; &gt; +            profileHeader.memoryBlock = memoryBlock;
&gt; 
&gt; Are these public fields on the header? Do they need to be public?
&gt; 
Yes, they are public on the header, isTemporary is declared on the base class.


&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:186
&gt; &gt; +WebInspector.MemoryBlockViewProperties = function(fillStyle, name, description)
&gt; 
&gt; Missing constructor annotation.
&gt; 
Fixed.

&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:188
&gt; &gt; +    this.fillStyle = fillStyle;
&gt; 
&gt; Are these all public (i.e. visible outside this file?)
&gt; 
They are public in this file. And I usually mark such fields as regular
public fields(no _ prefix). This way you can easily see public API of any
class. Another arguable point in marking file-private fields with underscore
is how overridable methods should be named. Do they need to have _ prefix if
they are only overriden in classes in the same file?

Anyways, changed all fields to start with _.

&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:193
&gt; &gt; +WebInspector._standardMemoryBlocks= null;
&gt; 
&gt; Please do not define properties on the global inspector namespace.
&gt; 
Fixed.

&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:195
&gt; &gt; +WebInspector.MemoryBlockViewProperties.initialize = function()
&gt; 
&gt; should be private
&gt; 
Fixed.

&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:204
&gt; &gt; +    addBlock(&quot;rgba(240, 240, 250, 0.8)&quot;, &quot;ProcessPrivateMemory&quot;, &quot;Total&quot;);
&gt; 
&gt; These should be l18n ready for consistency.
&gt; 
Fixed.

&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:209
&gt; &gt; +WebInspector.MemoryBlockViewProperties.forMemoryBlock = function(memoryBlock)
&gt; 
&gt; should be private
&gt; 
Fixed.

&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:220
&gt; &gt; +WebInspector.NativeMemoryPieChart = function(memorySnapshot)
&gt; 
&gt; Missing @constructor declaration. I guess you have not tried compiling it.
&gt; 
Fixed.

&gt; &gt; Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js:257
&gt; &gt; +    paint: function()
&gt; 
&gt; I think it makes sense to extract a generic PieChart component.
&gt; 
It is too early at this stage as it is not clear what the API should look like. We&apos;ll
be able to extract generic functionality later.

&gt; &gt; Source/WebCore/inspector/front-end/heapProfiler.css:264
&gt; &gt; +.memory-pie-chart-container {
&gt; 
&gt; Is native memory pie chart a part of the heap profiler?
It is hard to say. I will move this into nativeMemoryProfiler.css</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637046</commentid>
    <comment_count>6</comment_count>
      <attachid>144758</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-30 02:13:17 -0700</bug_when>
    <thetext>Created attachment 144758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638287</commentid>
    <comment_count>7</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-31 05:43:43 -0700</bug_when>
    <thetext>Seems to me you have to have the same sets in legend and in pie chart.
Looks like the legend has unnecessary item Used Heap size or you has to split JS Heap size to two (used and free) and change the legend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638367</commentid>
    <comment_count>8</comment_count>
      <attachid>145082</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-31 07:01:23 -0700</bug_when>
    <thetext>Created attachment 145082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638369</commentid>
    <comment_count>9</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-31 07:03:40 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Seems to me you have to have the same sets in legend and in pie chart.
&gt; Looks like the legend has unnecessary item Used Heap size or you has to split JS Heap size to two (used and free) and change the legend.

Done. Removed used JS heap size label.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638376</commentid>
    <comment_count>10</comment_count>
      <attachid>145082</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-31 07:10:12 -0700</bug_when>
    <thetext>Comment on attachment 145082
Patch

please remove Source/WebCore/inspector/front-end/.NativeMemorySnapshotView.js.swo from the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638378</commentid>
    <comment_count>11</comment_count>
      <attachid>145082</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-31 07:11:10 -0700</bug_when>
    <thetext>Comment on attachment 145082
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638379</commentid>
    <comment_count>12</comment_count>
      <attachid>145084</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-31 07:11:27 -0700</bug_when>
    <thetext>Created attachment 145084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638382</commentid>
    <comment_count>13</comment_count>
      <attachid>145084</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-31 07:12:27 -0700</bug_when>
    <thetext>Comment on attachment 145084
Patch

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

lgtm

&gt; Source/WebCore/ChangeLog:12
&gt; +        * inspector/front-end/.NativeMemorySnapshotView.js.swo: Added.

nit: remove this entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638383</commentid>
    <comment_count>14</comment_count>
      <attachid>145086</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-31 07:12:47 -0700</bug_when>
    <thetext>Created attachment 145086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638387</commentid>
    <comment_count>15</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-31 07:19:14 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 145084 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145084&amp;action=review
&gt; 
&gt; lgtm
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        * inspector/front-end/.NativeMemorySnapshotView.js.swo: Added.
&gt; 
&gt; nit: remove this entry

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639079</commentid>
    <comment_count>16</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-06-01 01:18:11 -0700</bug_when>
    <thetext>Committed r119197: &lt;http://trac.webkit.org/changeset/119197&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144541</attachid>
            <date>2012-05-29 06:24:58 -0700</date>
            <delta_ts>2012-05-30 02:13:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87737-20120529172456.patch</filename>
            <type>text/plain</type>
            <size>11597</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdlOTczOTc1YTFiZjFj
MDkyOWE2NWY1MDYzY2NlODFkNGIwZDU1Ny4uZGE5Mzk0Nzc2Yjc1NDQ5YjJkNmM0MmRhMmZhMTQw
MGFmYWUwYWRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA1LTI5ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGRyYXcgcGllLWNoYXJ0IGJhc2VkIG9uIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gYmFj
a2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc3
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBwaWUgY2hhcnQgZm9yIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gaW5zcGVjdG9yIG1lbW9y
eSBhZ2VudC4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5U25h
cHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVNuYXBzaG90
Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LnBy
b3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5U25h
cHNob3RWaWV3LnByb3RvdHlwZS5vblJlc2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0
aXZlTWVtb3J5UHJvZmlsZVR5cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9y
eVByb2ZpbGVUeXBlLnByb3RvdHlwZS5idXR0b25DbGlja2VkLmRpZFJlY2VpdmVNZW1vcnlTbmFw
c2hvdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUucHJv
dG90eXBlLmJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2Nr
Vmlld1Byb3BlcnRpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1By
b3BlcnRpZXMuaW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tW
aWV3UHJvcGVydGllcy5mb3JNZW1vcnlCbG9jayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0
aXZlTWVtb3J5UGllQ2hhcnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVBp
ZUNoYXJ0LnByb3RvdHlwZS51cGRhdGVTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRp
dmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX2FkZEJsb2NrTGFiZWxzKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUucGFpbnQucGFpbnRQZXJj
ZW50QW5kTGFiZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVBpZUNoYXJ0
LnByb3RvdHlwZS5wYWludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UGll
Q2hhcnQucHJvdG90eXBlLl9jbGVhcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9o
ZWFwUHJvZmlsZXIuY3NzOgorICAgICAgICAoLm1lbW9yeS1waWUtY2hhcnQtY29udGFpbmVyKToK
KyAgICAgICAgKC5tZW1vcnktcGllLWNoYXJ0KToKKyAgICAgICAgKC5tZW1vcnktYmxvY2tzLWxp
c3QgLnN3YXRjaCk6CisgICAgICAgICgubWVtb3J5LWJsb2Nrcy1saXN0KToKKyAgICAgICAgKC5t
ZW1vcnktYmxvY2tzLWxpc3QgLml0ZW0pOgorCiAyMDEyLTA1LTI4ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIEltcGxlbWVudCBWOEJpbmRpbmc6
OnY4TnVsbChpc29sYXRlKSBhbmQgdXNlIGl0IGluIENvZGVHZW5lcmF0b3JWOC5wbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFw
c2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1l
bW9yeVNuYXBzaG90Vmlldy5qcwppbmRleCAyZjcwOWZlMjMwY2YxZGVjZWQyODY4MDdiMmRmNGIw
NThhNDA0MjM5Li43MmM5ODEyOWVhYjAxZTFjYWU0ZGY0MDY4ZGY2OWZlOTE2MzRlNDIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNu
YXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05h
dGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcwpAQCAtMzUsOSArMzUsMTIgQEAKIFdlYkluc3BlY3Rv
ci5OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcgPSBmdW5jdGlvbihwcm9maWxlKQogewogICAgIFdl
Ykluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7Ci0gICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xh
c3MoIm1lbW9yeS1jaGFydC12aWV3Iik7Ci0gICAgdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJk
aXYiKS50ZXh0Q29udGVudCA9ICJNZW1vcnkgY2hhcnQiOwogICAgIHRoaXMuX3Byb2ZpbGUgPSBw
cm9maWxlOworICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJtZW1vcnktY2hhcnQtdmll
dyIpOworCisgICAgdGhpcy5fcGllQ2hhcnQgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9y
eVBpZUNoYXJ0KHByb2ZpbGUubWVtb3J5QmxvY2spOworICAgIHRoaXMuX3BpZUNoYXJ0LmVsZW1l
bnQuYWRkU3R5bGVDbGFzcygiZmlsbCIpOworICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl9waWVDaGFydC5lbGVtZW50KTsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVNu
YXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CkBAIC00NSw2ICs0OCwyNCBAQCBXZWJJbnNwZWN0b3Iu
TmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgfSwKIAor
ICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqLworICAgIHdhc1Nob3duOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICB0aGlzLl9waWVDaGFydC51cGRhdGVTaXplKCk7CisgICAgICAg
IHRoaXMuX3BpZUNoYXJ0LnBhaW50KCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBvdmVy
cmlkZQorICAgICAqLworICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLl9waWVDaGFydC51cGRhdGVTaXplKCk7CisgICAgICAgIHRoaXMuX3BpZUNoYXJ0LnBhaW50
KCk7CisgICAgfSwKKwogICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCiAgICAgewogICAgICAgICBy
ZXR1cm4gW107CkBAIC02NSw3ICs4Niw3IEBAIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlTbmFw
c2hvdFZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByCiBXZWJJ
bnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUgPSBmdW5jdGlvbigpCiB7CiAgICAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVUeXBlLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9y
eVByb2ZpbGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUYWtlIE5hdGl2ZSBN
ZW1vcnkgU25hcHNob3QiKSk7Ci0gICAgdGhpcy5fcHJvZmlsZUluZGV4ID0gMTsKKyAgICB0aGlz
Ll9uZXh0UHJvZmlsZVVpZCA9IDE7CiB9CiAKIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9m
aWxlVHlwZS5UeXBlSWQgPSAiTkFUSVZFX01FTU9SWSI7CkBAIC04Myw4ICsxMDQsMTYgQEAgV2Vi
SW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKICAgICBidXR0
b25DbGlja2VkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgcHJvZmlsZXNQYW5lbCA9
IFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXM7Ci0gICAgICAgIHZhciBwcm9maWxlSGVhZGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlSGVhZGVyKHRoaXMsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiU25hcHNob3QgJWQiLCB0aGlzLl9wcm9maWxlSW5kZXgrKyksIC0x
KTsKKyAgICAgICAgdmFyIHByb2ZpbGVIZWFkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZU1l
bW9yeVByb2ZpbGVIZWFkZXIodGhpcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTbmFwc2hvdCAl
ZCIsIHRoaXMuX25leHRQcm9maWxlVWlkKSwgdGhpcy5fbmV4dFByb2ZpbGVVaWQpOworICAgICAg
ICArK3RoaXMuX25leHRQcm9maWxlVWlkOworICAgICAgICBwcm9maWxlSGVhZGVyLmlzVGVtcG9y
YXJ5ID0gdHJ1ZTsKICAgICAgICAgcHJvZmlsZXNQYW5lbC5hZGRQcm9maWxlSGVhZGVyKHByb2Zp
bGVIZWFkZXIpOworICAgICAgICBmdW5jdGlvbiBkaWRSZWNlaXZlTWVtb3J5U25hcHNob3QoZXJy
b3IsIG1lbW9yeUJsb2NrKQorICAgICAgICB7CisgICAgICAgICAgICBwcm9maWxlSGVhZGVyLm1l
bW9yeUJsb2NrID0gbWVtb3J5QmxvY2s7CisgICAgICAgICAgICBwcm9maWxlSGVhZGVyLmlzVGVt
cG9yYXJ5ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgTWVtb3J5QWdlbnQuZ2V0UHJvY2Vz
c01lbW9yeURpc3RyaWJ1dGlvbihkaWRSZWNlaXZlTWVtb3J5U25hcHNob3QuYmluZCh0aGlzKSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCkBAIC0xNTMsMyArMTgyLDE1OCBAQCBX
ZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiB9CiAK
IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlci5wcm90b3R5cGU7CisKK1dlYkluc3BlY3Rv
ci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzID0gZnVuY3Rpb24oZmlsbFN0eWxlLCBuYW1lLCBk
ZXNjcmlwdGlvbikKK3sKKyAgICB0aGlzLmZpbGxTdHlsZSA9IGZpbGxTdHlsZTsKKyAgICB0aGlz
Lm5hbWUgPSBuYW1lOworICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKK30KKwor
V2ViSW5zcGVjdG9yLl9zdGFuZGFyZE1lbW9yeUJsb2Nrcz0gbnVsbDsKKworV2ViSW5zcGVjdG9y
Lk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKCkKK3sKKyAg
ICBpZiAoV2ViSW5zcGVjdG9yLl9zdGFuZGFyZE1lbW9yeUJsb2NrcykKKyAgICAgICAgcmV0dXJu
OworICAgIFdlYkluc3BlY3Rvci5fc3RhbmRhcmRNZW1vcnlCbG9ja3MgPSB7fTsKKyAgICBmdW5j
dGlvbiBhZGRCbG9jayhmaWxsU3R5bGUsIG5hbWUsIGRlc2NyaXB0aW9uKQorICAgIHsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLl9zdGFuZGFyZE1lbW9yeUJsb2Nrc1tuYW1lXSA9IG5ldyBXZWJJbnNw
ZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcyhmaWxsU3R5bGUsIG5hbWUsIGRlc2NyaXB0
aW9uKTsKKyAgICB9CisgICAgYWRkQmxvY2soInJnYmEoMjQwLCAyNDAsIDI1MCwgMC44KSIsICJQ
cm9jZXNzUHJpdmF0ZU1lbW9yeSIsICJUb3RhbCIpOworICAgIGFkZEJsb2NrKCJyZ2JhKDI1MCwg
MjAwLCAyMDAsIDAuOCkiLCAiVG90YWxKU0hlYXAiLCAiSmF2YVNjcmlwdCBoZWFwIik7CisgICAg
YWRkQmxvY2soInJnYmEoMjAwLCAyNTAsIDIwMCwgMC44KSIsICJVc2VkSlNIZWFwIiwgIlVzZWQg
SmF2YVNjcmlwdCBoZWFwIik7Cit9CisKK1dlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9w
ZXJ0aWVzLmZvck1lbW9yeUJsb2NrID0gZnVuY3Rpb24obWVtb3J5QmxvY2spCit7CisgICAgaWYg
KCFXZWJJbnNwZWN0b3IuX3N0YW5kYXJkTWVtb3J5QmxvY2tzKQorICAgICAgICBXZWJJbnNwZWN0
b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5pbml0aWFsaXplKCk7CisgICAgdmFyIHJlc3Vs
dCA9IFdlYkluc3BlY3Rvci5fc3RhbmRhcmRNZW1vcnlCbG9ja3NbbWVtb3J5QmxvY2submFtZV07
CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gbmV3
IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzKG1lbW9yeUJsb2NrLm5hbWUs
ICJyZ2JhKDIwLCAyMDAsIDIwLCAwLjgpIik7Cit9CisKKworV2ViSW5zcGVjdG9yLk5hdGl2ZU1l
bW9yeVBpZUNoYXJ0ID0gZnVuY3Rpb24obWVtb3J5U25hcHNob3QpCit7CisgICAgdGhpcy5fbWVt
b3J5U25hcHNob3QgPSBtZW1vcnlTbmFwc2hvdDsKKyAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygi
bWVtb3J5LXBpZS1jaGFydC1jb250YWluZXIiKTsKKyAgICB0aGlzLl9tZW1vcnlCbG9ja0xpc3Qg
PSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJtZW1vcnktYmxvY2tzLWxpc3QiKTsK
KworICAgIHRoaXMuX2NhbnZhc0NvbnRhaW5lciA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgi
ZGl2IiwgIm1lbW9yeS1waWUtY2hhcnQiKTsKKyAgICB0aGlzLl9jYW52YXMgPSB0aGlzLl9jYW52
YXNDb250YWluZXIuY3JlYXRlQ2hpbGQoImNhbnZhcyIpOworICAgIFdlYkluc3BlY3Rvci5NZW1v
cnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLmluaXRpYWxpemUoKTsKKyAgICB0aGlzLl9hZGRCbG9ja0xh
YmVscyhtZW1vcnlTbmFwc2hvdCk7Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVD
aGFydC5wcm90b3R5cGUgPSB7CisgICAgdXBkYXRlU2l6ZTogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgdmFyIHdpZHRoID0gdGhpcy5fY2FudmFzQ29udGFpbmVyLmNsaWVudFdpZHRoIC0gNTsK
KyAgICAgICAgdmFyIGhlaWdodCA9IHRoaXMuX2NhbnZhc0NvbnRhaW5lci5jbGllbnRIZWlnaHQg
LSA1OworICAgICAgICB0aGlzLl9jYW52YXMud2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5f
Y2FudmFzLmhlaWdodCA9IGhlaWdodDsKKyAgICB9LAorCisgICAgX2FkZEJsb2NrTGFiZWxzOiBm
dW5jdGlvbihtZW1vcnlCbG9jaykKKyAgICB7CisgICAgICAgIHZhciB2aWV3UHJvcGVydGllcyA9
IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLmZvck1lbW9yeUJsb2NrKG1l
bW9yeUJsb2NrKTsKKyAgICAgICAgdmFyIHRpdGxlID0gdmlld1Byb3BlcnRpZXMuZGVzY3JpcHRp
b24gKyAiOiAiICsgTnVtYmVyLmJ5dGVzVG9TdHJpbmcobWVtb3J5QmxvY2suc2l6ZSk7CisKKyAg
ICAgICAgdmFyIHN3YXRjaEVsZW1lbnQgPSB0aGlzLl9tZW1vcnlCbG9ja0xpc3QuY3JlYXRlQ2hp
bGQoImRpdiIsICJpdGVtIik7CisgICAgICAgIHN3YXRjaEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRp
diIsICJzd2F0Y2giKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB2aWV3UHJvcGVydGllcy5maWxs
U3R5bGU7CisgICAgICAgIHN3YXRjaEVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAidGl0bGUi
KS50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZyh0aXRsZSk7CisKKyAgICAgICAg
aWYgKCFtZW1vcnlCbG9jay5jaGlsZHJlbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBtZW1vcnlCbG9jay5jaGlsZHJlbi5sZW5ndGg7IGkrKykKKyAg
ICAgICAgICAgIHRoaXMuX2FkZEJsb2NrTGFiZWxzKG1lbW9yeUJsb2NrLmNoaWxkcmVuW2ldKTsK
KyAgICB9LAorCisgICAgcGFpbnQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Ns
ZWFyKCk7CisgICAgICAgIHZhciB3aWR0aCA9IHRoaXMuX2NhbnZhcy53aWR0aDsKKyAgICAgICAg
dmFyIGhlaWdodCA9IHRoaXMuX2NhbnZhcy5oZWlnaHQ7CisKKyAgICAgICAgdmFyIHggPSB3aWR0
aCAvIDI7CisgICAgICAgIHZhciB5ID0gaGVpZ2h0IC8gMjsKKyAgICAgICAgdmFyIHJhZGl1cyA9
IDIwMDsKKworICAgICAgICB2YXIgY3R4ID0gdGhpcy5fY2FudmFzLmdldENvbnRleHQoIjJkIik7
CisgICAgICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICAgICAgY3R4LmFyYyh4LCB5LCByYWRpdXMs
IDAsIE1hdGguUEkqMiwgZmFsc2UpOworICAgICAgICBjdHgubGluZVdpZHRoID0gMTsKKyAgICAg
ICAgY3R4LmZpbGxTdHlsZSA9IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVz
LmZvck1lbW9yeUJsb2NrKHRoaXMuX21lbW9yeVNuYXBzaG90KS5maWxsU3R5bGU7CisgICAgICAg
IGN0eC5zdHJva2VTdHlsZSA9ICJyZ2JhKDEzMCwgMTMwLCAxMzAsIDAuOCkiOworICAgICAgICBj
dHguZmlsbCgpOworICAgICAgICBjdHguc3Ryb2tlKCk7CisgICAgICAgIGN0eC5jbG9zZVBhdGgo
KTsKKworICAgICAgICB2YXIgc3RhcnRBbmdsZSA9IC0gTWF0aC5QSSAvIDI7CisgICAgICAgIHZh
ciBjdXJyZW50QW5nbGUgPSBzdGFydEFuZ2xlOworICAgICAgICB2YXIgbWVtb3J5QmxvY2sgPSB0
aGlzLl9tZW1vcnlTbmFwc2hvdDsKKworICAgICAgICBmdW5jdGlvbiBwYWludFBlcmNlbnRBbmRM
YWJlbChmcmFjdGlvbiwgdGl0bGUsIG1pZEFuZ2xlKQorICAgICAgICB7CisgICAgICAgICAgICBj
dHguYmVnaW5QYXRoKCk7CisgICAgICAgICAgICBjdHguZm9udCA9ICIxNHB4IEFyaWFsIjsKKyAg
ICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAicmdiYSgxMCwgMTAsIDEwLCAwLjgpIjsKKworICAg
ICAgICAgICAgdmFyIHRleHRYID0geCArIHJhZGl1cyAqIE1hdGguY29zKG1pZEFuZ2xlKSAvIDI7
CisgICAgICAgICAgICB2YXIgdGV4dFkgPSB5ICsgcmFkaXVzICogTWF0aC5zaW4obWlkQW5nbGUp
IC8gMjsKKyAgICAgICAgICAgIGN0eC5maWxsVGV4dCgoMTAwICogZnJhY3Rpb24pLnRvRml4ZWQo
MCkgKyAiJSIsIHRleHRYLCB0ZXh0WSk7CisKKyAgICAgICAgICAgIHRleHRYID0geCArIHJhZGl1
cyAqIE1hdGguY29zKG1pZEFuZ2xlKTsKKyAgICAgICAgICAgIHRleHRZID0geSArIHJhZGl1cyAq
IE1hdGguc2luKG1pZEFuZ2xlKTsKKyAgICAgICAgICAgIGlmIChtaWRBbmdsZSA8PSBzdGFydEFu
Z2xlICsgTWF0aC5QSSkgeworICAgICAgICAgICAgICAgIHRleHRYICs9IDEwOworICAgICAgICAg
ICAgICAgIHRleHRZICs9IDEwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICB2YXIgbWV0cmljcyA9IGN0eC5tZWFzdXJlVGV4dCh0aXRsZSk7CisgICAgICAgICAgICAgICAg
dGV4dFggLT0gbWV0cmljcy53aWR0aCArIDEwOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Y3R4LmZpbGxUZXh0KHRpdGxlLCB0ZXh0WCwgdGV4dFkpOworICAgICAgICAgICAgY3R4LmNsb3Nl
UGF0aCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1lbW9yeUJsb2NrLmNoaWxkcmVuKSB7
CisgICAgICAgICAgICB2YXIgdG90YWwgPSBtZW1vcnlCbG9jay5zaXplOworICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBtZW1vcnlCbG9jay5jaGlsZHJlbi5sZW5ndGg7IGkrKykgewor
ICAgICAgICAgICAgICAgIHZhciBjaGlsZCA9IG1lbW9yeUJsb2NrLmNoaWxkcmVuW2ldOworICAg
ICAgICAgICAgICAgIGlmICghY2hpbGQuc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICAgICAgdmFyIHZpZXdQcm9wZXJ0aWVzID0gV2ViSW5zcGVjdG9yLk1l
bW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuZm9yTWVtb3J5QmxvY2soY2hpbGQpOworICAgICAgICAg
ICAgICAgIHZhciBhbmdsZVNwYW4gPSBNYXRoLlBJICogMiAqIChjaGlsZC5zaXplIC8gdG90YWwp
OworICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICAgICAgICAgICAgICBjdHgu
bW92ZVRvKHgsIHkpOworICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oeCArIHJhZGl1cyAqIE1h
dGguY29zKGN1cnJlbnRBbmdsZSksIHkgKyByYWRpdXMgKiBNYXRoLnNpbihjdXJyZW50QW5nbGUp
KTsKKyAgICAgICAgICAgICAgICBjdHguYXJjKHgsIHksIHJhZGl1cywgY3VycmVudEFuZ2xlLCBj
dXJyZW50QW5nbGUgKyBhbmdsZVNwYW4sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBjdHgubGlu
ZVdpZHRoID0gMC41OworICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oeCwgeSk7CisgICAgICAg
ICAgICAgICAgY3R4LmZpbGxTdHlsZSA9IHZpZXdQcm9wZXJ0aWVzLmZpbGxTdHlsZTsKKyAgICAg
ICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAicmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIjsK
KyAgICAgICAgICAgICAgICBjdHguZmlsbCgpOworICAgICAgICAgICAgICAgIGN0eC5zdHJva2Uo
KTsKKyAgICAgICAgICAgICAgICBjdHguY2xvc2VQYXRoKCk7CisKKyAgICAgICAgICAgICAgICBw
YWludFBlcmNlbnRBbmRMYWJlbChjaGlsZC5zaXplIC8gdG90YWwsIHZpZXdQcm9wZXJ0aWVzLmRl
c2NyaXB0aW9uLCBjdXJyZW50QW5nbGUgKyBhbmdsZVNwYW4gLyAyKTsKKworICAgICAgICAgICAg
ICAgIGN1cnJlbnRBbmdsZSArPSBhbmdsZVNwYW47CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KworICAgICAgICB2YXIgZnJhY3Rpb24gPSAxIC0gKGN1cnJlbnRBbmdsZSAtIHN0YXJ0QW5nbGUp
IC8gKDIgKiBNYXRoLlBJKTsKKyAgICAgICAgdmFyIG1pZEFuZ2xlID0gKGN1cnJlbnRBbmdsZSAr
IHN0YXJ0QW5nbGUgKyAyICogTWF0aC5QSSkgLyAyOworICAgICAgICBwYWludFBlcmNlbnRBbmRM
YWJlbChmcmFjdGlvbiwgIlVua25vd24iLCBtaWRBbmdsZSk7CisgICAgfSwKKworICAgIF9jbGVh
cjogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBjdHggPSB0aGlzLl9jYW52YXMuZ2V0Q29udGV4
dCgiMmQiKTsKKyAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjdHguY2FudmFzLndpZHRoLCBj
dHguY2FudmFzLmhlaWdodCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9oZWFwUHJvZmlsZXIuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9oZWFwUHJvZmlsZXIuY3NzCmluZGV4IDhhOGI0OTI4NGNjNTRiM2E2
NzNiOTcwMjY2MTYyODQ5MjlmOWIzZWEuLjRjODE1NmE1MzBiZDVkOGViYjIyMGIxNDJhZTg0ZTRh
YzVmNjE5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aGVhcFByb2ZpbGVyLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2hlYXBQcm9maWxlci5jc3MKQEAgLTI2MSwzICsyNjEsMjQgQEAgdGFibGUuaGVhcC1zbmFwc2hv
dC1oZWxwIHsKICAgICBvcGFjaXR5OiAwLjY7CiB9CiAKKy5tZW1vcnktcGllLWNoYXJ0LWNvbnRh
aW5lciB7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50
OiB2ZXJ0aWNhbDsKK30KKworLm1lbW9yeS1waWUtY2hhcnQgeworICAgIC13ZWJraXQtYm94LWZs
ZXg6IDE7Cit9CisKKy5tZW1vcnktYmxvY2tzLWxpc3QgLnN3YXRjaCB7CisgICAgYmFja2dyb3Vu
ZC1pbWFnZTogbm9uZTsKK30KKworLm1lbW9yeS1ibG9ja3MtbGlzdCB7CisgICAgcGFkZGluZzog
MXB4OworICAgIGZvbnQtc2l6ZTogMTFweDsKK30KKworLm1lbW9yeS1ibG9ja3MtbGlzdCAuaXRl
bSB7CisgICAgbWFyZ2luOiAxMHB4OworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>144543</attachid>
            <date>2012-05-29 06:28:35 -0700</date>
            <delta_ts>2012-05-29 06:28:35 -0700</delta_ts>
            <desc>Screenshot</desc>
            <filename>Screenshot from 2012-05-29 17:28:08.png</filename>
            <type>image/png</type>
            <size>71460</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">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
kdu6i8svX8TqVb7hZc17D+5nzoyZlC2LI93dHOkpsmjuvOFZ47/6b/+XxStuPWsfBg7t4N1Cgd4B
gBrqmi/jsss8VJ/cQW5rgborrmfBFBh49xW2Hm5g8Zrl1A0U2L11B8cGwDV1OtXdRxho9rNi5XJ+
8ytz2fz3XcTfOEipuoFp8/3MnQpwnAO7NnOgux8A19QlLFjkoe5s9wEGunfw7nuV/rmmeJi1aAnT
qwH6ObL1Fd4/CXXzr2HxjJoxBvcuubfeHW5b5JPIY+w97+OMRERERGRyG5qEdTgcOBwT74Y6fJzR
hW5uNXrGtzLDa1mVd3RXr14+fCZvZQdnH+WyTW+fyUP/+HdMa2xi8dz5hG+4hadeeZFPLV2OVT51
zq99Dps6OZsXs7B58eiLto1Vt5il/sWV/tjgnP9pls8f/M7VwvwVLWOOB6Bqqo+l/qVDjQ1uPFXP
jIWfZsb53AdwNi1m4YqR/Rtqrxr30uuGz6Ucc5yu+Sz1zx9RR0RERERERMrlMn/yJ3/Ct7/9baZM
mUJVVdWEdS78OKPBepWwapHNvkXZsgCbbVt3cuXKZWTfeBuw2LZtF1a5cnzRu4V9LJ47n8itd/IX
//w9rl+1hiM93SycPXc4RNu2/aEf41Pa9yy/+9tHaFx6DXM0wyoiIiIiInJJGhgYoKOjg6NHj/IX
f/EXTJs2bcLw+wF3dbYHz96lciavbVVmeMuV61de6Rs+x/fKKytn9y6eO5/kC/82GHqv4rFnUnz5
5s/y/uEDtLibB98THv3O7IeibjFLV1dmb/VKrYiIiIiIyKXJGtxE+cc//jEul4s/+7M/w+12nzX8
fqDgi13ZvMrG5o3sW4ObV1XO49248W2GQuS27btYvuIKsMGyy8S+cj+2DTv3vsfhnm5+/sbr7Hp/
D2Z/H7//lQeGjxbSpk4iIiIiIiIylhdeeIFrr72Wuro6vv3tb+N2u8ct+wF3dWZ4lnfkmbxvZN/i
yiuXDe/WbA0ebXRq1+fK9Z9vep3PB27gPyf+mT//5u/yDz/5Ebv27cHbMgccCr4iIiIiIiIytkWL
FvH8889z/fXXM2XKFB566KFxy37gza3KlW2ayb6xefhM3m3b36lsaLVyGZs2vc32HXnKVpmVK3zD
S6Rf2/I2s6fPYGp9I7es+TR//sjf45nejLdlzvC7vhfSLxEREREREZn8yuUyy5Yt49lnnyUYDE4c
fO0L2DZ4aBOqymyuzZUrfcNn8o5c1rxixRUsX37FqB2gbdvG0zyDK+Z7sewyQf+nuGn1p7BsC8sq
D79jeyH9EhERERERkcmvVCrhdDpZvXo1Tz311FnLfvClzpY1HHhthnZjPnNZ81DgHdq8qsU9/VSZ
wd2sRm5o5ahyaqmziIiIiIiIjKlcLlMul3G5XFxzzTVnLXvhxxkNzcralXN7Tw+8QyHWprKr86nd
mq3BgFwpM+oIo5Edq67T7soiIiIiIiIyplKphMvlwuVyTVj2gmd8sW0cDhf/4aH/iXmyG0eV4/zb
GKtZy8aYMpWpM5ZqxldERERERETGVC6Xh5c7TxR+L3hzK9uG6rppTJ+zErvcj83FCb4ObBzOGhrc
C7S5lYiIiIiIiIxpaMZ3aLnz2Vz4jK/DgaumAVdNwwV1ciKa7RUREREREZHxjJzxnWjW98KDr4iI
iIiIiMhHZGhzq5GbXI1HwVdEREREREQ+doZmew8fPsyLL77IN7/5zXHLVt7x1Xm5IiIiIiIi8jFS
LpfZu3cv99xzD8ViceLg+/V7rv7QOicicq42vPTsR90FEREREblE7dmzh/vuu4+rrrqKAwcOnLXs
xAceiYiIiIiIiFxiIpEI1113Hb/5m79Jb2/vWcsq+IqIiIiIiMjHisPh4LbbbuNXf/VXWbVqFTU1
NWctr+ArIiIiIiIiHxtVVVW0t7dz5513snjxYtxu94QbNiv4ioiIiIiIyMdGTU0NsVgMp9NJXV0d
VVVVE9ZR8BUREREREZGPjaqqKhoaGnA4HDgcjnOqo+ArIiIiIiIiHxvnE3iHTDwnLCIiIiIiIvIx
puArIiIiIiIik5qCr4iIiIiIiExqCr4iIiIiIiIyqSn4ioiIiIiIyKSm4CsiIiIiIiKTmoKviIiI
iIiITGoKviIiIiIiIjKpKfiKiIiIiIjIpKbgKyIiIiIiIpOagq+IiIiIiIhMagq+IiIiIiIiMqkp
+IqIiIiIiMikpuArIiIiIiIik5qCr4iIiIiIiExqCr4iIiIiIiIyqSn4ioiIiIiIyKSm4CsiIiIi
IiKTmoKviIiIiIiITGoKviIiIiIiIjKpKfiKiIiIiIjIpKbgKyIiIiIiIpOagq+IiIiIiIhMagq+
IiIiIiIiMqkp+IqIiIiIiMikpuArIiIiIiIik5qCr4iIiIiIiExqCr4iIiIiIiIyqSn4ioiIiIiI
yKSm4CsiIiIiIiKTmoKviIiIiIiITGoKviIiIiIiIjKpKfiKiIiIiIjIpKbgKyIiIiIiIpOagq+I
iIiIiIhMagq+IiIiIiIiMqkp+IqIiIiIiMikpuArIiIiIiIik5qCr4iIiIiIiExqCr4iIiIiIiIy
qSn4ioiIiIiIyKSm4CsiIiIiIiKTmoKviIiIiIiITGoKviIiIiIiIjKpKfiKiIiIiIjIpKbgKyIi
IiIiIpOagq+IiIiIiIhMagq+IiIiIiIiMqkp+IqIiIiIiMikpuArIiIiIiIik5qCr4iIiIiIiExq
Cr4iIiIiIiIyqSn4ioiIiIiIyKSm4CsiIiIiIiKTmoKviIiIiIiITGoKviIiIiIiIjKpKfiKiIiI
iIjIpKbgKyIiIiIiIpOagq+IiIiIiIhMagq+IiIiIiIiMqkp+IqIiIiIiMikpuArIiIiIiIik5qC
r4iIiIiIiExqCr4iIiIiIiIyqSn4ioiIiIiIyKSm4CsiIiIiIiKTmuuj7oCIiIiIgG3bDAwMUCqV
KJVK9Pf3Uy6XGRgYYGBgYNTPvb29nDx5kurqampqanC5XBiGQW1tLdXV1RiGQU1NDbW1tdTW1lJV
pbkOEflkU/AVERERuchM06Snp4fu7m6OHTtGX18fJ0/2UiqVhkNsf3//cNAdGBjAsmycTicul4ua
mmpcrmqqq6txOKqGf3a5XLhcLt7btoWVs2ZSKltYlkV/uUyvZXGyNMBAqUypXKJUtiiXy5QtC4cD
zLJFdXWlvuWownJAtctFdXUNTqOWmro6pk+fTnNzMy0tLdTX13/Uj1FE5KJR8BURERG5AL29vXR3
d9Pd3cOxY8coFovDYbeqqoqmpqk0NDTS0NBEQ8M0mppm4HQ6qa6uhNiqqiqqq2uGw6zTee7/LOs7
cgjfAu85ly+XLUpWGcuyKA2G4VJpKByXKNs2ff39HNv9LrktW9hgmpwcGGBKXR3VU+ppamqiYUYz
zc2Vj9vtvoAnJiLy0VHwFRERERnH8ePHOXbsGD09PRSL3cPBtqenh+rqGhoaGmlsbKKhoRGPZz5L
l06lsbGR6uqaj7rrozidVTid57fceaBU4nivycnek/T293Nyz17e37mLN44fxxwYwFlTTW1DA3UN
DTROn87MmTNpbm5m+vTpv6RRiIhcOAVfEREREeDkyZMUCgUKhf0cO3aMvXv3UlNTS1NTE/X1lYA7
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
2+2mo8ADUXwBAB5p3br1THEGgFG2YPx4vfM6G11h9FF8AQAep7q6Wl1d3UpPzzQdBQA8SkpcnPx7
7Tp06JDpKPAwFF8AcENXXXWVXn311dNe/+ijj7R48eJB3aOtrU0LFy7UkSNHhjuecZs3b9GsWRxf
BAAmzB07VtvWrjUdAx6G4gsA8Cj79+9XdHSsQkJCTUcBAI8UFBCgnOgYbd261XQUeBCKLwDAoxQU
FGjixKmmYwCARxuXkqqD+QWmY8CDUHwBwEM1Nzdr4cKFevvtt/XlL39ZF154oe644w7V19ef8fPv
vPOOli1bpoKCgkFdW1tbq3vuuUeXXXaZrrjiCj3yyCPq6emRJN166616+eWXBz77ox/9SF//+tcH
vl67dq2uv/76IWc8l9LSUkVHxys4OOS8rgcADI/gwADlxMZq9+7dpqPAQ1B8AcDDrVmzRo8//rje
eOMNtbS06E9/+tNpn9myZYseeugh3X///crNzT3ntT09Pfre976n3t5ePf744/rlL3+pLVu26PHH
H5ckzZkzR/n5+ZKk/v5+FRUVqaysTB0dHZKkHTt2aO7cuUPKOBj5+QWaOHHyeV0LABheY5OTVbxz
p+kY8BAUXwDwcDfffLPi4+MVFhamSy65RPv27Tvl/eLiYv385z/Xj3/841PK6Nmu3bRpk5qamnTv
vfcqKytLM2bM0J133qk333xT7e3tmj17tgoLC9XX16eysjKFhoYqKSlp4Pp/LL7nyjgYR44cUXBw
qCIiooZ8LQBg+IUFBystPFzFe/aajgIPQPEFADdks9nkdDpPe93pdMpms53yWkJCwsCfAwIC5HA4
Tnn/t7/9rbq7u5WYmHja/T7r2oqKCqWnpysk5O9TiidPnqy+vj4dPXpUU6dOld1uV2lpqQoKCjRt
2jRNmjRJRUVFqq6uVn19vfLy8gadcTBOjvaythcArGRsUrL2M+qLUUDxBQA3FBISovb29tNeb21t
VWjoqbsZ/2MR7u/vP+XrW2+9VZdeeqkeeuih08r0Z13r7+8vLy+vM77X19cnX19f5eXlKT8/f6D4
Tps2TYWFhdqxY4dyc3MVEBAw6IznUlVVLS8vb8XExA7pOgDAyIoKD1e0v79KD3KuL0YWxRcA3FBW
VpZ27Nhx2uvbt29XTk7OkO61dOlS3X777Tp27Jhee+21QV2Tnp6uioqKU8r3vn375O3trZSUFEl/
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
+okTJ+rRRx9VQkLCyec5flw//vGPddFFF2nFihV65plnJEknTpzQwoUL9dJLL+mSSy7Rfffdd8pU
579NVV61apWuvfZarVixQr/5zW/U09MjSfrud7+ryspK/frXv9ZvfvObz3z+7du368Ybb9SFF16o
O+64Qw0NDQPv1dfX6yc/+YmWLVumL33pS1q5cqV6e3sH9b07Vz6ro/gCANxeXl6e9u0785oofLbj
NdWqKdqluRlp8mbnZgAjpKTqmCbPnTss9+rs7NRdd92lcePG6fnnn9ejjz6qxsbGgfK5fPlybd68
WXa7XZLkdDq1fv16LVu27JzXStLNN9+sF154Qd/85jf13HPPqaioSE6nU9OnT1dISIicTqfuuusu
9fT06IknntC9996rV199VWvWrBm4x9q1a/XAAw/ouuuuO+MzrF27Vs8++6xefvllVVdX6+GHH5Yk
Pfzww0pNTdXdd9+tu++++zO/B6+88oruuOMOPfLII6qurtZTTz018N5Pf/pTeXt766mnntJ9992n
HTt2aOXKlYP63p0rn9XxfzEAgNtLSkqU1K/6+jrTUVzGkfISdVWWsXMzgBHV0NysZrtdmdlZw3K/
rq4uXX/99fqXf/kXJSUladKkSbr44otVUVEhSZr714K9c+dOSVJhYaF6eno0f/78c14rSVdffbUe
f/xxJSUl6c9//rO+/e1v65prrtH7778vSSoqKtKRI0d0zz33KDs7WzNmzNCdd96poKCggXvceOON
ysvL08SJE8/4DLfffrtCQ0MVEBCg2267TR988IG6urrk6+srLy8v2Ww2+fj4fOb34Nvf/rZmz56t
adOmacWKFSopKZEk5efnq6ysTD/72c+UmZmpKVOm6M4779Trr78uu90+qOc/Wz6rY40vAMAjTJ+e
qz179mjJknjTUSzv4N5CRXV3KDmWnZsBjKxD1VUamzd92O4XHR2tL33pS3rrrbdUWlqqI0eOqLi4
WGPGjJEk+fr6asmSJVq7dq3mzZunTz75RAsXLpS/v7/8/f3Peu3f5ObmKjc3V319fdq/f7/efPNN
/epXv1JcXJwqKioUFxenqKiogc8vW7ZM0smpzpKUnJx81mfIyvr7LwHS09Nlt9tVXV19yutnk5qa
OvDnsLAwdXd3S5KOHDminp4eXXHFFQPv9/f3y+l0qqamRmlpaYN6/s+bzxSKLwDAI6SlpWn79h1q
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
eTl5mjJ1iuvBPJz7008+VV5unsv98nLz9OnHn2ruPNenpLszd1NTkzb+aaOCg4OVmJiokmMlWvvy
Wq1dt1ZhYWFyyqmEhASte3WdfvTDH2njnzZq/rz5Lq/55VpNAAAAoO9x1UEKCwslSZlZmZ3FV5Jm
3T1L48aNU1FRkTZ/sbnz9cysTJUcK5Ekpaamup5bHhbfLi283GDxddgdenbNs5JTHeXX2VF+be1d
KOEezi1J2buyJXWc6my32TtftzvsWrVqlV566SXl5uZqypTuL775+fluj5mfn6+5blyL7c7chQWF
ampqUkZGhlavXq21a9equLhYr657VWvXdpRfSUqIT9C0adO0detWFRYU6vbbb7/huYFrcMwAAAB4
NVc94IXnX+j8969XdmfNmqWnf/y0nE6nsjKzJGfHdcCStP7N9Z37f/zxx67n1uXi62p19Gvu7ufu
9zQ3N7s1psPh0Jo1ayR1lF+n09n59a9+9Stt27btqv1nzpzZ+f6Nzu3j4yNJqq+vv2b/+vp6SZLd
bvfoZ+Pu3AUFBW6PWVBQ4NaY7sxdUdFx9+YxY8YoMDBQ69at07p163To0CGtW7dOr7zySmf5HTNm
jLZu3aqKigqX4zY3N7PqC49xzAAAAHg3Vx3kmy7rzMjIuOqM44yMjM7ie+X+7nQQSfK5vLuLzXl5
c7Wfp9/jztwdm93eLqfTIYtF8vGxdL7u42P5xs31mO7NPWHCbZKc+sMf3r3mvY7XnEpPv83Dn427
n1tX/BxdbZ6M6dmfXVBQgNate0Vjx47R4cOH9bOfvarGxnoP/6w9/TxsbE51MDoDGxsbGxsbGxvb
jW2Se/3j71tBwYGr9un4+pvGdqeDdD7H9/p3bf56wWXBgoXX3e9KX7dw12O7d8fo119/Xdu3b1dG
RobWrFkju73jtOM1a57Vc8/981X7OhyOzvdvdO6srFlav36DysrO6IknntKyZcskddzV+eLFi5Kk
lJThbn8OT+ZOS0tTTk6OW+OlpaW5ncHVfnFx8XI6pYMHizVr1mxJUmBgsNau7Vj5LS4u1quv/lyv
vPKKDh4sltP59fe4np/FO3iKYwYAAMD7Xa8rfP3c3sLCQr377ruSpA8//KtiYwd0XuP74Yd/7fy9
8OGHH+68ttfdDtRxqrOrfS+/35XHGrka2+Xckn79q47Sm5mZoafXrFG73d6ZyeGwS45vKLlujOvO
3A6nQ3/+y/tauuReVVVV6f/+x3/8ffjL379y5Uq9+bsNio+Pdz2gB3NPSE9XTq57xXdCerpbY7oz
99jUcQoLC9Ou7Gzdt2ypBg0eLEkKCA7SK6+u08/WrVPxoWK9+NJLOn++QmFhYRqbOs6t+T38+wGA
YwYAAMAErtcVRo0do8bGRr25fn1nx2pqatJvfvvbjlUQi+Wq/pWdk6N59yxQWFiYHG6uknQUX1f7
3sCKi6uxXb3/xuuva8flld4fP7NG7ZdvMLX4nnu+9XtmzJypHz/zzA1n+1qbtV1/ev99ffbpp9qz
Z48kadKkSZozd66WP/ig6uvqtOqplfqv9esVn5Dg1pjuzD1rzhzl792rPBervlNuv12z5sxx/1pt
F3MHBYfovmXL9N9vvaWf/+znevHllzX46/IbGKSX167Tyz/9qUqOHZNF0mOPP66g4BC3PhOrd/AU
xwwAAID3u25XcDr14gsv6tTJk1etX3aU3SteuTzGiRMn9OILL+rXv/mN2/P7SZLF6fq04K5yNbar
930sUkbGTD3zzNOy2aydPwif66w++1jc+0yefO52q12zZmVq9uxZkjpOp263tuq99/6gFQ+vUG1t
rVavWqk333xT8QmuV37dmdtpt+vJJ78ri9Op3Nzcb9xn6tSpeuLJ78ppb3dnkdvtuRcvWqgTpcf1
5c4v9dzTT2vK1CkaPXq0JOnw4cM6W1Ymi6QpU6Zo4T0L3P5ZWm7kb1HQJ3HMAAAAeD9XfWHJokV6
4403JEnJyckalzpOmz7Y1Pn+osWLVFRYpBMnTshyeX9P+tzla3x77hdLV2O7ev+Zyyu37bb2q17/
6JOPvvV7HHaHbHbXjzvy9HPb7fZrrh1us7bp7Xfe1iMrHlFtba3ee+89Pf3M0902d3R0tF786Yv6
/LPPlZ+f33mn5/Hjx2vixImaPWe2bDabR5/FnX3b2tr03Se+q5iYGH3+2efauXOndu7Y2fGmRQoN
CdWSe5do4aKFstlt8vfx77a5gStxzAAAAHg/V7/TzciYIVmkDzd9qH/5t39RaWnpVcV30uRJevCh
B/XSCy9p4aKFmjFzhkdP1rl8qvP11wr/6uLZSNfTZrVe931Xc1s7n5179X6tbe3X7nwV1+ufruZ2
V6u1Xf/99tt65+23tXzFiqtuu90dc1vb7cqadbfunj2n8/FKDodDDodD1na73Lqg2dO5Lb6SxVeL
Fi/R3bPn6NjRoyovL5ckJSYmasTIkQoODpYsFjnl4/bncXqYFeCYAQAA8H6u+oLD7tSdM2YqIzNL
1vZ22e3Oq877s9ud8g8I0hu//a1sdrtsdoc86UF+kiTL9dt3W3ub2wNew+WNswxczenGua02qx5a
sVw2e7t7P38P57Y7L682/+Nqflc6gRtz+wf4yT+g41m94RHhGhg/8Io7dTvldDj+4QRUdz8Pq3fw
FMcMAACA13Ojgzic9o6FT4t0a+qtV53la21vl9PplNV2eWHVwx7UUXw9WCLudiaa2+7JeF70uZ2S
nN0Vl9NW4SmOGQAAAO/XhQ7S5sYjat3lJ0k+8um2AT3F3H1rbgunrcJDHDMAAADez8gO0jE/AAAA
AAAmZtn4P+9yHiEAAAAAwLT+P6tIeyVLFqpwAAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144758</attachid>
            <date>2012-05-30 02:13:17 -0700</date>
            <delta_ts>2012-05-31 07:01:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87737-20120530131315.patch</filename>
            <type>text/plain</type>
            <size>16275</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI3Y2IzMTM0MDVhMTY1
MDI3NjRjNzVhMzQ5YThlZWNhMWMyMjAwZS4uOTJkNjMwNTY2NTAwNjYzMGU2MjhhNjZkNTE3NjMw
YTZjYjljYzk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA1LTI5ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGRyYXcgcGllLWNoYXJ0IGJhc2VkIG9uIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gYmFj
a2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc3
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBwaWUgY2hhcnQgZm9yIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gaW5zcGVjdG9yIG1lbW9y
eSBhZ2VudC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kLy5OYXRp
dmVNZW1vcnlTbmFwc2hvdFZpZXcuanMuc3dvOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5h
dGl2ZU1lbW9yeVByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlVHlwZS5wcm90b3R5cGUuYnV0dG9uQ2xpY2tlZC5kaWRSZWNlaXZlTWVtb3J5U25h
cHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnBy
b3RvdHlwZS5idXR0b25DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQ
cm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0
aWVzLl9pbml0aWFsaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQ
cm9wZXJ0aWVzLl9mb3JNZW1vcnlCbG9jayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZl
TWVtb3J5UGllQ2hhcnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVBpZUNo
YXJ0LnByb3RvdHlwZS5vblJlc2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVt
b3J5UGllQ2hhcnQucHJvdG90eXBlLl91cGRhdGVTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX2FkZEJsb2NrTGFiZWxzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX3BhaW50LnBh
aW50UGVyY2VudEFuZExhYmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQ
aWVDaGFydC5wcm90b3R5cGUuX3BhaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVN
ZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX2NsZWFyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9uYXRpdmVN
ZW1vcnlQcm9maWxlci5jc3M6IEFkZGVkLgorICAgICAgICAoLm1lbW9yeS1waWUtY2hhcnQtY29u
dGFpbmVyKToKKyAgICAgICAgKC5tZW1vcnktcGllLWNoYXJ0KToKKyAgICAgICAgKC5tZW1vcnkt
YmxvY2tzLWxpc3QgLnN3YXRjaCk6CisgICAgICAgICgubWVtb3J5LWJsb2Nrcy1saXN0KToKKyAg
ICAgICAgKC5tZW1vcnktYmxvY2tzLWxpc3QgLml0ZW0pOgorCiAyMDEyLTA1LTI5ICBNYXJrIFBp
bGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1vdmUg
ZmlsZUV4aXN0cyB0byBQbGF0Zm9ybS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2VjMTM5MzM2NTUz
NzA2NjdiNTdjZDA5ZGYzODE1OTM3ZjJiYzE2Yi4uZWFlMWFmMDZhZmY0N2UyNTU5Nzc1YzZmZDk5
MjczNzQxNmM0MmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjU0Niw2ICs2NTQ2LDcgQEAKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luZGV4ZWREQlZpZXdzLmNzcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JDb21tb24uY3NzJywKKyAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL25hdGl2ZU1lbW9yeVByb2ZpbGVyLmNzcycsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3LmNzcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uZXR3b3JrTG9nVmlldy5jc3MnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvbmV0d29ya1BhbmVsLmNzcycsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQwZmUwOWFkMjkwZjBkZDg3NGRl
N2ZkOWZhYWZiNzY2YzcyZjA1YzQuLmEzMDFhZDE2Njg3YjVhYmEwMTJkZWU2NWE3Mzg3NTA5YWJl
MzA2YjUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC03NDY4Miw2ICs3NDY4MiwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxuYXRpdmVNZW1vcnlQ
cm9maWxlci5jc3MiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXG5hdmlnYXRvclZpZXcuY3NzIgogCQkJCQk+
CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC8uTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzLnN3byBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvLk5hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcy5zd28KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWFkMWRmMDk0ZWQ1MzM5YTNkNDc3NmUyNDVlODViMTVkMjQ3NmM5YwpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgNDA5Ngp6Y21lSXVPS3QpJjM8bHNfMEk0YiQ7SVc8PCU3TyMxTEtVejsm
P1RBKT9vMUY5TUB8NkU1eDVBTzktPz5YMS1KP2YKejUpd1BRJDZoJj5CbC1XYi1mfSE/NGZRfT4+
ckpWQDxMflZCYjVgNnxzQGljQz5pTHRwP0ltMDVibnV4ciM5cnFfCnpgNCtFemBTMkc0P2J1KWRR
IXRnNzxUZlNfNC1uV3VFRyh+QUtJS0AhN2lPT30hdSs7ZnplZENlKSYtOXk2Mm11Pgp6aXdVfGxP
dyh4aElLaCYqbiFENzhnNXVLUkwydiRaX3JxekBpb2dwOUd9UGR1LT5aWG1KTUM4VWVlblhCQzg3
dzMKVGZDenx5MiNBMFBoPTIlKXorSz0xZ2gpVnoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5
U25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRp
dmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKaW5kZXggMmY3MDlmZTIzMGNmMWRlY2VkMjg2ODA3YjJk
ZjRiMDU4YTQwNDIzOS4uNTIwNDI2ZjYwZjNiNmY5MTkwZTc4NzEwNzFjYzJjZDZiN2U3NTc1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1v
cnlTbmFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKQEAgLTM1LDkgKzM1LDEzIEBACiBXZWJJbnNw
ZWN0b3IuTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZSkKIHsKICAg
ICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwotICAgIHRoaXMuZWxlbWVudC5hZGRTdHls
ZUNsYXNzKCJtZW1vcnktY2hhcnQtdmlldyIpOwotICAgIHRoaXMuZWxlbWVudC5jcmVhdGVDaGls
ZCgiZGl2IikudGV4dENvbnRlbnQgPSAiTWVtb3J5IGNoYXJ0IjsKKyAgICB0aGlzLnJlZ2lzdGVy
UmVxdWlyZWRDU1MoIm5hdGl2ZU1lbW9yeVByb2ZpbGVyLmNzcyIpOwogICAgIHRoaXMuX3Byb2Zp
bGUgPSBwcm9maWxlOworICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJtZW1vcnktY2hh
cnQtdmlldyIpOworCisgICAgdmFyIHBpZUNoYXJ0ID0gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVN
ZW1vcnlQaWVDaGFydChwcm9maWxlLl9tZW1vcnlCbG9jayk7CisgICAgcGllQ2hhcnQuZWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJmaWxsIik7CisgICAgcGllQ2hhcnQuc2hvdyh0aGlzLmVsZW1lbnQp
OwogfQogCiBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LnByb3RvdHlwZSA9
IHsKQEAgLTY1LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVNuYXBzaG90Vmll
dy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHIKIFdlYkluc3BlY3Rv
ci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZSA9IGZ1bmN0aW9uKCkKIHsKICAgICBXZWJJbnNwZWN0
b3IuUHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmls
ZVR5cGUuVHlwZUlkLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRha2UgTmF0aXZlIE1lbW9yeSBT
bmFwc2hvdCIpKTsKLSAgICB0aGlzLl9wcm9maWxlSW5kZXggPSAxOworICAgIHRoaXMuX25leHRQ
cm9maWxlVWlkID0gMTsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBl
LlR5cGVJZCA9ICJOQVRJVkVfTUVNT1JZIjsKQEAgLTgzLDggKzg3LDE2IEBAIFdlYkluc3BlY3Rv
ci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAgICAgYnV0dG9uQ2xpY2tl
ZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHByb2ZpbGVzUGFuZWwgPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLnByb2ZpbGVzOwotICAgICAgICB2YXIgcHJvZmlsZUhlYWRlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZUhlYWRlcih0aGlzLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlNuYXBzaG90ICVkIiwgdGhpcy5fcHJvZmlsZUluZGV4KyspLCAtMSk7CisgICAg
ICAgIHZhciBwcm9maWxlSGVhZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9m
aWxlSGVhZGVyKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU25hcHNob3QgJWQiLCB0aGlz
Ll9uZXh0UHJvZmlsZVVpZCksIHRoaXMuX25leHRQcm9maWxlVWlkKTsKKyAgICAgICAgKyt0aGlz
Ll9uZXh0UHJvZmlsZVVpZDsKKyAgICAgICAgcHJvZmlsZUhlYWRlci5pc1RlbXBvcmFyeSA9IHRy
dWU7CiAgICAgICAgIHByb2ZpbGVzUGFuZWwuYWRkUHJvZmlsZUhlYWRlcihwcm9maWxlSGVhZGVy
KTsKKyAgICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90KGVycm9yLCBtZW1v
cnlCbG9jaykKKyAgICAgICAgeworICAgICAgICAgICAgcHJvZmlsZUhlYWRlci5fbWVtb3J5Qmxv
Y2sgPSBtZW1vcnlCbG9jazsKKyAgICAgICAgICAgIHByb2ZpbGVIZWFkZXIuaXNUZW1wb3Jhcnkg
PSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBNZW1vcnlBZ2VudC5nZXRQcm9jZXNzTWVtb3J5
RGlzdHJpYnV0aW9uKGRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdC5iaW5kKHRoaXMpKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKQEAgLTEzMiw2ICsxNDQsMTEgQEAgV2ViSW5zcGVj
dG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuUHJvZmlsZVQKIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlSGVhZGVyID0g
ZnVuY3Rpb24odHlwZSwgdGl0bGUsIHVpZCkKIHsKICAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZUhl
YWRlci5jYWxsKHRoaXMsIHR5cGUsIHRpdGxlLCB1aWQpOworCisgICAgLyoqCisgICAgICogQHR5
cGUge01lbW9yeUFnZW50Lk1lbW9yeUJsb2NrfQorICAgICAqLworICAgIHRoaXMuX21lbW9yeUJs
b2NrID0gbnVsbDsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVIZWFkZXIu
cHJvdG90eXBlID0gewpAQCAtMTUzLDMgKzE3MCwxODIgQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZU1l
bW9yeVByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogfQogCiBXZWJJbnNwZWN0b3IuTmF0aXZl
TWVtb3J5UHJvZmlsZUhlYWRlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlBy
b2ZpbGVIZWFkZXIucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFt
IHtzdHJpbmd9IGZpbGxTdHlsZQorICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKKyAqIEBwYXJhbSB7
c3RyaW5nfSBkZXNjcmlwdGlvbgorICovCitXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJv
cGVydGllcyA9IGZ1bmN0aW9uKGZpbGxTdHlsZSwgbmFtZSwgZGVzY3JpcHRpb24pCit7CisgICAg
dGhpcy5fZmlsbFN0eWxlID0gZmlsbFN0eWxlOworICAgIHRoaXMuX25hbWUgPSBuYW1lOworICAg
IHRoaXMuX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247Cit9CisKKy8qKgorICogQHR5cGUge09i
amVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcz59Cisg
Ki8KK1dlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLl9zdGFuZGFyZEJsb2Nr
cyA9IG51bGw7CisKK1dlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLl9pbml0
aWFsaXplID0gZnVuY3Rpb24oKQoreworICAgIGlmIChXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tW
aWV3UHJvcGVydGllcy5fc3RhbmRhcmRCbG9ja3MpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJJ
bnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fc3RhbmRhcmRCbG9ja3MgPSB7fTsK
KyAgICBmdW5jdGlvbiBhZGRCbG9jayhmaWxsU3R5bGUsIG5hbWUsIGRlc2NyaXB0aW9uKQorICAg
IHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX3N0YW5k
YXJkQmxvY2tzW25hbWVdID0gbmV3IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0
aWVzKGZpbGxTdHlsZSwgbmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKGRlc2NyaXB0aW9uKSk7
CisgICAgfQorICAgIGFkZEJsb2NrKCJyZ2JhKDI0MCwgMjQwLCAyNTAsIDAuOCkiLCAiUHJvY2Vz
c1ByaXZhdGVNZW1vcnkiLCAiVG90YWwiKTsKKyAgICBhZGRCbG9jaygicmdiYSgyNTAsIDIwMCwg
MjAwLCAwLjgpIiwgIlRvdGFsSlNIZWFwIiwgIkphdmFTY3JpcHQgaGVhcCIpOworICAgIGFkZEJs
b2NrKCJyZ2JhKDIwMCwgMjUwLCAyMDAsIDAuOCkiLCAiVXNlZEpTSGVhcCIsICJVc2VkIEphdmFT
Y3JpcHQgaGVhcCIpOworfQorCitXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGll
cy5fZm9yTWVtb3J5QmxvY2sgPSBmdW5jdGlvbihtZW1vcnlCbG9jaykKK3sKKyAgICBXZWJJbnNw
ZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5faW5pdGlhbGl6ZSgpOworICAgIHZhciBy
ZXN1bHQgPSBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fc3RhbmRhcmRC
bG9ja3NbbWVtb3J5QmxvY2submFtZV07CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9w
ZXJ0aWVzKCJyZ2JhKDIwLCAyMDAsIDIwLCAwLjgpIiwgbWVtb3J5QmxvY2submFtZSwgbWVtb3J5
QmxvY2submFtZSk7Cit9CisKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuVmlld30KKyAqIEBwYXJhbSB7TWVtb3J5QWdlbnQuTWVtb3J5QmxvY2t9IG1l
bW9yeVNuYXBzaG90CisgKi8KK1dlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydCA9IGZ1
bmN0aW9uKG1lbW9yeVNuYXBzaG90KQoreworICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhp
cyk7CisgICAgdGhpcy5fbWVtb3J5U25hcHNob3QgPSBtZW1vcnlTbmFwc2hvdDsKKyAgICB0aGlz
LmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLmVsZW1l
bnQuYWRkU3R5bGVDbGFzcygibWVtb3J5LXBpZS1jaGFydC1jb250YWluZXIiKTsKKyAgICB0aGlz
Ll9tZW1vcnlCbG9ja0xpc3QgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJtZW1v
cnktYmxvY2tzLWxpc3QiKTsKKworICAgIHRoaXMuX2NhbnZhc0NvbnRhaW5lciA9IHRoaXMuZWxl
bWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgIm1lbW9yeS1waWUtY2hhcnQiKTsKKyAgICB0aGlzLl9j
YW52YXMgPSB0aGlzLl9jYW52YXNDb250YWluZXIuY3JlYXRlQ2hpbGQoImNhbnZhcyIpOworICAg
IHRoaXMuX2FkZEJsb2NrTGFiZWxzKG1lbW9yeVNuYXBzaG90KTsKK30KKworV2ViSW5zcGVjdG9y
Lk5hdGl2ZU1lbW9yeVBpZUNoYXJ0LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAb3Zl
cnJpZGUKKyAgICAgKi8KKyAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
dGhpcy5fdXBkYXRlU2l6ZSgpOworICAgICAgICB0aGlzLl9wYWludCgpOworICAgIH0sCisKKyAg
ICBfdXBkYXRlU2l6ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHdpZHRoID0gdGhp
cy5fY2FudmFzQ29udGFpbmVyLmNsaWVudFdpZHRoIC0gNTsKKyAgICAgICAgdmFyIGhlaWdodCA9
IHRoaXMuX2NhbnZhc0NvbnRhaW5lci5jbGllbnRIZWlnaHQgLSA1OworICAgICAgICB0aGlzLl9j
YW52YXMud2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5fY2FudmFzLmhlaWdodCA9IGhlaWdo
dDsKKyAgICB9LAorCisgICAgX2FkZEJsb2NrTGFiZWxzOiBmdW5jdGlvbihtZW1vcnlCbG9jaykK
KyAgICB7CisgICAgICAgIHZhciB2aWV3UHJvcGVydGllcyA9IFdlYkluc3BlY3Rvci5NZW1vcnlC
bG9ja1ZpZXdQcm9wZXJ0aWVzLl9mb3JNZW1vcnlCbG9jayhtZW1vcnlCbG9jayk7CisgICAgICAg
IHZhciB0aXRsZSA9IHZpZXdQcm9wZXJ0aWVzLl9kZXNjcmlwdGlvbiArICI6ICIgKyBOdW1iZXIu
Ynl0ZXNUb1N0cmluZyhtZW1vcnlCbG9jay5zaXplKTsKKworICAgICAgICB2YXIgc3dhdGNoRWxl
bWVudCA9IHRoaXMuX21lbW9yeUJsb2NrTGlzdC5jcmVhdGVDaGlsZCgiZGl2IiwgIml0ZW0iKTsK
KyAgICAgICAgc3dhdGNoRWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInN3YXRjaCIpLnN0eWxl
LmJhY2tncm91bmRDb2xvciA9IHZpZXdQcm9wZXJ0aWVzLl9maWxsU3R5bGU7CisgICAgICAgIHN3
YXRjaEVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAidGl0bGUiKS50ZXh0Q29udGVudCA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZyh0aXRsZSk7CisKKyAgICAgICAgaWYgKCFtZW1vcnlCbG9jay5j
aGlsZHJlbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBtZW1vcnlCbG9jay5jaGlsZHJlbi5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHRoaXMuX2Fk
ZEJsb2NrTGFiZWxzKG1lbW9yeUJsb2NrLmNoaWxkcmVuW2ldKTsKKyAgICB9LAorCisgICAgX3Bh
aW50OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9jbGVhcigpOworICAgICAgICB2
YXIgd2lkdGggPSB0aGlzLl9jYW52YXMud2lkdGg7CisgICAgICAgIHZhciBoZWlnaHQgPSB0aGlz
Ll9jYW52YXMuaGVpZ2h0OworCisgICAgICAgIHZhciB4ID0gd2lkdGggLyAyOworICAgICAgICB2
YXIgeSA9IGhlaWdodCAvIDI7CisgICAgICAgIHZhciByYWRpdXMgPSAyMDA7CisKKyAgICAgICAg
dmFyIGN0eCA9IHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgICAgICBjdHguYmVn
aW5QYXRoKCk7CisgICAgICAgIGN0eC5hcmMoeCwgeSwgcmFkaXVzLCAwLCBNYXRoLlBJKjIsIGZh
bHNlKTsKKyAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7CisgICAgICAgIGN0eC5maWxsU3R5bGUg
PSBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fZm9yTWVtb3J5QmxvY2so
dGhpcy5fbWVtb3J5U25hcHNob3QpLl9maWxsU3R5bGU7CisgICAgICAgIGN0eC5zdHJva2VTdHls
ZSA9ICJyZ2JhKDEzMCwgMTMwLCAxMzAsIDAuOCkiOworICAgICAgICBjdHguZmlsbCgpOworICAg
ICAgICBjdHguc3Ryb2tlKCk7CisgICAgICAgIGN0eC5jbG9zZVBhdGgoKTsKKworICAgICAgICB2
YXIgc3RhcnRBbmdsZSA9IC0gTWF0aC5QSSAvIDI7CisgICAgICAgIHZhciBjdXJyZW50QW5nbGUg
PSBzdGFydEFuZ2xlOworICAgICAgICB2YXIgbWVtb3J5QmxvY2sgPSB0aGlzLl9tZW1vcnlTbmFw
c2hvdDsKKworICAgICAgICBmdW5jdGlvbiBwYWludFBlcmNlbnRBbmRMYWJlbChmcmFjdGlvbiwg
dGl0bGUsIG1pZEFuZ2xlKQorICAgICAgICB7CisgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7
CisgICAgICAgICAgICBjdHguZm9udCA9ICIxNHB4IEFyaWFsIjsKKyAgICAgICAgICAgIGN0eC5m
aWxsU3R5bGUgPSAicmdiYSgxMCwgMTAsIDEwLCAwLjgpIjsKKworICAgICAgICAgICAgdmFyIHRl
eHRYID0geCArIHJhZGl1cyAqIE1hdGguY29zKG1pZEFuZ2xlKSAvIDI7CisgICAgICAgICAgICB2
YXIgdGV4dFkgPSB5ICsgcmFkaXVzICogTWF0aC5zaW4obWlkQW5nbGUpIC8gMjsKKyAgICAgICAg
ICAgIGN0eC5maWxsVGV4dCgoMTAwICogZnJhY3Rpb24pLnRvRml4ZWQoMCkgKyAiJSIsIHRleHRY
LCB0ZXh0WSk7CisKKyAgICAgICAgICAgIHRleHRYID0geCArIHJhZGl1cyAqIE1hdGguY29zKG1p
ZEFuZ2xlKTsKKyAgICAgICAgICAgIHRleHRZID0geSArIHJhZGl1cyAqIE1hdGguc2luKG1pZEFu
Z2xlKTsKKyAgICAgICAgICAgIGlmIChtaWRBbmdsZSA8PSBzdGFydEFuZ2xlICsgTWF0aC5QSSkg
eworICAgICAgICAgICAgICAgIHRleHRYICs9IDEwOworICAgICAgICAgICAgICAgIHRleHRZICs9
IDEwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWV0cmljcyA9
IGN0eC5tZWFzdXJlVGV4dCh0aXRsZSk7CisgICAgICAgICAgICAgICAgdGV4dFggLT0gbWV0cmlj
cy53aWR0aCArIDEwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3R4LmZpbGxUZXh0KHRp
dGxlLCB0ZXh0WCwgdGV4dFkpOworICAgICAgICAgICAgY3R4LmNsb3NlUGF0aCgpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKG1lbW9yeUJsb2NrLmNoaWxkcmVuKSB7CisgICAgICAgICAgICB2
YXIgdG90YWwgPSBtZW1vcnlCbG9jay5zaXplOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBtZW1vcnlCbG9jay5jaGlsZHJlbi5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAg
IHZhciBjaGlsZCA9IG1lbW9yeUJsb2NrLmNoaWxkcmVuW2ldOworICAgICAgICAgICAgICAgIGlm
ICghY2hpbGQuc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgdmFyIHZpZXdQcm9wZXJ0aWVzID0gV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1By
b3BlcnRpZXMuX2Zvck1lbW9yeUJsb2NrKGNoaWxkKTsKKyAgICAgICAgICAgICAgICB2YXIgYW5n
bGVTcGFuID0gTWF0aC5QSSAqIDIgKiAoY2hpbGQuc2l6ZSAvIHRvdGFsKTsKKyAgICAgICAgICAg
ICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICAgICAgICAgICAgY3R4Lm1vdmVUbyh4LCB5KTsK
KyAgICAgICAgICAgICAgICBjdHgubGluZVRvKHggKyByYWRpdXMgKiBNYXRoLmNvcyhjdXJyZW50
QW5nbGUpLCB5ICsgcmFkaXVzICogTWF0aC5zaW4oY3VycmVudEFuZ2xlKSk7CisgICAgICAgICAg
ICAgICAgY3R4LmFyYyh4LCB5LCByYWRpdXMsIGN1cnJlbnRBbmdsZSwgY3VycmVudEFuZ2xlICsg
YW5nbGVTcGFuLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDAuNTsK
KyAgICAgICAgICAgICAgICBjdHgubGluZVRvKHgsIHkpOworICAgICAgICAgICAgICAgIGN0eC5m
aWxsU3R5bGUgPSB2aWV3UHJvcGVydGllcy5fZmlsbFN0eWxlOworICAgICAgICAgICAgICAgIGN0
eC5zdHJva2VTdHlsZSA9ICJyZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkiOworICAgICAgICAgICAg
ICAgIGN0eC5maWxsKCk7CisgICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpOworICAgICAgICAg
ICAgICAgIGN0eC5jbG9zZVBhdGgoKTsKKworICAgICAgICAgICAgICAgIHBhaW50UGVyY2VudEFu
ZExhYmVsKGNoaWxkLnNpemUgLyB0b3RhbCwgdmlld1Byb3BlcnRpZXMuX2Rlc2NyaXB0aW9uLCBj
dXJyZW50QW5nbGUgKyBhbmdsZVNwYW4gLyAyKTsKKworICAgICAgICAgICAgICAgIGN1cnJlbnRB
bmdsZSArPSBhbmdsZVNwYW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2
YXIgZnJhY3Rpb24gPSAxIC0gKGN1cnJlbnRBbmdsZSAtIHN0YXJ0QW5nbGUpIC8gKDIgKiBNYXRo
LlBJKTsKKyAgICAgICAgdmFyIG1pZEFuZ2xlID0gKGN1cnJlbnRBbmdsZSArIHN0YXJ0QW5nbGUg
KyAyICogTWF0aC5QSSkgLyAyOworICAgICAgICBwYWludFBlcmNlbnRBbmRMYWJlbChmcmFjdGlv
biwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVbmtub3duIiksIG1pZEFuZ2xlKTsKKyAgICB9LAor
CisgICAgX2NsZWFyOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGN0eCA9IHRoaXMuX2NhbnZh
cy5nZXRDb250ZXh0KCIyZCIpOworICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGN0eC5jYW52
YXMud2lkdGgsIGN0eC5jYW52YXMuaGVpZ2h0KTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5O
YXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZp
ZXcucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJL
aXQucXJjCmluZGV4IGI2NmUxOWY2YWM1NDVjYzBhMjdmNDJmMmY0MDg4YmVmYTI2M2VlOTQuLjVm
MmFjMDk3NTY2NmI4OTk0NWUzMGJkYzZlYmRhM2ZiYzU4YWQ5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTE5Nyw2ICsxOTcsNyBAQAog
ICAgIDxmaWxlPmluc3BlY3Rvci5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+aW5zcGVjdG9yQ29tbW9u
LmNzczwvZmlsZT4KICAgICA8ZmlsZT5pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzPC9maWxl
PgorICAgIDxmaWxlPm5hdGl2ZU1lbW9yeVByb2ZpbGVyLmNzczwvZmlsZT4KICAgICA8ZmlsZT5u
YXZpZ2F0b3JWaWV3LmNzczwvZmlsZT4KICAgICA8ZmlsZT5uZXR3b3JrTG9nVmlldy5jc3M8L2Zp
bGU+CiAgICAgPGZpbGU+bmV0d29ya1BhbmVsLmNzczwvZmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmF0aXZlTWVtb3J5UHJvZmlsZXIuY3NzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9uYXRpdmVNZW1vcnlQcm9maWxlci5j
c3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOThmOGU1Y2U1NzE4MTc0MDc5MjhhMjY1NGZiNmZkOTNhN2MzMGQ2Ywot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmF0
aXZlTWVtb3J5UHJvZmlsZXIuY3NzCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisubWVtb3J5LXBpZS1jaGFydC1j
b250YWluZXIgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LW9y
aWVudDogdmVydGljYWw7Cit9CisKKy5tZW1vcnktcGllLWNoYXJ0IHsKKyAgICAtd2Via2l0LWJv
eC1mbGV4OiAxOworfQorCisubWVtb3J5LWJsb2Nrcy1saXN0IC5zd2F0Y2ggeworICAgIGJhY2tn
cm91bmQtaW1hZ2U6IG5vbmU7Cit9CisKKy5tZW1vcnktYmxvY2tzLWxpc3QgeworICAgIHBhZGRp
bmc6IDFweDsKKyAgICBmb250LXNpemU6IDExcHg7Cit9CisKKy5tZW1vcnktYmxvY2tzLWxpc3Qg
Lml0ZW0geworICAgIG1hcmdpbjogMTBweDsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145082</attachid>
            <date>2012-05-31 07:01:23 -0700</date>
            <delta_ts>2012-05-31 07:11:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87737-20120531180122.patch</filename>
            <type>text/plain</type>
            <size>18730</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjMTI3ZDE3NjI0OGUz
YjNiMGU3OGVkMTVjMGVjMjc3MTYxYzQwYS4uYTQxYmQwY2NjMTI2MDMyZmYwMWZiNmM3Yzg1ZjY0
ZWNhYzE2YzE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA1LTI5ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGRyYXcgcGllLWNoYXJ0IGJhc2VkIG9uIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gYmFj
a2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc3
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBwaWUgY2hhcnQgZm9yIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gaW5zcGVjdG9yIG1lbW9y
eSBhZ2VudC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kLy5OYXRp
dmVNZW1vcnlTbmFwc2hvdFZpZXcuanMuc3dvOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5h
dGl2ZU1lbW9yeVByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlVHlwZS5wcm90b3R5cGUuYnV0dG9uQ2xpY2tlZC5kaWRSZWNlaXZlTWVtb3J5U25h
cHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnBy
b3RvdHlwZS5idXR0b25DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQ
cm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0
aWVzLl9pbml0aWFsaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQ
cm9wZXJ0aWVzLl9mb3JNZW1vcnlCbG9jayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZl
TWVtb3J5UGllQ2hhcnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVBpZUNo
YXJ0LnByb3RvdHlwZS5vblJlc2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVt
b3J5UGllQ2hhcnQucHJvdG90eXBlLl91cGRhdGVTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX2FkZEJsb2NrTGFiZWxzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX3BhaW50LnBh
aW50UGVyY2VudEFuZExhYmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQ
aWVDaGFydC5wcm90b3R5cGUuX3BhaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVN
ZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX2NsZWFyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9uYXRpdmVN
ZW1vcnlQcm9maWxlci5jc3M6IEFkZGVkLgorICAgICAgICAoLm1lbW9yeS1waWUtY2hhcnQtY29u
dGFpbmVyKToKKyAgICAgICAgKC5tZW1vcnktcGllLWNoYXJ0KToKKyAgICAgICAgKC5tZW1vcnkt
YmxvY2tzLWxpc3QgLnN3YXRjaCk6CisgICAgICAgICgubWVtb3J5LWJsb2Nrcy1saXN0KToKKyAg
ICAgICAgKC5tZW1vcnktYmxvY2tzLWxpc3QgLml0ZW0pOgorCiAyMDEyLTA1LTMxICBZb3NoaWZ1
bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1BsYXRmb3JtXSBJbnRy
b2R1Y2UgRGVjaW1hbCBjbGFzcyBmb3IgTnVtYmVyL1JhbmdlIGlucHV0IHR5cGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNTJlZThjNjkwOGVkNTAzMjQ1MmRlMDVjNWI3NzQyYWU2MTBlOTc0ZC4uMzUx
YjM4NWFmOTNhM2QzY2VhYTljYjc0NWJlYmVlZmZhYTVlYmNmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNjU0OSw2ICs2NTQ5LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hl
bHBTY3JlZW4uY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luZGV4ZWRE
QlZpZXdzLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JD
b21tb24uY3NzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL25hdGl2ZU1lbW9y
eVByb2ZpbGVyLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0
b3JWaWV3LmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uZXR3b3JrTG9n
Vmlldy5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvbmV0d29ya1BhbmVs
LmNzcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IGIxYjFkZTcwNmRkNWI0OTEzZTlmNDdhNzQ1MzI0ZDhhMTJmODVmZGEuLmMzY2NkZjk3YjBj
MDRjNDFmMDRlM2ZlOWRiMDViNGRhY2U4Y2I1NjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03NDY5OCw2ICs3NDY5OCwxMCBAQAogCQkJCQk+
CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XGZyb250LWVuZFxuYXRpdmVNZW1vcnlQcm9maWxlci5jc3MiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXG5h
dmlnYXRvclZpZXcuY3NzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggOTdiYzA5N2RhZDJi
OWIzNGZkMTBhZTYyMzkyN2MyMzYyZmM1OGM0NC4uOTIyNTQ1ODQzMjZhODVjYWM4NzM5YzIzZmRh
Yjc5MDZjNTVjOTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTWVtb3J5QWdlbnQuY3BwCkBAIC02MCw5ICs2MCw5IEBAIHVzaW5nIFdlYkNvcmU6OlR5cGVC
dWlsZGVyOjpNZW1vcnk6OlN0cmluZ1N0YXRpc3RpY3M7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IG5hbWVzcGFjZSBNZW1vcnlCbG9ja05hbWUgewotc3RhdGljIGNvbnN0IGNoYXIgdG90YWxKc0hl
YXBbXSA9ICJUb3RhbEpTSGVhcCI7CitzdGF0aWMgY29uc3QgY2hhciBqc0hlYXBBbGxvY2F0ZWRb
XSA9ICJKU0hlYXBBbGxvY2F0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIganNIZWFwVXNlZFtdID0g
IkpTSGVhcFVzZWQiOwogc3RhdGljIGNvbnN0IGNoYXIgcHJvY2Vzc1ByaXZhdGVNZW1vcnlbXSA9
ICJQcm9jZXNzUHJpdmF0ZU1lbW9yeSI7Ci1zdGF0aWMgY29uc3QgY2hhciB1c2VkSnNIZWFwW10g
PSAiVXNlZEpTSGVhcCI7CiB9CiAKIG5hbWVzcGFjZSB7CkBAIC0zMjIsMTYgKzMyMiwxNiBAQCBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5OjpNZW1vcnlCbG9j
az4ganNIZWFwSW5mbygpCiAgICAgc2l6ZV90IGpzSGVhcFNpemVMaW1pdDsKICAgICBTY3JpcHRH
Q0V2ZW50OjpnZXRIZWFwU2l6ZSh1c2VkSlNIZWFwU2l6ZSwgdG90YWxKU0hlYXBTaXplLCBqc0hl
YXBTaXplTGltaXQpOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6
Ok1lbW9yeUJsb2NrPiB0b3RhbEpzSGVhcCA9IFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6
Ok1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6dG90YWxKc0hl
YXApOwotICAgIHRvdGFsSnNIZWFwLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odG90YWxKU0hl
YXBTaXplKSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9y
eUJsb2NrPiBqc0hlYXBBbGxvY2F0ZWQgPSBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5OjpN
ZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1vcnlCbG9ja05hbWU6OmpzSGVhcEFsbG9j
YXRlZCk7CisgICAganNIZWFwQWxsb2NhdGVkLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odG90
YWxKU0hlYXBTaXplKSk7CiAKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFdlYkNvcmU6
OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPiA+IGNoaWxkcmVuID0gVHlwZUJ1aWxk
ZXI6OkFycmF5PFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPjo6Y3Jl
YXRlKCk7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJs
b2NrPiB1c2VkSnNIZWFwID0gV2ViQ29yZTo6VHlwZUJ1aWxkZXI6Ok1lbW9yeTo6TWVtb3J5Qmxv
Y2s6OmNyZWF0ZSgpLnNldE5hbWUoTWVtb3J5QmxvY2tOYW1lOjp1c2VkSnNIZWFwKTsKLSAgICB1
c2VkSnNIZWFwLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odXNlZEpTSGVhcFNpemUpKTsKLSAg
ICBjaGlsZHJlbi0+YWRkSXRlbSh1c2VkSnNIZWFwKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VHlw
ZUJ1aWxkZXI6Ok1lbW9yeTo6TWVtb3J5QmxvY2s+IGpzSGVhcFVzZWQgPSBXZWJDb3JlOjpUeXBl
QnVpbGRlcjo6TWVtb3J5OjpNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1vcnlCbG9j
a05hbWU6OmpzSGVhcFVzZWQpOworICAgIGpzSGVhcFVzZWQtPnNldFNpemUoc3RhdGljX2Nhc3Q8
aW50Pih1c2VkSlNIZWFwU2l6ZSkpOworICAgIGNoaWxkcmVuLT5hZGRJdGVtKGpzSGVhcFVzZWQp
OwogCi0gICAgdG90YWxKc0hlYXAtPnNldENoaWxkcmVuKGNoaWxkcmVuKTsKLSAgICByZXR1cm4g
dG90YWxKc0hlYXAucmVsZWFzZSgpOworICAgIGpzSGVhcEFsbG9jYXRlZC0+c2V0Q2hpbGRyZW4o
Y2hpbGRyZW4pOworICAgIHJldHVybiBqc0hlYXBBbGxvY2F0ZWQucmVsZWFzZSgpOwogfQogCiB2
b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50OjpnZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uKEVy
cm9yU3RyaW5nKiwgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJs
b2NrPiYgcHJvY2Vzc01lbW9yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvLk5hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcy5zd28gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kLy5OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMuc3dv
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVhZDFkZjA5NGVkNTMzOWEzZDQ3NzZlMjQ1ZTg1YjE1ZDI0NzZjOWMKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDQwOTYKemNtZUl1T0t0KSYzPGxzXzBJNGIkO0lXPDwlN08j
MUxLVXo7Jj9UQSk/bzFGOU1AfDZFNXg1QU85LT8+WDEtSj9mCno1KXdQUSQ2aCY+QmwtV2ItZn0h
PzRmUX0+PnJKVkA8TH5WQmI1YDZ8c0BpY0M+aUx0cD9JbTA1Ym51eHIjOXJxXwp6YDQrRXpgUzJH
ND9idSlkUSF0Zzc8VGZTXzQtbld1RUcofkFLSUtAITdpT099IXUrO2Z6ZWRDZSkmLTl5NjJtdT4K
eml3VXxsT3coeGhJS2gmKm4hRDc4ZzV1S1JMMnYkWl9ycXpAaW9ncDlHfVBkdS0+WlhtSk1DOFVl
ZW5YQkM4N3czClRmQ3p8eTIjQTBQaD0yJSl6K0s9MWdoKVZ6CgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2
ZU1lbW9yeVNuYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzCmluZGV4IDJmNzA5ZmUyMzBjZjFkZWNlZDI4
NjgwN2IyZGY0YjA1OGE0MDQyMzkuLjFkZmIyMWFhNDExNTZhNzg2Y2UwYTEyMzdhNWQ1ZDFhYThj
N2M2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0
aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzCkBAIC0zNSw5ICszNSwxMyBAQAog
V2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVNuYXBzaG90VmlldyA9IGZ1bmN0aW9uKHByb2ZpbGUp
CiB7CiAgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKLSAgICB0aGlzLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcygibWVtb3J5LWNoYXJ0LXZpZXciKTsKLSAgICB0aGlzLmVsZW1lbnQuY3Jl
YXRlQ2hpbGQoImRpdiIpLnRleHRDb250ZW50ID0gIk1lbW9yeSBjaGFydCI7CisgICAgdGhpcy5y
ZWdpc3RlclJlcXVpcmVkQ1NTKCJuYXRpdmVNZW1vcnlQcm9maWxlci5jc3MiKTsKICAgICB0aGlz
Ll9wcm9maWxlID0gcHJvZmlsZTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygibWVt
b3J5LWNoYXJ0LXZpZXciKTsKKworICAgIHZhciBwaWVDaGFydCA9IG5ldyBXZWJJbnNwZWN0b3Iu
TmF0aXZlTWVtb3J5UGllQ2hhcnQocHJvZmlsZS5fbWVtb3J5QmxvY2spOworICAgIHBpZUNoYXJ0
LmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZmlsbCIpOworICAgIHBpZUNoYXJ0LnNob3codGhpcy5l
bGVtZW50KTsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5wcm90
b3R5cGUgPSB7CkBAIC02NSw3ICs2OSw3IEBAIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlTbmFw
c2hvdFZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByCiBXZWJJ
bnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUgPSBmdW5jdGlvbigpCiB7CiAgICAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVUeXBlLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9y
eVByb2ZpbGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUYWtlIE5hdGl2ZSBN
ZW1vcnkgU25hcHNob3QiKSk7Ci0gICAgdGhpcy5fcHJvZmlsZUluZGV4ID0gMTsKKyAgICB0aGlz
Ll9uZXh0UHJvZmlsZVVpZCA9IDE7CiB9CiAKIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9m
aWxlVHlwZS5UeXBlSWQgPSAiTkFUSVZFX01FTU9SWSI7CkBAIC04Myw4ICs4NywxNiBAQCBXZWJJ
bnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogICAgIGJ1dHRv
bkNsaWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBwcm9maWxlc1BhbmVsID0g
V2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlczsKLSAgICAgICAgdmFyIHByb2ZpbGVIZWFkZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVIZWFkZXIodGhpcywgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTbmFwc2hvdCAlZCIsIHRoaXMuX3Byb2ZpbGVJbmRleCsrKSwgLTEp
OworICAgICAgICB2YXIgcHJvZmlsZUhlYWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVt
b3J5UHJvZmlsZUhlYWRlcih0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNuYXBzaG90ICVk
IiwgdGhpcy5fbmV4dFByb2ZpbGVVaWQpLCB0aGlzLl9uZXh0UHJvZmlsZVVpZCk7CisgICAgICAg
ICsrdGhpcy5fbmV4dFByb2ZpbGVVaWQ7CisgICAgICAgIHByb2ZpbGVIZWFkZXIuaXNUZW1wb3Jh
cnkgPSB0cnVlOwogICAgICAgICBwcm9maWxlc1BhbmVsLmFkZFByb2ZpbGVIZWFkZXIocHJvZmls
ZUhlYWRlcik7CisgICAgICAgIGZ1bmN0aW9uIGRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdChlcnJv
ciwgbWVtb3J5QmxvY2spCisgICAgICAgIHsKKyAgICAgICAgICAgIHByb2ZpbGVIZWFkZXIuX21l
bW9yeUJsb2NrID0gbWVtb3J5QmxvY2s7CisgICAgICAgICAgICBwcm9maWxlSGVhZGVyLmlzVGVt
cG9yYXJ5ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgTWVtb3J5QWdlbnQuZ2V0UHJvY2Vz
c01lbW9yeURpc3RyaWJ1dGlvbihkaWRSZWNlaXZlTWVtb3J5U25hcHNob3QuYmluZCh0aGlzKSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCkBAIC0xMzIsNiArMTQ0LDExIEBAIFdl
Ykluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZS5wcm90b3R5cGUuX19wcm90b19fID0g
V2ViSW5zcGVjdG9yLlByb2ZpbGVUCiBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZUhl
YWRlciA9IGZ1bmN0aW9uKHR5cGUsIHRpdGxlLCB1aWQpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVIZWFkZXIuY2FsbCh0aGlzLCB0eXBlLCB0aXRsZSwgdWlkKTsKKworICAgIC8qKgorICAg
ICAqIEB0eXBlIHtNZW1vcnlBZ2VudC5NZW1vcnlCbG9ja30KKyAgICAgKi8KKyAgICB0aGlzLl9t
ZW1vcnlCbG9jayA9IG51bGw7CiB9CiAKIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxl
SGVhZGVyLnByb3RvdHlwZSA9IHsKQEAgLTE1MywzICsxNzAsMTgyIEBAIFdlYkluc3BlY3Rvci5O
YXRpdmVNZW1vcnlQcm9maWxlSGVhZGVyLnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9y
Lk5hdGl2ZU1lbW9yeVByb2ZpbGVIZWFkZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlwZTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAq
IEBwYXJhbSB7c3RyaW5nfSBmaWxsU3R5bGUKKyAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgKiBA
cGFyYW0ge3N0cmluZ30gZGVzY3JpcHRpb24KKyAqLworV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2Nr
Vmlld1Byb3BlcnRpZXMgPSBmdW5jdGlvbihmaWxsU3R5bGUsIG5hbWUsIGRlc2NyaXB0aW9uKQor
eworICAgIHRoaXMuX2ZpbGxTdHlsZSA9IGZpbGxTdHlsZTsKKyAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKKyAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworfQorCisvKioKKyAqIEB0
eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRp
ZXM+fQorICovCitXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fc3RhbmRh
cmRCbG9ja3MgPSBudWxsOworCitXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGll
cy5faW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAoV2ViSW5zcGVjdG9yLk1lbW9y
eUJsb2NrVmlld1Byb3BlcnRpZXMuX3N0YW5kYXJkQmxvY2tzKQorICAgICAgICByZXR1cm47Cisg
ICAgV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX3N0YW5kYXJkQmxvY2tz
ID0ge307CisgICAgZnVuY3Rpb24gYWRkQmxvY2soZmlsbFN0eWxlLCBuYW1lLCBkZXNjcmlwdGlv
bikKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVz
Ll9zdGFuZGFyZEJsb2Nrc1tuYW1lXSA9IG5ldyBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3
UHJvcGVydGllcyhmaWxsU3R5bGUsIG5hbWUsIFdlYkluc3BlY3Rvci5VSVN0cmluZyhkZXNjcmlw
dGlvbikpOworICAgIH0KKyAgICBhZGRCbG9jaygicmdiYSgyNDAsIDI0MCwgMjUwLCAwLjgpIiwg
IlByb2Nlc3NQcml2YXRlTWVtb3J5IiwgIlRvdGFsIik7CisgICAgYWRkQmxvY2soInJnYmEoMjUw
LCAyMDAsIDIwMCwgMC44KSIsICJKU0hlYXBBbGxvY2F0ZWQiLCAiSmF2YVNjcmlwdCBoZWFwIik7
CisgICAgYWRkQmxvY2soInJnYmEoMjAwLCAyNTAsIDIwMCwgMC44KSIsICJKU0hlYXBVc2VkIiwg
IlVzZWQgSmF2YVNjcmlwdCBoZWFwIik7Cit9CisKK1dlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1Zp
ZXdQcm9wZXJ0aWVzLl9mb3JNZW1vcnlCbG9jayA9IGZ1bmN0aW9uKG1lbW9yeUJsb2NrKQorewor
ICAgIFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLl9pbml0aWFsaXplKCk7
CisgICAgdmFyIHJlc3VsdCA9IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVz
Ll9zdGFuZGFyZEJsb2Nrc1ttZW1vcnlCbG9jay5uYW1lXTsKKyAgICBpZiAocmVzdWx0KQorICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLk1lbW9yeUJs
b2NrVmlld1Byb3BlcnRpZXMoInJnYmEoMjAsIDIwMCwgMjAsIDAuOCkiLCBtZW1vcnlCbG9jay5u
YW1lLCBtZW1vcnlCbG9jay5uYW1lKTsKK30KKworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICog
QGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQorICogQHBhcmFtIHtNZW1vcnlBZ2VudC5NZW1v
cnlCbG9ja30gbWVtb3J5U25hcHNob3QKKyAqLworV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVBp
ZUNoYXJ0ID0gZnVuY3Rpb24obWVtb3J5U25hcHNob3QpCit7CisgICAgV2ViSW5zcGVjdG9yLlZp
ZXcuY2FsbCh0aGlzKTsKKyAgICB0aGlzLl9tZW1vcnlTbmFwc2hvdCA9IG1lbW9yeVNuYXBzaG90
OworICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
IHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJtZW1vcnktcGllLWNoYXJ0LWNvbnRhaW5lciIp
OworICAgIHRoaXMuX21lbW9yeUJsb2NrTGlzdCA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgi
ZGl2IiwgIm1lbW9yeS1ibG9ja3MtbGlzdCIpOworCisgICAgdGhpcy5fY2FudmFzQ29udGFpbmVy
ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAibWVtb3J5LXBpZS1jaGFydCIpOwor
ICAgIHRoaXMuX2NhbnZhcyA9IHRoaXMuX2NhbnZhc0NvbnRhaW5lci5jcmVhdGVDaGlsZCgiY2Fu
dmFzIik7CisgICAgdGhpcy5fYWRkQmxvY2tMYWJlbHMobWVtb3J5U25hcHNob3QsIHRydWUpOwor
fQorCitXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UGllQ2hhcnQucHJvdG90eXBlID0geworICAg
IC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqLworICAgIG9uUmVzaXplOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICB0aGlzLl91cGRhdGVTaXplKCk7CisgICAgICAgIHRoaXMuX3BhaW50
KCk7CisgICAgfSwKKworICAgIF91cGRhdGVTaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICB2YXIgd2lkdGggPSB0aGlzLl9jYW52YXNDb250YWluZXIuY2xpZW50V2lkdGggLSA1OworICAg
ICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5fY2FudmFzQ29udGFpbmVyLmNsaWVudEhlaWdodCAtIDU7
CisgICAgICAgIHRoaXMuX2NhbnZhcy53aWR0aCA9IHdpZHRoOworICAgICAgICB0aGlzLl9jYW52
YXMuaGVpZ2h0ID0gaGVpZ2h0OworICAgIH0sCisKKyAgICBfYWRkQmxvY2tMYWJlbHM6IGZ1bmN0
aW9uKG1lbW9yeUJsb2NrLCBpbmNsdWRlQ2hpbGRyZW4pCisgICAgeworICAgICAgICB2YXIgdmll
d1Byb3BlcnRpZXMgPSBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fZm9y
TWVtb3J5QmxvY2sobWVtb3J5QmxvY2spOworICAgICAgICB2YXIgdGl0bGUgPSB2aWV3UHJvcGVy
dGllcy5fZGVzY3JpcHRpb24gKyAiOiAiICsgTnVtYmVyLmJ5dGVzVG9TdHJpbmcobWVtb3J5Qmxv
Y2suc2l6ZSk7CisKKyAgICAgICAgdmFyIHN3YXRjaEVsZW1lbnQgPSB0aGlzLl9tZW1vcnlCbG9j
a0xpc3QuY3JlYXRlQ2hpbGQoImRpdiIsICJpdGVtIik7CisgICAgICAgIHN3YXRjaEVsZW1lbnQu
Y3JlYXRlQ2hpbGQoImRpdiIsICJzd2F0Y2giKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB2aWV3
UHJvcGVydGllcy5fZmlsbFN0eWxlOworICAgICAgICBzd2F0Y2hFbGVtZW50LmNyZWF0ZUNoaWxk
KCJzcGFuIiwgInRpdGxlIikudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcodGl0
bGUpOworCisgICAgICAgIGlmICghbWVtb3J5QmxvY2suY2hpbGRyZW4gfHwgIWluY2x1ZGVDaGls
ZHJlbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBt
ZW1vcnlCbG9jay5jaGlsZHJlbi5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHRoaXMuX2FkZEJs
b2NrTGFiZWxzKG1lbW9yeUJsb2NrLmNoaWxkcmVuW2ldLCBmYWxzZSk7CisgICAgfSwKKworICAg
IF9wYWludDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2xlYXIoKTsKKyAgICAg
ICAgdmFyIHdpZHRoID0gdGhpcy5fY2FudmFzLndpZHRoOworICAgICAgICB2YXIgaGVpZ2h0ID0g
dGhpcy5fY2FudmFzLmhlaWdodDsKKworICAgICAgICB2YXIgeCA9IHdpZHRoIC8gMjsKKyAgICAg
ICAgdmFyIHkgPSBoZWlnaHQgLyAyOworICAgICAgICB2YXIgcmFkaXVzID0gMjAwOworCisgICAg
ICAgIHZhciBjdHggPSB0aGlzLl9jYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgY3R4
LmJlZ2luUGF0aCgpOworICAgICAgICBjdHguYXJjKHgsIHksIHJhZGl1cywgMCwgTWF0aC5QSSoy
LCBmYWxzZSk7CisgICAgICAgIGN0eC5saW5lV2lkdGggPSAxOworICAgICAgICBjdHguZmlsbFN0
eWxlID0gV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX2Zvck1lbW9yeUJs
b2NrKHRoaXMuX21lbW9yeVNuYXBzaG90KS5fZmlsbFN0eWxlOworICAgICAgICBjdHguc3Ryb2tl
U3R5bGUgPSAicmdiYSgxMzAsIDEzMCwgMTMwLCAwLjgpIjsKKyAgICAgICAgY3R4LmZpbGwoKTsK
KyAgICAgICAgY3R4LnN0cm9rZSgpOworICAgICAgICBjdHguY2xvc2VQYXRoKCk7CisKKyAgICAg
ICAgdmFyIHN0YXJ0QW5nbGUgPSAtIE1hdGguUEkgLyAyOworICAgICAgICB2YXIgY3VycmVudEFu
Z2xlID0gc3RhcnRBbmdsZTsKKyAgICAgICAgdmFyIG1lbW9yeUJsb2NrID0gdGhpcy5fbWVtb3J5
U25hcHNob3Q7CisKKyAgICAgICAgZnVuY3Rpb24gcGFpbnRQZXJjZW50QW5kTGFiZWwoZnJhY3Rp
b24sIHRpdGxlLCBtaWRBbmdsZSkKKyAgICAgICAgeworICAgICAgICAgICAgY3R4LmJlZ2luUGF0
aCgpOworICAgICAgICAgICAgY3R4LmZvbnQgPSAiMTRweCBBcmlhbCI7CisgICAgICAgICAgICBj
dHguZmlsbFN0eWxlID0gInJnYmEoMTAsIDEwLCAxMCwgMC44KSI7CisKKyAgICAgICAgICAgIHZh
ciB0ZXh0WCA9IHggKyByYWRpdXMgKiBNYXRoLmNvcyhtaWRBbmdsZSkgLyAyOworICAgICAgICAg
ICAgdmFyIHRleHRZID0geSArIHJhZGl1cyAqIE1hdGguc2luKG1pZEFuZ2xlKSAvIDI7CisgICAg
ICAgICAgICBjdHguZmlsbFRleHQoKDEwMCAqIGZyYWN0aW9uKS50b0ZpeGVkKDApICsgIiUiLCB0
ZXh0WCwgdGV4dFkpOworCisgICAgICAgICAgICB0ZXh0WCA9IHggKyByYWRpdXMgKiBNYXRoLmNv
cyhtaWRBbmdsZSk7CisgICAgICAgICAgICB0ZXh0WSA9IHkgKyByYWRpdXMgKiBNYXRoLnNpbiht
aWRBbmdsZSk7CisgICAgICAgICAgICBpZiAobWlkQW5nbGUgPD0gc3RhcnRBbmdsZSArIE1hdGgu
UEkpIHsKKyAgICAgICAgICAgICAgICB0ZXh0WCArPSAxMDsKKyAgICAgICAgICAgICAgICB0ZXh0
WSArPSAxMDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyIG1ldHJp
Y3MgPSBjdHgubWVhc3VyZVRleHQodGl0bGUpOworICAgICAgICAgICAgICAgIHRleHRYIC09IG1l
dHJpY3Mud2lkdGggKyAxMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN0eC5maWxsVGV4
dCh0aXRsZSwgdGV4dFgsIHRleHRZKTsKKyAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChtZW1vcnlCbG9jay5jaGlsZHJlbikgeworICAgICAgICAg
ICAgdmFyIHRvdGFsID0gbWVtb3J5QmxvY2suc2l6ZTsKKyAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbWVtb3J5QmxvY2suY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAg
ICAgICB2YXIgY2hpbGQgPSBtZW1vcnlCbG9jay5jaGlsZHJlbltpXTsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNoaWxkLnNpemUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIHZhciB2aWV3UHJvcGVydGllcyA9IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1Zp
ZXdQcm9wZXJ0aWVzLl9mb3JNZW1vcnlCbG9jayhjaGlsZCk7CisgICAgICAgICAgICAgICAgdmFy
IGFuZ2xlU3BhbiA9IE1hdGguUEkgKiAyICogKGNoaWxkLnNpemUgLyB0b3RhbCk7CisgICAgICAg
ICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgICAgICAgICAgIGN0eC5tb3ZlVG8oeCwg
eSk7CisgICAgICAgICAgICAgICAgY3R4LmxpbmVUbyh4ICsgcmFkaXVzICogTWF0aC5jb3MoY3Vy
cmVudEFuZ2xlKSwgeSArIHJhZGl1cyAqIE1hdGguc2luKGN1cnJlbnRBbmdsZSkpOworICAgICAg
ICAgICAgICAgIGN0eC5hcmMoeCwgeSwgcmFkaXVzLCBjdXJyZW50QW5nbGUsIGN1cnJlbnRBbmds
ZSArIGFuZ2xlU3BhbiwgZmFsc2UpOworICAgICAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAw
LjU7CisgICAgICAgICAgICAgICAgY3R4LmxpbmVUbyh4LCB5KTsKKyAgICAgICAgICAgICAgICBj
dHguZmlsbFN0eWxlID0gdmlld1Byb3BlcnRpZXMuX2ZpbGxTdHlsZTsKKyAgICAgICAgICAgICAg
ICBjdHguc3Ryb2tlU3R5bGUgPSAicmdiYSgxMDAsIDEwMCwgMTAwLCAwLjgpIjsKKyAgICAgICAg
ICAgICAgICBjdHguZmlsbCgpOworICAgICAgICAgICAgICAgIGN0eC5zdHJva2UoKTsKKyAgICAg
ICAgICAgICAgICBjdHguY2xvc2VQYXRoKCk7CisKKyAgICAgICAgICAgICAgICBwYWludFBlcmNl
bnRBbmRMYWJlbChjaGlsZC5zaXplIC8gdG90YWwsIHZpZXdQcm9wZXJ0aWVzLl9kZXNjcmlwdGlv
biwgY3VycmVudEFuZ2xlICsgYW5nbGVTcGFuIC8gMik7CisKKyAgICAgICAgICAgICAgICBjdXJy
ZW50QW5nbGUgKz0gYW5nbGVTcGFuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgdmFyIGZyYWN0aW9uID0gMSAtIChjdXJyZW50QW5nbGUgLSBzdGFydEFuZ2xlKSAvICgyICog
TWF0aC5QSSk7CisgICAgICAgIHZhciBtaWRBbmdsZSA9IChjdXJyZW50QW5nbGUgKyBzdGFydEFu
Z2xlICsgMiAqIE1hdGguUEkpIC8gMjsKKyAgICAgICAgcGFpbnRQZXJjZW50QW5kTGFiZWwoZnJh
Y3Rpb24sIFdlYkluc3BlY3Rvci5VSVN0cmluZygiVW5rbm93biIpLCBtaWRBbmdsZSk7CisgICAg
fSwKKworICAgIF9jbGVhcjogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBjdHggPSB0aGlzLl9j
YW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjdHgu
Y2FudmFzLndpZHRoLCBjdHguY2FudmFzLmhlaWdodCk7CisgICAgfQorfQorCitXZWJJbnNwZWN0
b3IuTmF0aXZlTWVtb3J5UGllQ2hhcnQucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
V2ViS2l0LnFyYwppbmRleCBiNjZlMTlmNmFjNTQ1Y2MwYTI3ZjQyZjJmNDA4OGJlZmEyNjNlZTk0
Li41ZjJhYzA5NzU2NjZiODk5NDVlMzBiZGM2ZWJkYTNmYmM1OGFkOTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0xOTcsNiArMTk3LDcg
QEAKICAgICA8ZmlsZT5pbnNwZWN0b3IuY3NzPC9maWxlPgogICAgIDxmaWxlPmluc3BlY3RvckNv
bW1vbi5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+aW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzczwv
ZmlsZT4KKyAgICA8ZmlsZT5uYXRpdmVNZW1vcnlQcm9maWxlci5jc3M8L2ZpbGU+CiAgICAgPGZp
bGU+bmF2aWdhdG9yVmlldy5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+bmV0d29ya0xvZ1ZpZXcuY3Nz
PC9maWxlPgogICAgIDxmaWxlPm5ldHdvcmtQYW5lbC5jc3M8L2ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL25hdGl2ZU1lbW9yeVByb2ZpbGVyLmNz
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmF0aXZlTWVtb3J5UHJvZmls
ZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhlNWNlNTcxODE3NDA3OTI4YTI2NTRmYjZmZDkzYTdjMzBk
NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L25hdGl2ZU1lbW9yeVByb2ZpbGVyLmNzcwpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLm1lbW9yeS1waWUtY2hh
cnQtY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJv
eC1vcmllbnQ6IHZlcnRpY2FsOworfQorCisubWVtb3J5LXBpZS1jaGFydCB7CisgICAgLXdlYmtp
dC1ib3gtZmxleDogMTsKK30KKworLm1lbW9yeS1ibG9ja3MtbGlzdCAuc3dhdGNoIHsKKyAgICBi
YWNrZ3JvdW5kLWltYWdlOiBub25lOworfQorCisubWVtb3J5LWJsb2Nrcy1saXN0IHsKKyAgICBw
YWRkaW5nOiAxcHg7CisgICAgZm9udC1zaXplOiAxMXB4OworfQorCisubWVtb3J5LWJsb2Nrcy1s
aXN0IC5pdGVtIHsKKyAgICBtYXJnaW46IDEwcHg7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145084</attachid>
            <date>2012-05-31 07:11:27 -0700</date>
            <delta_ts>2012-05-31 07:12:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87737-20120531181126.patch</filename>
            <type>text/plain</type>
            <size>18120</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjMTI3ZDE3NjI0OGUz
YjNiMGU3OGVkMTVjMGVjMjc3MTYxYzQwYS4uYTQxYmQwY2NjMTI2MDMyZmYwMWZiNmM3Yzg1ZjY0
ZWNhYzE2YzE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA1LTI5ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGRyYXcgcGllLWNoYXJ0IGJhc2VkIG9uIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gYmFj
a2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc3
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBwaWUgY2hhcnQgZm9yIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gaW5zcGVjdG9yIG1lbW9y
eSBhZ2VudC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kLy5OYXRp
dmVNZW1vcnlTbmFwc2hvdFZpZXcuanMuc3dvOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5h
dGl2ZU1lbW9yeVByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlVHlwZS5wcm90b3R5cGUuYnV0dG9uQ2xpY2tlZC5kaWRSZWNlaXZlTWVtb3J5U25h
cHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnBy
b3RvdHlwZS5idXR0b25DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQ
cm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0
aWVzLl9pbml0aWFsaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQ
cm9wZXJ0aWVzLl9mb3JNZW1vcnlCbG9jayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZl
TWVtb3J5UGllQ2hhcnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVBpZUNo
YXJ0LnByb3RvdHlwZS5vblJlc2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVt
b3J5UGllQ2hhcnQucHJvdG90eXBlLl91cGRhdGVTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX2FkZEJsb2NrTGFiZWxzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX3BhaW50LnBh
aW50UGVyY2VudEFuZExhYmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQ
aWVDaGFydC5wcm90b3R5cGUuX3BhaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVN
ZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX2NsZWFyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9uYXRpdmVN
ZW1vcnlQcm9maWxlci5jc3M6IEFkZGVkLgorICAgICAgICAoLm1lbW9yeS1waWUtY2hhcnQtY29u
dGFpbmVyKToKKyAgICAgICAgKC5tZW1vcnktcGllLWNoYXJ0KToKKyAgICAgICAgKC5tZW1vcnkt
YmxvY2tzLWxpc3QgLnN3YXRjaCk6CisgICAgICAgICgubWVtb3J5LWJsb2Nrcy1saXN0KToKKyAg
ICAgICAgKC5tZW1vcnktYmxvY2tzLWxpc3QgLml0ZW0pOgorCiAyMDEyLTA1LTMxICBZb3NoaWZ1
bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1BsYXRmb3JtXSBJbnRy
b2R1Y2UgRGVjaW1hbCBjbGFzcyBmb3IgTnVtYmVyL1JhbmdlIGlucHV0IHR5cGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNTJlZThjNjkwOGVkNTAzMjQ1MmRlMDVjNWI3NzQyYWU2MTBlOTc0ZC4uMzUx
YjM4NWFmOTNhM2QzY2VhYTljYjc0NWJlYmVlZmZhYTVlYmNmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNjU0OSw2ICs2NTQ5LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hl
bHBTY3JlZW4uY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luZGV4ZWRE
QlZpZXdzLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JD
b21tb24uY3NzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL25hdGl2ZU1lbW9y
eVByb2ZpbGVyLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0
b3JWaWV3LmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uZXR3b3JrTG9n
Vmlldy5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvbmV0d29ya1BhbmVs
LmNzcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IGIxYjFkZTcwNmRkNWI0OTEzZTlmNDdhNzQ1MzI0ZDhhMTJmODVmZGEuLmMzY2NkZjk3YjBj
MDRjNDFmMDRlM2ZlOWRiMDViNGRhY2U4Y2I1NjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03NDY5OCw2ICs3NDY5OCwxMCBAQAogCQkJCQk+
CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XGZyb250LWVuZFxuYXRpdmVNZW1vcnlQcm9maWxlci5jc3MiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXG5h
dmlnYXRvclZpZXcuY3NzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggOTdiYzA5N2RhZDJi
OWIzNGZkMTBhZTYyMzkyN2MyMzYyZmM1OGM0NC4uOTIyNTQ1ODQzMjZhODVjYWM4NzM5YzIzZmRh
Yjc5MDZjNTVjOTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTWVtb3J5QWdlbnQuY3BwCkBAIC02MCw5ICs2MCw5IEBAIHVzaW5nIFdlYkNvcmU6OlR5cGVC
dWlsZGVyOjpNZW1vcnk6OlN0cmluZ1N0YXRpc3RpY3M7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IG5hbWVzcGFjZSBNZW1vcnlCbG9ja05hbWUgewotc3RhdGljIGNvbnN0IGNoYXIgdG90YWxKc0hl
YXBbXSA9ICJUb3RhbEpTSGVhcCI7CitzdGF0aWMgY29uc3QgY2hhciBqc0hlYXBBbGxvY2F0ZWRb
XSA9ICJKU0hlYXBBbGxvY2F0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIganNIZWFwVXNlZFtdID0g
IkpTSGVhcFVzZWQiOwogc3RhdGljIGNvbnN0IGNoYXIgcHJvY2Vzc1ByaXZhdGVNZW1vcnlbXSA9
ICJQcm9jZXNzUHJpdmF0ZU1lbW9yeSI7Ci1zdGF0aWMgY29uc3QgY2hhciB1c2VkSnNIZWFwW10g
PSAiVXNlZEpTSGVhcCI7CiB9CiAKIG5hbWVzcGFjZSB7CkBAIC0zMjIsMTYgKzMyMiwxNiBAQCBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5OjpNZW1vcnlCbG9j
az4ganNIZWFwSW5mbygpCiAgICAgc2l6ZV90IGpzSGVhcFNpemVMaW1pdDsKICAgICBTY3JpcHRH
Q0V2ZW50OjpnZXRIZWFwU2l6ZSh1c2VkSlNIZWFwU2l6ZSwgdG90YWxKU0hlYXBTaXplLCBqc0hl
YXBTaXplTGltaXQpOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6
Ok1lbW9yeUJsb2NrPiB0b3RhbEpzSGVhcCA9IFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6
Ok1lbW9yeUJsb2NrOjpjcmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6dG90YWxKc0hl
YXApOwotICAgIHRvdGFsSnNIZWFwLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odG90YWxKU0hl
YXBTaXplKSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9y
eUJsb2NrPiBqc0hlYXBBbGxvY2F0ZWQgPSBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5OjpN
ZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1vcnlCbG9ja05hbWU6OmpzSGVhcEFsbG9j
YXRlZCk7CisgICAganNIZWFwQWxsb2NhdGVkLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odG90
YWxKU0hlYXBTaXplKSk7CiAKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFdlYkNvcmU6
OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPiA+IGNoaWxkcmVuID0gVHlwZUJ1aWxk
ZXI6OkFycmF5PFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPjo6Y3Jl
YXRlKCk7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJs
b2NrPiB1c2VkSnNIZWFwID0gV2ViQ29yZTo6VHlwZUJ1aWxkZXI6Ok1lbW9yeTo6TWVtb3J5Qmxv
Y2s6OmNyZWF0ZSgpLnNldE5hbWUoTWVtb3J5QmxvY2tOYW1lOjp1c2VkSnNIZWFwKTsKLSAgICB1
c2VkSnNIZWFwLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odXNlZEpTSGVhcFNpemUpKTsKLSAg
ICBjaGlsZHJlbi0+YWRkSXRlbSh1c2VkSnNIZWFwKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VHlw
ZUJ1aWxkZXI6Ok1lbW9yeTo6TWVtb3J5QmxvY2s+IGpzSGVhcFVzZWQgPSBXZWJDb3JlOjpUeXBl
QnVpbGRlcjo6TWVtb3J5OjpNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1vcnlCbG9j
a05hbWU6OmpzSGVhcFVzZWQpOworICAgIGpzSGVhcFVzZWQtPnNldFNpemUoc3RhdGljX2Nhc3Q8
aW50Pih1c2VkSlNIZWFwU2l6ZSkpOworICAgIGNoaWxkcmVuLT5hZGRJdGVtKGpzSGVhcFVzZWQp
OwogCi0gICAgdG90YWxKc0hlYXAtPnNldENoaWxkcmVuKGNoaWxkcmVuKTsKLSAgICByZXR1cm4g
dG90YWxKc0hlYXAucmVsZWFzZSgpOworICAgIGpzSGVhcEFsbG9jYXRlZC0+c2V0Q2hpbGRyZW4o
Y2hpbGRyZW4pOworICAgIHJldHVybiBqc0hlYXBBbGxvY2F0ZWQucmVsZWFzZSgpOwogfQogCiB2
b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50OjpnZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uKEVy
cm9yU3RyaW5nKiwgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJs
b2NrPiYgcHJvY2Vzc01lbW9yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKaW5kZXggMmY3
MDlmZTIzMGNmMWRlY2VkMjg2ODA3YjJkZjRiMDU4YTQwNDIzOS4uMWRmYjIxYWE0MTE1NmE3ODZj
ZTBhMTIzN2E1ZDVkMWFhOGM3YzYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKQEAg
LTM1LDkgKzM1LDEzIEBACiBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3ID0g
ZnVuY3Rpb24ocHJvZmlsZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwot
ICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJtZW1vcnktY2hhcnQtdmlldyIpOwotICAg
IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IikudGV4dENvbnRlbnQgPSAiTWVtb3J5IGNo
YXJ0IjsKKyAgICB0aGlzLnJlZ2lzdGVyUmVxdWlyZWRDU1MoIm5hdGl2ZU1lbW9yeVByb2ZpbGVy
LmNzcyIpOwogICAgIHRoaXMuX3Byb2ZpbGUgPSBwcm9maWxlOworICAgIHRoaXMuZWxlbWVudC5h
ZGRTdHlsZUNsYXNzKCJtZW1vcnktY2hhcnQtdmlldyIpOworCisgICAgdmFyIHBpZUNoYXJ0ID0g
bmV3IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydChwcm9maWxlLl9tZW1vcnlCbG9j
ayk7CisgICAgcGllQ2hhcnQuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJmaWxsIik7CisgICAgcGll
Q2hhcnQuc2hvdyh0aGlzLmVsZW1lbnQpOwogfQogCiBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5
U25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKQEAgLTY1LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9y
Lk5hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLlZpZXcucHIKIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZSA9IGZ1bmN0
aW9uKCkKIHsKICAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNw
ZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUuVHlwZUlkLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlRha2UgTmF0aXZlIE1lbW9yeSBTbmFwc2hvdCIpKTsKLSAgICB0aGlzLl9wcm9maWxlSW5k
ZXggPSAxOworICAgIHRoaXMuX25leHRQcm9maWxlVWlkID0gMTsKIH0KIAogV2ViSW5zcGVjdG9y
Lk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLlR5cGVJZCA9ICJOQVRJVkVfTUVNT1JZIjsKQEAgLTgz
LDggKzg3LDE2IEBAIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZS5wcm90b3R5
cGUgPSB7CiAgICAgYnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFy
IHByb2ZpbGVzUGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzOwotICAgICAgICB2
YXIgcHJvZmlsZUhlYWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZUhl
YWRlcih0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNuYXBzaG90ICVkIiwgdGhpcy5fcHJv
ZmlsZUluZGV4KyspLCAtMSk7CisgICAgICAgIHZhciBwcm9maWxlSGVhZGVyID0gbmV3IFdlYklu
c3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlSGVhZGVyKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU25hcHNob3QgJWQiLCB0aGlzLl9uZXh0UHJvZmlsZVVpZCksIHRoaXMuX25leHRQcm9m
aWxlVWlkKTsKKyAgICAgICAgKyt0aGlzLl9uZXh0UHJvZmlsZVVpZDsKKyAgICAgICAgcHJvZmls
ZUhlYWRlci5pc1RlbXBvcmFyeSA9IHRydWU7CiAgICAgICAgIHByb2ZpbGVzUGFuZWwuYWRkUHJv
ZmlsZUhlYWRlcihwcm9maWxlSGVhZGVyKTsKKyAgICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZU1l
bW9yeVNuYXBzaG90KGVycm9yLCBtZW1vcnlCbG9jaykKKyAgICAgICAgeworICAgICAgICAgICAg
cHJvZmlsZUhlYWRlci5fbWVtb3J5QmxvY2sgPSBtZW1vcnlCbG9jazsKKyAgICAgICAgICAgIHBy
b2ZpbGVIZWFkZXIuaXNUZW1wb3JhcnkgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBNZW1v
cnlBZ2VudC5nZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uKGRpZFJlY2VpdmVNZW1vcnlTbmFw
c2hvdC5iaW5kKHRoaXMpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKQEAgLTEz
Miw2ICsxNDQsMTEgQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuUHJvZmlsZVQKIFdlYkluc3BlY3Rvci5OYXRp
dmVNZW1vcnlQcm9maWxlSGVhZGVyID0gZnVuY3Rpb24odHlwZSwgdGl0bGUsIHVpZCkKIHsKICAg
ICBXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlci5jYWxsKHRoaXMsIHR5cGUsIHRpdGxlLCB1aWQp
OworCisgICAgLyoqCisgICAgICogQHR5cGUge01lbW9yeUFnZW50Lk1lbW9yeUJsb2NrfQorICAg
ICAqLworICAgIHRoaXMuX21lbW9yeUJsb2NrID0gbnVsbDsKIH0KIAogV2ViSW5zcGVjdG9yLk5h
dGl2ZU1lbW9yeVByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewpAQCAtMTUzLDMgKzE3MCwxODIg
QEAgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewog
fQogCiBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZUhlYWRlci5wcm90b3R5cGUuX19w
cm90b19fID0gV2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXIucHJvdG90eXBlOworCisvKioKKyAq
IEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtzdHJpbmd9IGZpbGxTdHlsZQorICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKKyAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbgorICovCitXZWJJbnNw
ZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcyA9IGZ1bmN0aW9uKGZpbGxTdHlsZSwgbmFt
ZSwgZGVzY3JpcHRpb24pCit7CisgICAgdGhpcy5fZmlsbFN0eWxlID0gZmlsbFN0eWxlOworICAg
IHRoaXMuX25hbWUgPSBuYW1lOworICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247
Cit9CisKKy8qKgorICogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuTWVtb3J5
QmxvY2tWaWV3UHJvcGVydGllcz59CisgKi8KK1dlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQ
cm9wZXJ0aWVzLl9zdGFuZGFyZEJsb2NrcyA9IG51bGw7CisKK1dlYkluc3BlY3Rvci5NZW1vcnlC
bG9ja1ZpZXdQcm9wZXJ0aWVzLl9pbml0aWFsaXplID0gZnVuY3Rpb24oKQoreworICAgIGlmIChX
ZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fc3RhbmRhcmRCbG9ja3MpCisg
ICAgICAgIHJldHVybjsKKyAgICBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGll
cy5fc3RhbmRhcmRCbG9ja3MgPSB7fTsKKyAgICBmdW5jdGlvbiBhZGRCbG9jayhmaWxsU3R5bGUs
IG5hbWUsIGRlc2NyaXB0aW9uKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLk1lbW9yeUJs
b2NrVmlld1Byb3BlcnRpZXMuX3N0YW5kYXJkQmxvY2tzW25hbWVdID0gbmV3IFdlYkluc3BlY3Rv
ci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzKGZpbGxTdHlsZSwgbmFtZSwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKGRlc2NyaXB0aW9uKSk7CisgICAgfQorICAgIGFkZEJsb2NrKCJyZ2JhKDI0MCwg
MjQwLCAyNTAsIDAuOCkiLCAiUHJvY2Vzc1ByaXZhdGVNZW1vcnkiLCAiVG90YWwiKTsKKyAgICBh
ZGRCbG9jaygicmdiYSgyNTAsIDIwMCwgMjAwLCAwLjgpIiwgIkpTSGVhcEFsbG9jYXRlZCIsICJK
YXZhU2NyaXB0IGhlYXAiKTsKKyAgICBhZGRCbG9jaygicmdiYSgyMDAsIDI1MCwgMjAwLCAwLjgp
IiwgIkpTSGVhcFVzZWQiLCAiVXNlZCBKYXZhU2NyaXB0IGhlYXAiKTsKK30KKworV2ViSW5zcGVj
dG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX2Zvck1lbW9yeUJsb2NrID0gZnVuY3Rpb24o
bWVtb3J5QmxvY2spCit7CisgICAgV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRp
ZXMuX2luaXRpYWxpemUoKTsKKyAgICB2YXIgcmVzdWx0ID0gV2ViSW5zcGVjdG9yLk1lbW9yeUJs
b2NrVmlld1Byb3BlcnRpZXMuX3N0YW5kYXJkQmxvY2tzW21lbW9yeUJsb2NrLm5hbWVdOworICAg
IGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIG5ldyBXZWJJ
bnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcygicmdiYSgyMCwgMjAwLCAyMCwgMC44
KSIsIG1lbW9yeUJsb2NrLm5hbWUsIG1lbW9yeUJsb2NrLm5hbWUpOworfQorCisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKiBAcGFyYW0g
e01lbW9yeUFnZW50Lk1lbW9yeUJsb2NrfSBtZW1vcnlTbmFwc2hvdAorICovCitXZWJJbnNwZWN0
b3IuTmF0aXZlTWVtb3J5UGllQ2hhcnQgPSBmdW5jdGlvbihtZW1vcnlTbmFwc2hvdCkKK3sKKyAg
ICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMuX21lbW9yeVNuYXBzaG90
ID0gbWVtb3J5U25hcHNob3Q7CisgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoIm1lbW9yeS1waWUt
Y2hhcnQtY29udGFpbmVyIik7CisgICAgdGhpcy5fbWVtb3J5QmxvY2tMaXN0ID0gdGhpcy5lbGVt
ZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAibWVtb3J5LWJsb2Nrcy1saXN0Iik7CisKKyAgICB0aGlz
Ll9jYW52YXNDb250YWluZXIgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJtZW1v
cnktcGllLWNoYXJ0Iik7CisgICAgdGhpcy5fY2FudmFzID0gdGhpcy5fY2FudmFzQ29udGFpbmVy
LmNyZWF0ZUNoaWxkKCJjYW52YXMiKTsKKyAgICB0aGlzLl9hZGRCbG9ja0xhYmVscyhtZW1vcnlT
bmFwc2hvdCwgdHJ1ZSk7Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5w
cm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICovCisgICAgb25S
ZXNpemU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNpemUoKTsKKyAg
ICAgICAgdGhpcy5fcGFpbnQoKTsKKyAgICB9LAorCisgICAgX3VwZGF0ZVNpemU6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHZhciB3aWR0aCA9IHRoaXMuX2NhbnZhc0NvbnRhaW5lci5jbGll
bnRXaWR0aCAtIDU7CisgICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLl9jYW52YXNDb250YWluZXIu
Y2xpZW50SGVpZ2h0IC0gNTsKKyAgICAgICAgdGhpcy5fY2FudmFzLndpZHRoID0gd2lkdGg7Cisg
ICAgICAgIHRoaXMuX2NhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7CisgICAgfSwKKworICAgIF9hZGRC
bG9ja0xhYmVsczogZnVuY3Rpb24obWVtb3J5QmxvY2ssIGluY2x1ZGVDaGlsZHJlbikKKyAgICB7
CisgICAgICAgIHZhciB2aWV3UHJvcGVydGllcyA9IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1Zp
ZXdQcm9wZXJ0aWVzLl9mb3JNZW1vcnlCbG9jayhtZW1vcnlCbG9jayk7CisgICAgICAgIHZhciB0
aXRsZSA9IHZpZXdQcm9wZXJ0aWVzLl9kZXNjcmlwdGlvbiArICI6ICIgKyBOdW1iZXIuYnl0ZXNU
b1N0cmluZyhtZW1vcnlCbG9jay5zaXplKTsKKworICAgICAgICB2YXIgc3dhdGNoRWxlbWVudCA9
IHRoaXMuX21lbW9yeUJsb2NrTGlzdC5jcmVhdGVDaGlsZCgiZGl2IiwgIml0ZW0iKTsKKyAgICAg
ICAgc3dhdGNoRWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInN3YXRjaCIpLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9IHZpZXdQcm9wZXJ0aWVzLl9maWxsU3R5bGU7CisgICAgICAgIHN3YXRjaEVs
ZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAidGl0bGUiKS50ZXh0Q29udGVudCA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZyh0aXRsZSk7CisKKyAgICAgICAgaWYgKCFtZW1vcnlCbG9jay5jaGlsZHJl
biB8fCAhaW5jbHVkZUNoaWxkcmVuKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IG1lbW9yeUJsb2NrLmNoaWxkcmVuLmxlbmd0aDsgaSsrKQorICAgICAg
ICAgICAgdGhpcy5fYWRkQmxvY2tMYWJlbHMobWVtb3J5QmxvY2suY2hpbGRyZW5baV0sIGZhbHNl
KTsKKyAgICB9LAorCisgICAgX3BhaW50OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlz
Ll9jbGVhcigpOworICAgICAgICB2YXIgd2lkdGggPSB0aGlzLl9jYW52YXMud2lkdGg7CisgICAg
ICAgIHZhciBoZWlnaHQgPSB0aGlzLl9jYW52YXMuaGVpZ2h0OworCisgICAgICAgIHZhciB4ID0g
d2lkdGggLyAyOworICAgICAgICB2YXIgeSA9IGhlaWdodCAvIDI7CisgICAgICAgIHZhciByYWRp
dXMgPSAyMDA7CisKKyAgICAgICAgdmFyIGN0eCA9IHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOworICAgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICAgIGN0eC5hcmMoeCwgeSwgcmFk
aXVzLCAwLCBNYXRoLlBJKjIsIGZhbHNlKTsKKyAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7Cisg
ICAgICAgIGN0eC5maWxsU3R5bGUgPSBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVy
dGllcy5fZm9yTWVtb3J5QmxvY2sodGhpcy5fbWVtb3J5U25hcHNob3QpLl9maWxsU3R5bGU7Cisg
ICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICJyZ2JhKDEzMCwgMTMwLCAxMzAsIDAuOCkiOworICAg
ICAgICBjdHguZmlsbCgpOworICAgICAgICBjdHguc3Ryb2tlKCk7CisgICAgICAgIGN0eC5jbG9z
ZVBhdGgoKTsKKworICAgICAgICB2YXIgc3RhcnRBbmdsZSA9IC0gTWF0aC5QSSAvIDI7CisgICAg
ICAgIHZhciBjdXJyZW50QW5nbGUgPSBzdGFydEFuZ2xlOworICAgICAgICB2YXIgbWVtb3J5Qmxv
Y2sgPSB0aGlzLl9tZW1vcnlTbmFwc2hvdDsKKworICAgICAgICBmdW5jdGlvbiBwYWludFBlcmNl
bnRBbmRMYWJlbChmcmFjdGlvbiwgdGl0bGUsIG1pZEFuZ2xlKQorICAgICAgICB7CisgICAgICAg
ICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICAgICAgICBjdHguZm9udCA9ICIxNHB4IEFyaWFs
IjsKKyAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAicmdiYSgxMCwgMTAsIDEwLCAwLjgpIjsK
KworICAgICAgICAgICAgdmFyIHRleHRYID0geCArIHJhZGl1cyAqIE1hdGguY29zKG1pZEFuZ2xl
KSAvIDI7CisgICAgICAgICAgICB2YXIgdGV4dFkgPSB5ICsgcmFkaXVzICogTWF0aC5zaW4obWlk
QW5nbGUpIC8gMjsKKyAgICAgICAgICAgIGN0eC5maWxsVGV4dCgoMTAwICogZnJhY3Rpb24pLnRv
Rml4ZWQoMCkgKyAiJSIsIHRleHRYLCB0ZXh0WSk7CisKKyAgICAgICAgICAgIHRleHRYID0geCAr
IHJhZGl1cyAqIE1hdGguY29zKG1pZEFuZ2xlKTsKKyAgICAgICAgICAgIHRleHRZID0geSArIHJh
ZGl1cyAqIE1hdGguc2luKG1pZEFuZ2xlKTsKKyAgICAgICAgICAgIGlmIChtaWRBbmdsZSA8PSBz
dGFydEFuZ2xlICsgTWF0aC5QSSkgeworICAgICAgICAgICAgICAgIHRleHRYICs9IDEwOworICAg
ICAgICAgICAgICAgIHRleHRZICs9IDEwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB2YXIgbWV0cmljcyA9IGN0eC5tZWFzdXJlVGV4dCh0aXRsZSk7CisgICAgICAgICAg
ICAgICAgdGV4dFggLT0gbWV0cmljcy53aWR0aCArIDEwOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgY3R4LmZpbGxUZXh0KHRpdGxlLCB0ZXh0WCwgdGV4dFkpOworICAgICAgICAgICAgY3R4
LmNsb3NlUGF0aCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1lbW9yeUJsb2NrLmNoaWxk
cmVuKSB7CisgICAgICAgICAgICB2YXIgdG90YWwgPSBtZW1vcnlCbG9jay5zaXplOworICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW1vcnlCbG9jay5jaGlsZHJlbi5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgICAgIHZhciBjaGlsZCA9IG1lbW9yeUJsb2NrLmNoaWxkcmVuW2ld
OworICAgICAgICAgICAgICAgIGlmICghY2hpbGQuc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAgICAgdmFyIHZpZXdQcm9wZXJ0aWVzID0gV2ViSW5zcGVj
dG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX2Zvck1lbW9yeUJsb2NrKGNoaWxkKTsKKyAg
ICAgICAgICAgICAgICB2YXIgYW5nbGVTcGFuID0gTWF0aC5QSSAqIDIgKiAoY2hpbGQuc2l6ZSAv
IHRvdGFsKTsKKyAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICAgICAgICAg
ICAgY3R4Lm1vdmVUbyh4LCB5KTsKKyAgICAgICAgICAgICAgICBjdHgubGluZVRvKHggKyByYWRp
dXMgKiBNYXRoLmNvcyhjdXJyZW50QW5nbGUpLCB5ICsgcmFkaXVzICogTWF0aC5zaW4oY3VycmVu
dEFuZ2xlKSk7CisgICAgICAgICAgICAgICAgY3R4LmFyYyh4LCB5LCByYWRpdXMsIGN1cnJlbnRB
bmdsZSwgY3VycmVudEFuZ2xlICsgYW5nbGVTcGFuLCBmYWxzZSk7CisgICAgICAgICAgICAgICAg
Y3R4LmxpbmVXaWR0aCA9IDAuNTsKKyAgICAgICAgICAgICAgICBjdHgubGluZVRvKHgsIHkpOwor
ICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSB2aWV3UHJvcGVydGllcy5fZmlsbFN0eWxl
OworICAgICAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICJyZ2JhKDEwMCwgMTAwLCAxMDAs
IDAuOCkiOworICAgICAgICAgICAgICAgIGN0eC5maWxsKCk7CisgICAgICAgICAgICAgICAgY3R4
LnN0cm9rZSgpOworICAgICAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTsKKworICAgICAgICAg
ICAgICAgIHBhaW50UGVyY2VudEFuZExhYmVsKGNoaWxkLnNpemUgLyB0b3RhbCwgdmlld1Byb3Bl
cnRpZXMuX2Rlc2NyaXB0aW9uLCBjdXJyZW50QW5nbGUgKyBhbmdsZVNwYW4gLyAyKTsKKworICAg
ICAgICAgICAgICAgIGN1cnJlbnRBbmdsZSArPSBhbmdsZVNwYW47CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICB2YXIgZnJhY3Rpb24gPSAxIC0gKGN1cnJlbnRBbmdsZSAtIHN0
YXJ0QW5nbGUpIC8gKDIgKiBNYXRoLlBJKTsKKyAgICAgICAgdmFyIG1pZEFuZ2xlID0gKGN1cnJl
bnRBbmdsZSArIHN0YXJ0QW5nbGUgKyAyICogTWF0aC5QSSkgLyAyOworICAgICAgICBwYWludFBl
cmNlbnRBbmRMYWJlbChmcmFjdGlvbiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVbmtub3duIiks
IG1pZEFuZ2xlKTsKKyAgICB9LAorCisgICAgX2NsZWFyOiBmdW5jdGlvbigpIHsKKyAgICAgICAg
dmFyIGN0eCA9IHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgICAgICBjdHguY2xl
YXJSZWN0KDAsIDAsIGN0eC5jYW52YXMud2lkdGgsIGN0eC5jYW52YXMuaGVpZ2h0KTsKKyAgICB9
Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IGI2NmUxOWY2YWM1NDVjYzBhMjdmNDJm
MmY0MDg4YmVmYTI2M2VlOTQuLjVmMmFjMDk3NTY2NmI4OTk0NWUzMGJkYzZlYmRhM2ZiYzU4YWQ5
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0
LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMK
QEAgLTE5Nyw2ICsxOTcsNyBAQAogICAgIDxmaWxlPmluc3BlY3Rvci5jc3M8L2ZpbGU+CiAgICAg
PGZpbGU+aW5zcGVjdG9yQ29tbW9uLmNzczwvZmlsZT4KICAgICA8ZmlsZT5pbnNwZWN0b3JTeW50
YXhIaWdobGlnaHQuY3NzPC9maWxlPgorICAgIDxmaWxlPm5hdGl2ZU1lbW9yeVByb2ZpbGVyLmNz
czwvZmlsZT4KICAgICA8ZmlsZT5uYXZpZ2F0b3JWaWV3LmNzczwvZmlsZT4KICAgICA8ZmlsZT5u
ZXR3b3JrTG9nVmlldy5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+bmV0d29ya1BhbmVsLmNzczwvZmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmF0aXZl
TWVtb3J5UHJvZmlsZXIuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9u
YXRpdmVNZW1vcnlQcm9maWxlci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThmOGU1Y2U1NzE4MTc0MDc5Mjhh
MjY1NGZiNmZkOTNhN2MzMGQ2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvbmF0aXZlTWVtb3J5UHJvZmlsZXIuY3NzCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisubWVtb3J5LXBpZS1jaGFydC1jb250YWluZXIgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94
OworICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7Cit9CisKKy5tZW1vcnktcGllLWNo
YXJ0IHsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworfQorCisubWVtb3J5LWJsb2Nrcy1saXN0
IC5zd2F0Y2ggeworICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7Cit9CisKKy5tZW1vcnktYmxv
Y2tzLWxpc3QgeworICAgIHBhZGRpbmc6IDFweDsKKyAgICBmb250LXNpemU6IDExcHg7Cit9CisK
Ky5tZW1vcnktYmxvY2tzLWxpc3QgLml0ZW0geworICAgIG1hcmdpbjogMTBweDsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145086</attachid>
            <date>2012-05-31 07:12:47 -0700</date>
            <delta_ts>2012-06-01 01:09:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87737-20120531181246.patch</filename>
            <type>text/plain</type>
            <size>18048</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjMTI3ZDE3NjI0OGUz
YjNiMGU3OGVkMTVjMGVjMjc3MTYxYzQwYS4uMTdmZTA3ODhkODA4Yzk0YzFjZGYwZjFkMTE3ZTRh
ZDg4NGNlN2M0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA1LTI5ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGRyYXcgcGllLWNoYXJ0IGJhc2VkIG9uIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gYmFj
a2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc3
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBwaWUgY2hhcnQgZm9yIG1lbW9yeSBkYXRhIHJlY2VpdmVkIGZyb20gaW5zcGVjdG9yIG1lbW9y
eSBhZ2VudC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2
ZU1lbW9yeVNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlTbmFwc2hvdFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2Zp
bGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZS5w
cm90b3R5cGUuYnV0dG9uQ2xpY2tlZC5kaWRSZWNlaXZlTWVtb3J5U25hcHNob3QpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnByb3RvdHlwZS5idXR0b25D
bGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlSGVhZGVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLl9pbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLl9mb3JN
ZW1vcnlCbG9jayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UGllQ2hhcnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVBpZUNoYXJ0LnByb3RvdHlwZS5v
blJlc2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UGllQ2hhcnQucHJv
dG90eXBlLl91cGRhdGVTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQ
aWVDaGFydC5wcm90b3R5cGUuX2FkZEJsb2NrTGFiZWxzKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX3BhaW50LnBhaW50UGVyY2VudEFuZExh
YmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5
cGUuX3BhaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5w
cm90b3R5cGUuX2NsZWFyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5x
cmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9uYXRpdmVNZW1vcnlQcm9maWxlci5j
c3M6IEFkZGVkLgorICAgICAgICAoLm1lbW9yeS1waWUtY2hhcnQtY29udGFpbmVyKToKKyAgICAg
ICAgKC5tZW1vcnktcGllLWNoYXJ0KToKKyAgICAgICAgKC5tZW1vcnktYmxvY2tzLWxpc3QgLnN3
YXRjaCk6CisgICAgICAgICgubWVtb3J5LWJsb2Nrcy1saXN0KToKKyAgICAgICAgKC5tZW1vcnkt
YmxvY2tzLWxpc3QgLml0ZW0pOgorCiAyMDEyLTA1LTMxICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3Np
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1BsYXRmb3JtXSBJbnRyb2R1Y2UgRGVjaW1hbCBj
bGFzcyBmb3IgTnVtYmVyL1JhbmdlIGlucHV0IHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTJl
ZThjNjkwOGVkNTAzMjQ1MmRlMDVjNWI3NzQyYWU2MTBlOTc0ZC4uMzUxYjM4NWFmOTNhM2QzY2Vh
YTljYjc0NWJlYmVlZmZhYTVlYmNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjU0OSw2ICs2NTQ5
LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luZGV4ZWREQlZpZXdzLmNzcycsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JDb21tb24uY3NzJywKKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL25hdGl2ZU1lbW9yeVByb2ZpbGVyLmNzcycs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3LmNzcycsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9uZXR3b3JrTG9nVmlldy5jc3MnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvbmV0d29ya1BhbmVsLmNzcycsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGIxYjFkZTcwNmRk
NWI0OTEzZTlmNDdhNzQ1MzI0ZDhhMTJmODVmZGEuLmMzY2NkZjk3YjBjMDRjNDFmMDRlM2ZlOWRi
MDViNGRhY2U4Y2I1NjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC03NDY5OCw2ICs3NDY5OCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxuYXRp
dmVNZW1vcnlQcm9maWxlci5jc3MiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXG5hdmlnYXRvclZpZXcuY3Nz
IgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggOTdiYzA5N2RhZDJiOWIzNGZkMTBhZTYyMzky
N2MyMzYyZmM1OGM0NC4uOTIyNTQ1ODQzMjZhODVjYWM4NzM5YzIzZmRhYjc5MDZjNTVjOTQwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQu
Y3BwCkBAIC02MCw5ICs2MCw5IEBAIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6
OlN0cmluZ1N0YXRpc3RpY3M7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBNZW1v
cnlCbG9ja05hbWUgewotc3RhdGljIGNvbnN0IGNoYXIgdG90YWxKc0hlYXBbXSA9ICJUb3RhbEpT
SGVhcCI7CitzdGF0aWMgY29uc3QgY2hhciBqc0hlYXBBbGxvY2F0ZWRbXSA9ICJKU0hlYXBBbGxv
Y2F0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIganNIZWFwVXNlZFtdID0gIkpTSGVhcFVzZWQiOwog
c3RhdGljIGNvbnN0IGNoYXIgcHJvY2Vzc1ByaXZhdGVNZW1vcnlbXSA9ICJQcm9jZXNzUHJpdmF0
ZU1lbW9yeSI7Ci1zdGF0aWMgY29uc3QgY2hhciB1c2VkSnNIZWFwW10gPSAiVXNlZEpTSGVhcCI7
CiB9CiAKIG5hbWVzcGFjZSB7CkBAIC0zMjIsMTYgKzMyMiwxNiBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5OjpNZW1vcnlCbG9jaz4ganNIZWFwSW5mbygp
CiAgICAgc2l6ZV90IGpzSGVhcFNpemVMaW1pdDsKICAgICBTY3JpcHRHQ0V2ZW50OjpnZXRIZWFw
U2l6ZSh1c2VkSlNIZWFwU2l6ZSwgdG90YWxKU0hlYXBTaXplLCBqc0hlYXBTaXplTGltaXQpOwog
Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPiB0
b3RhbEpzSGVhcCA9IFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrOjpj
cmVhdGUoKS5zZXROYW1lKE1lbW9yeUJsb2NrTmFtZTo6dG90YWxKc0hlYXApOwotICAgIHRvdGFs
SnNIZWFwLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odG90YWxKU0hlYXBTaXplKSk7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPiBqc0hlYXBB
bGxvY2F0ZWQgPSBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5OjpNZW1vcnlCbG9jazo6Y3Jl
YXRlKCkuc2V0TmFtZShNZW1vcnlCbG9ja05hbWU6OmpzSGVhcEFsbG9jYXRlZCk7CisgICAganNI
ZWFwQWxsb2NhdGVkLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odG90YWxKU0hlYXBTaXplKSk7
CiAKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpN
ZW1vcnk6Ok1lbW9yeUJsb2NrPiA+IGNoaWxkcmVuID0gVHlwZUJ1aWxkZXI6OkFycmF5PFdlYkNv
cmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPjo6Y3JlYXRlKCk7Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPiB1c2VkSnNIZWFw
ID0gV2ViQ29yZTo6VHlwZUJ1aWxkZXI6Ok1lbW9yeTo6TWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNl
dE5hbWUoTWVtb3J5QmxvY2tOYW1lOjp1c2VkSnNIZWFwKTsKLSAgICB1c2VkSnNIZWFwLT5zZXRT
aXplKHN0YXRpY19jYXN0PGludD4odXNlZEpTSGVhcFNpemUpKTsKLSAgICBjaGlsZHJlbi0+YWRk
SXRlbSh1c2VkSnNIZWFwKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VHlwZUJ1aWxkZXI6Ok1lbW9y
eTo6TWVtb3J5QmxvY2s+IGpzSGVhcFVzZWQgPSBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5
OjpNZW1vcnlCbG9jazo6Y3JlYXRlKCkuc2V0TmFtZShNZW1vcnlCbG9ja05hbWU6OmpzSGVhcFVz
ZWQpOworICAgIGpzSGVhcFVzZWQtPnNldFNpemUoc3RhdGljX2Nhc3Q8aW50Pih1c2VkSlNIZWFw
U2l6ZSkpOworICAgIGNoaWxkcmVuLT5hZGRJdGVtKGpzSGVhcFVzZWQpOwogCi0gICAgdG90YWxK
c0hlYXAtPnNldENoaWxkcmVuKGNoaWxkcmVuKTsKLSAgICByZXR1cm4gdG90YWxKc0hlYXAucmVs
ZWFzZSgpOworICAgIGpzSGVhcEFsbG9jYXRlZC0+c2V0Q2hpbGRyZW4oY2hpbGRyZW4pOworICAg
IHJldHVybiBqc0hlYXBBbGxvY2F0ZWQucmVsZWFzZSgpOwogfQogCiB2b2lkIEluc3BlY3Rvck1l
bW9yeUFnZW50OjpnZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uKEVycm9yU3RyaW5nKiwgUmVm
UHRyPFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPiYgcHJvY2Vzc01l
bW9yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0
aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKaW5kZXggMmY3MDlmZTIzMGNmMWRlY2Vk
Mjg2ODA3YjJkZjRiMDU4YTQwNDIzOS4uMWRmYjIxYWE0MTE1NmE3ODZjZTBhMTIzN2E1ZDVkMWFh
OGM3YzYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9O
YXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKQEAgLTM1LDkgKzM1LDEzIEBA
CiBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3ID0gZnVuY3Rpb24ocHJvZmls
ZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwotICAgIHRoaXMuZWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJtZW1vcnktY2hhcnQtdmlldyIpOwotICAgIHRoaXMuZWxlbWVudC5j
cmVhdGVDaGlsZCgiZGl2IikudGV4dENvbnRlbnQgPSAiTWVtb3J5IGNoYXJ0IjsKKyAgICB0aGlz
LnJlZ2lzdGVyUmVxdWlyZWRDU1MoIm5hdGl2ZU1lbW9yeVByb2ZpbGVyLmNzcyIpOwogICAgIHRo
aXMuX3Byb2ZpbGUgPSBwcm9maWxlOworICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJt
ZW1vcnktY2hhcnQtdmlldyIpOworCisgICAgdmFyIHBpZUNoYXJ0ID0gbmV3IFdlYkluc3BlY3Rv
ci5OYXRpdmVNZW1vcnlQaWVDaGFydChwcm9maWxlLl9tZW1vcnlCbG9jayk7CisgICAgcGllQ2hh
cnQuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJmaWxsIik7CisgICAgcGllQ2hhcnQuc2hvdyh0aGlz
LmVsZW1lbnQpOwogfQogCiBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LnBy
b3RvdHlwZSA9IHsKQEAgLTY1LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVNu
YXBzaG90Vmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHIKIFdl
Ykluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZSA9IGZ1bmN0aW9uKCkKIHsKICAgICBX
ZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuTmF0aXZlTWVt
b3J5UHJvZmlsZVR5cGUuVHlwZUlkLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRha2UgTmF0aXZl
IE1lbW9yeSBTbmFwc2hvdCIpKTsKLSAgICB0aGlzLl9wcm9maWxlSW5kZXggPSAxOworICAgIHRo
aXMuX25leHRQcm9maWxlVWlkID0gMTsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVBy
b2ZpbGVUeXBlLlR5cGVJZCA9ICJOQVRJVkVfTUVNT1JZIjsKQEAgLTgzLDggKzg3LDE2IEBAIFdl
Ykluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAgICAgYnV0
dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHByb2ZpbGVzUGFuZWwg
PSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzOwotICAgICAgICB2YXIgcHJvZmlsZUhlYWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZUhlYWRlcih0aGlzLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlNuYXBzaG90ICVkIiwgdGhpcy5fcHJvZmlsZUluZGV4KyspLCAt
MSk7CisgICAgICAgIHZhciBwcm9maWxlSGVhZGVyID0gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVN
ZW1vcnlQcm9maWxlSGVhZGVyKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU25hcHNob3Qg
JWQiLCB0aGlzLl9uZXh0UHJvZmlsZVVpZCksIHRoaXMuX25leHRQcm9maWxlVWlkKTsKKyAgICAg
ICAgKyt0aGlzLl9uZXh0UHJvZmlsZVVpZDsKKyAgICAgICAgcHJvZmlsZUhlYWRlci5pc1RlbXBv
cmFyeSA9IHRydWU7CiAgICAgICAgIHByb2ZpbGVzUGFuZWwuYWRkUHJvZmlsZUhlYWRlcihwcm9m
aWxlSGVhZGVyKTsKKyAgICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90KGVy
cm9yLCBtZW1vcnlCbG9jaykKKyAgICAgICAgeworICAgICAgICAgICAgcHJvZmlsZUhlYWRlci5f
bWVtb3J5QmxvY2sgPSBtZW1vcnlCbG9jazsKKyAgICAgICAgICAgIHByb2ZpbGVIZWFkZXIuaXNU
ZW1wb3JhcnkgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBNZW1vcnlBZ2VudC5nZXRQcm9j
ZXNzTWVtb3J5RGlzdHJpYnV0aW9uKGRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdC5iaW5kKHRoaXMp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKQEAgLTEzMiw2ICsxNDQsMTEgQEAg
V2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnByb3RvdHlwZS5fX3Byb3RvX18g
PSBXZWJJbnNwZWN0b3IuUHJvZmlsZVQKIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxl
SGVhZGVyID0gZnVuY3Rpb24odHlwZSwgdGl0bGUsIHVpZCkKIHsKICAgICBXZWJJbnNwZWN0b3Iu
UHJvZmlsZUhlYWRlci5jYWxsKHRoaXMsIHR5cGUsIHRpdGxlLCB1aWQpOworCisgICAgLyoqCisg
ICAgICogQHR5cGUge01lbW9yeUFnZW50Lk1lbW9yeUJsb2NrfQorICAgICAqLworICAgIHRoaXMu
X21lbW9yeUJsb2NrID0gbnVsbDsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2Zp
bGVIZWFkZXIucHJvdG90eXBlID0gewpAQCAtMTUzLDMgKzE3MCwxODIgQEAgV2ViSW5zcGVjdG9y
Lk5hdGl2ZU1lbW9yeVByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogfQogCiBXZWJJbnNwZWN0
b3IuTmF0aXZlTWVtb3J5UHJvZmlsZUhlYWRlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5z
cGVjdG9yLlByb2ZpbGVIZWFkZXIucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3Rvcgor
ICogQHBhcmFtIHtzdHJpbmd9IGZpbGxTdHlsZQorICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKKyAq
IEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbgorICovCitXZWJJbnNwZWN0b3IuTWVtb3J5Qmxv
Y2tWaWV3UHJvcGVydGllcyA9IGZ1bmN0aW9uKGZpbGxTdHlsZSwgbmFtZSwgZGVzY3JpcHRpb24p
Cit7CisgICAgdGhpcy5fZmlsbFN0eWxlID0gZmlsbFN0eWxlOworICAgIHRoaXMuX25hbWUgPSBu
YW1lOworICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247Cit9CisKKy8qKgorICog
QHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVy
dGllcz59CisgKi8KK1dlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLl9zdGFu
ZGFyZEJsb2NrcyA9IG51bGw7CisKK1dlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0
aWVzLl9pbml0aWFsaXplID0gZnVuY3Rpb24oKQoreworICAgIGlmIChXZWJJbnNwZWN0b3IuTWVt
b3J5QmxvY2tWaWV3UHJvcGVydGllcy5fc3RhbmRhcmRCbG9ja3MpCisgICAgICAgIHJldHVybjsK
KyAgICBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fc3RhbmRhcmRCbG9j
a3MgPSB7fTsKKyAgICBmdW5jdGlvbiBhZGRCbG9jayhmaWxsU3R5bGUsIG5hbWUsIGRlc2NyaXB0
aW9uKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRp
ZXMuX3N0YW5kYXJkQmxvY2tzW25hbWVdID0gbmV3IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1Zp
ZXdQcm9wZXJ0aWVzKGZpbGxTdHlsZSwgbmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKGRlc2Ny
aXB0aW9uKSk7CisgICAgfQorICAgIGFkZEJsb2NrKCJyZ2JhKDI0MCwgMjQwLCAyNTAsIDAuOCki
LCAiUHJvY2Vzc1ByaXZhdGVNZW1vcnkiLCAiVG90YWwiKTsKKyAgICBhZGRCbG9jaygicmdiYSgy
NTAsIDIwMCwgMjAwLCAwLjgpIiwgIkpTSGVhcEFsbG9jYXRlZCIsICJKYXZhU2NyaXB0IGhlYXAi
KTsKKyAgICBhZGRCbG9jaygicmdiYSgyMDAsIDI1MCwgMjAwLCAwLjgpIiwgIkpTSGVhcFVzZWQi
LCAiVXNlZCBKYXZhU2NyaXB0IGhlYXAiKTsKK30KKworV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2Nr
Vmlld1Byb3BlcnRpZXMuX2Zvck1lbW9yeUJsb2NrID0gZnVuY3Rpb24obWVtb3J5QmxvY2spCit7
CisgICAgV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX2luaXRpYWxpemUo
KTsKKyAgICB2YXIgcmVzdWx0ID0gV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRp
ZXMuX3N0YW5kYXJkQmxvY2tzW21lbW9yeUJsb2NrLm5hbWVdOworICAgIGlmIChyZXN1bHQpCisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTWVtb3J5
QmxvY2tWaWV3UHJvcGVydGllcygicmdiYSgyMCwgMjAwLCAyMCwgMC44KSIsIG1lbW9yeUJsb2Nr
Lm5hbWUsIG1lbW9yeUJsb2NrLm5hbWUpOworfQorCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisg
KiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKiBAcGFyYW0ge01lbW9yeUFnZW50Lk1l
bW9yeUJsb2NrfSBtZW1vcnlTbmFwc2hvdAorICovCitXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5
UGllQ2hhcnQgPSBmdW5jdGlvbihtZW1vcnlTbmFwc2hvdCkKK3sKKyAgICBXZWJJbnNwZWN0b3Iu
Vmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMuX21lbW9yeVNuYXBzaG90ID0gbWVtb3J5U25hcHNo
b3Q7CisgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoIm1lbW9yeS1waWUtY2hhcnQtY29udGFpbmVy
Iik7CisgICAgdGhpcy5fbWVtb3J5QmxvY2tMaXN0ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxk
KCJkaXYiLCAibWVtb3J5LWJsb2Nrcy1saXN0Iik7CisKKyAgICB0aGlzLl9jYW52YXNDb250YWlu
ZXIgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJtZW1vcnktcGllLWNoYXJ0Iik7
CisgICAgdGhpcy5fY2FudmFzID0gdGhpcy5fY2FudmFzQ29udGFpbmVyLmNyZWF0ZUNoaWxkKCJj
YW52YXMiKTsKKyAgICB0aGlzLl9hZGRCbG9ja0xhYmVscyhtZW1vcnlTbmFwc2hvdCwgdHJ1ZSk7
Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUgPSB7Cisg
ICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICovCisgICAgb25SZXNpemU6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNpemUoKTsKKyAgICAgICAgdGhpcy5fcGFp
bnQoKTsKKyAgICB9LAorCisgICAgX3VwZGF0ZVNpemU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHZhciB3aWR0aCA9IHRoaXMuX2NhbnZhc0NvbnRhaW5lci5jbGllbnRXaWR0aCAtIDU7Cisg
ICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLl9jYW52YXNDb250YWluZXIuY2xpZW50SGVpZ2h0IC0g
NTsKKyAgICAgICAgdGhpcy5fY2FudmFzLndpZHRoID0gd2lkdGg7CisgICAgICAgIHRoaXMuX2Nh
bnZhcy5oZWlnaHQgPSBoZWlnaHQ7CisgICAgfSwKKworICAgIF9hZGRCbG9ja0xhYmVsczogZnVu
Y3Rpb24obWVtb3J5QmxvY2ssIGluY2x1ZGVDaGlsZHJlbikKKyAgICB7CisgICAgICAgIHZhciB2
aWV3UHJvcGVydGllcyA9IFdlYkluc3BlY3Rvci5NZW1vcnlCbG9ja1ZpZXdQcm9wZXJ0aWVzLl9m
b3JNZW1vcnlCbG9jayhtZW1vcnlCbG9jayk7CisgICAgICAgIHZhciB0aXRsZSA9IHZpZXdQcm9w
ZXJ0aWVzLl9kZXNjcmlwdGlvbiArICI6ICIgKyBOdW1iZXIuYnl0ZXNUb1N0cmluZyhtZW1vcnlC
bG9jay5zaXplKTsKKworICAgICAgICB2YXIgc3dhdGNoRWxlbWVudCA9IHRoaXMuX21lbW9yeUJs
b2NrTGlzdC5jcmVhdGVDaGlsZCgiZGl2IiwgIml0ZW0iKTsKKyAgICAgICAgc3dhdGNoRWxlbWVu
dC5jcmVhdGVDaGlsZCgiZGl2IiwgInN3YXRjaCIpLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHZp
ZXdQcm9wZXJ0aWVzLl9maWxsU3R5bGU7CisgICAgICAgIHN3YXRjaEVsZW1lbnQuY3JlYXRlQ2hp
bGQoInNwYW4iLCAidGl0bGUiKS50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZyh0
aXRsZSk7CisKKyAgICAgICAgaWYgKCFtZW1vcnlCbG9jay5jaGlsZHJlbiB8fCAhaW5jbHVkZUNo
aWxkcmVuKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IG1lbW9yeUJsb2NrLmNoaWxkcmVuLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdGhpcy5fYWRk
QmxvY2tMYWJlbHMobWVtb3J5QmxvY2suY2hpbGRyZW5baV0sIGZhbHNlKTsKKyAgICB9LAorCisg
ICAgX3BhaW50OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9jbGVhcigpOworICAg
ICAgICB2YXIgd2lkdGggPSB0aGlzLl9jYW52YXMud2lkdGg7CisgICAgICAgIHZhciBoZWlnaHQg
PSB0aGlzLl9jYW52YXMuaGVpZ2h0OworCisgICAgICAgIHZhciB4ID0gd2lkdGggLyAyOworICAg
ICAgICB2YXIgeSA9IGhlaWdodCAvIDI7CisgICAgICAgIHZhciByYWRpdXMgPSAyMDA7CisKKyAg
ICAgICAgdmFyIGN0eCA9IHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgICAgICBj
dHguYmVnaW5QYXRoKCk7CisgICAgICAgIGN0eC5hcmMoeCwgeSwgcmFkaXVzLCAwLCBNYXRoLlBJ
KjIsIGZhbHNlKTsKKyAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7CisgICAgICAgIGN0eC5maWxs
U3R5bGUgPSBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fZm9yTWVtb3J5
QmxvY2sodGhpcy5fbWVtb3J5U25hcHNob3QpLl9maWxsU3R5bGU7CisgICAgICAgIGN0eC5zdHJv
a2VTdHlsZSA9ICJyZ2JhKDEzMCwgMTMwLCAxMzAsIDAuOCkiOworICAgICAgICBjdHguZmlsbCgp
OworICAgICAgICBjdHguc3Ryb2tlKCk7CisgICAgICAgIGN0eC5jbG9zZVBhdGgoKTsKKworICAg
ICAgICB2YXIgc3RhcnRBbmdsZSA9IC0gTWF0aC5QSSAvIDI7CisgICAgICAgIHZhciBjdXJyZW50
QW5nbGUgPSBzdGFydEFuZ2xlOworICAgICAgICB2YXIgbWVtb3J5QmxvY2sgPSB0aGlzLl9tZW1v
cnlTbmFwc2hvdDsKKworICAgICAgICBmdW5jdGlvbiBwYWludFBlcmNlbnRBbmRMYWJlbChmcmFj
dGlvbiwgdGl0bGUsIG1pZEFuZ2xlKQorICAgICAgICB7CisgICAgICAgICAgICBjdHguYmVnaW5Q
YXRoKCk7CisgICAgICAgICAgICBjdHguZm9udCA9ICIxNHB4IEFyaWFsIjsKKyAgICAgICAgICAg
IGN0eC5maWxsU3R5bGUgPSAicmdiYSgxMCwgMTAsIDEwLCAwLjgpIjsKKworICAgICAgICAgICAg
dmFyIHRleHRYID0geCArIHJhZGl1cyAqIE1hdGguY29zKG1pZEFuZ2xlKSAvIDI7CisgICAgICAg
ICAgICB2YXIgdGV4dFkgPSB5ICsgcmFkaXVzICogTWF0aC5zaW4obWlkQW5nbGUpIC8gMjsKKyAg
ICAgICAgICAgIGN0eC5maWxsVGV4dCgoMTAwICogZnJhY3Rpb24pLnRvRml4ZWQoMCkgKyAiJSIs
IHRleHRYLCB0ZXh0WSk7CisKKyAgICAgICAgICAgIHRleHRYID0geCArIHJhZGl1cyAqIE1hdGgu
Y29zKG1pZEFuZ2xlKTsKKyAgICAgICAgICAgIHRleHRZID0geSArIHJhZGl1cyAqIE1hdGguc2lu
KG1pZEFuZ2xlKTsKKyAgICAgICAgICAgIGlmIChtaWRBbmdsZSA8PSBzdGFydEFuZ2xlICsgTWF0
aC5QSSkgeworICAgICAgICAgICAgICAgIHRleHRYICs9IDEwOworICAgICAgICAgICAgICAgIHRl
eHRZICs9IDEwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWV0
cmljcyA9IGN0eC5tZWFzdXJlVGV4dCh0aXRsZSk7CisgICAgICAgICAgICAgICAgdGV4dFggLT0g
bWV0cmljcy53aWR0aCArIDEwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3R4LmZpbGxU
ZXh0KHRpdGxlLCB0ZXh0WCwgdGV4dFkpOworICAgICAgICAgICAgY3R4LmNsb3NlUGF0aCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKG1lbW9yeUJsb2NrLmNoaWxkcmVuKSB7CisgICAgICAg
ICAgICB2YXIgdG90YWwgPSBtZW1vcnlCbG9jay5zaXplOworICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBtZW1vcnlCbG9jay5jaGlsZHJlbi5sZW5ndGg7IGkrKykgeworICAgICAgICAg
ICAgICAgIHZhciBjaGlsZCA9IG1lbW9yeUJsb2NrLmNoaWxkcmVuW2ldOworICAgICAgICAgICAg
ICAgIGlmICghY2hpbGQuc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICAgICAgdmFyIHZpZXdQcm9wZXJ0aWVzID0gV2ViSW5zcGVjdG9yLk1lbW9yeUJsb2Nr
Vmlld1Byb3BlcnRpZXMuX2Zvck1lbW9yeUJsb2NrKGNoaWxkKTsKKyAgICAgICAgICAgICAgICB2
YXIgYW5nbGVTcGFuID0gTWF0aC5QSSAqIDIgKiAoY2hpbGQuc2l6ZSAvIHRvdGFsKTsKKyAgICAg
ICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICAgICAgICAgICAgY3R4Lm1vdmVUbyh4
LCB5KTsKKyAgICAgICAgICAgICAgICBjdHgubGluZVRvKHggKyByYWRpdXMgKiBNYXRoLmNvcyhj
dXJyZW50QW5nbGUpLCB5ICsgcmFkaXVzICogTWF0aC5zaW4oY3VycmVudEFuZ2xlKSk7CisgICAg
ICAgICAgICAgICAgY3R4LmFyYyh4LCB5LCByYWRpdXMsIGN1cnJlbnRBbmdsZSwgY3VycmVudEFu
Z2xlICsgYW5nbGVTcGFuLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9
IDAuNTsKKyAgICAgICAgICAgICAgICBjdHgubGluZVRvKHgsIHkpOworICAgICAgICAgICAgICAg
IGN0eC5maWxsU3R5bGUgPSB2aWV3UHJvcGVydGllcy5fZmlsbFN0eWxlOworICAgICAgICAgICAg
ICAgIGN0eC5zdHJva2VTdHlsZSA9ICJyZ2JhKDEwMCwgMTAwLCAxMDAsIDAuOCkiOworICAgICAg
ICAgICAgICAgIGN0eC5maWxsKCk7CisgICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpOworICAg
ICAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTsKKworICAgICAgICAgICAgICAgIHBhaW50UGVy
Y2VudEFuZExhYmVsKGNoaWxkLnNpemUgLyB0b3RhbCwgdmlld1Byb3BlcnRpZXMuX2Rlc2NyaXB0
aW9uLCBjdXJyZW50QW5nbGUgKyBhbmdsZVNwYW4gLyAyKTsKKworICAgICAgICAgICAgICAgIGN1
cnJlbnRBbmdsZSArPSBhbmdsZVNwYW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICB2YXIgZnJhY3Rpb24gPSAxIC0gKGN1cnJlbnRBbmdsZSAtIHN0YXJ0QW5nbGUpIC8gKDIg
KiBNYXRoLlBJKTsKKyAgICAgICAgdmFyIG1pZEFuZ2xlID0gKGN1cnJlbnRBbmdsZSArIHN0YXJ0
QW5nbGUgKyAyICogTWF0aC5QSSkgLyAyOworICAgICAgICBwYWludFBlcmNlbnRBbmRMYWJlbChm
cmFjdGlvbiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVbmtub3duIiksIG1pZEFuZ2xlKTsKKyAg
ICB9LAorCisgICAgX2NsZWFyOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGN0eCA9IHRoaXMu
X2NhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGN0
eC5jYW52YXMud2lkdGgsIGN0eC5jYW52YXMuaGVpZ2h0KTsKKyAgICB9Cit9CisKK1dlYkluc3Bl
Y3Rvci5OYXRpdmVNZW1vcnlQaWVDaGFydC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLlZpZXcucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XZWJLaXQucXJjCmluZGV4IGI2NmUxOWY2YWM1NDVjYzBhMjdmNDJmMmY0MDg4YmVmYTI2M2Vl
OTQuLjVmMmFjMDk3NTY2NmI4OTk0NWUzMGJkYzZlYmRhM2ZiYzU4YWQ5MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTE5Nyw2ICsxOTcs
NyBAQAogICAgIDxmaWxlPmluc3BlY3Rvci5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+aW5zcGVjdG9y
Q29tbW9uLmNzczwvZmlsZT4KICAgICA8ZmlsZT5pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3Nz
PC9maWxlPgorICAgIDxmaWxlPm5hdGl2ZU1lbW9yeVByb2ZpbGVyLmNzczwvZmlsZT4KICAgICA8
ZmlsZT5uYXZpZ2F0b3JWaWV3LmNzczwvZmlsZT4KICAgICA8ZmlsZT5uZXR3b3JrTG9nVmlldy5j
c3M8L2ZpbGU+CiAgICAgPGZpbGU+bmV0d29ya1BhbmVsLmNzczwvZmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmF0aXZlTWVtb3J5UHJvZmlsZXIu
Y3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9uYXRpdmVNZW1vcnlQcm9m
aWxlci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOThmOGU1Y2U1NzE4MTc0MDc5MjhhMjY1NGZiNmZkOTNhN2Mz
MGQ2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvbmF0aXZlTWVtb3J5UHJvZmlsZXIuY3NzCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisubWVtb3J5LXBpZS1j
aGFydC1jb250YWluZXIgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQt
Ym94LW9yaWVudDogdmVydGljYWw7Cit9CisKKy5tZW1vcnktcGllLWNoYXJ0IHsKKyAgICAtd2Vi
a2l0LWJveC1mbGV4OiAxOworfQorCisubWVtb3J5LWJsb2Nrcy1saXN0IC5zd2F0Y2ggeworICAg
IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7Cit9CisKKy5tZW1vcnktYmxvY2tzLWxpc3QgeworICAg
IHBhZGRpbmc6IDFweDsKKyAgICBmb250LXNpemU6IDExcHg7Cit9CisKKy5tZW1vcnktYmxvY2tz
LWxpc3QgLml0ZW0geworICAgIG1hcmdpbjogMTBweDsKK30K
</data>
<flag name="review"
          id="152129"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>