<?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>84048</bug_id>
          
          <creation_ts>2012-04-16 10:03:51 -0700</creation_ts>
          <short_desc>ShadowRoot needs resetStyleInheritance</short_desc>
          <delta_ts>2012-06-07 22:29:25 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Takashi Sakamoto">tasak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>philn</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>603238</commentid>
    <comment_count>0</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-16 10:03:51 -0700</bug_when>
    <thetext>Currently ShadowRoot does not have resetStyleInheritance API.
We should have this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603240</commentid>
    <comment_count>1</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-16 10:04:25 -0700</bug_when>
    <thetext>See spec: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603309</commentid>
    <comment_count>2</comment_count>
      <attachid>137370</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-16 11:44:05 -0700</bug_when>
    <thetext>Created attachment 137370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603341</commentid>
    <comment_count>3</comment_count>
      <attachid>137370</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 12:37:13 -0700</bug_when>
    <thetext>Comment on attachment 137370
Patch

Attachment 137370 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12412498

New failing tests:
canvas/philip/tests/2d.text.draw.align.left.html
canvas/philip/tests/2d.text.draw.fill.unaffected.html
canvas/philip/tests/2d.text.draw.align.right.html
canvas/philip/tests/2d.text.draw.fill.rtl.html
canvas/philip/tests/2d.text.draw.align.start.rtl.html
canvas/philip/tests/2d.text.draw.fill.maxWidth.zero.html
canvas/philip/tests/2d.text.draw.fill.maxWidth.small.html
canvas/philip/tests/2d.missingargs.html
canvas/philip/tests/2d.text.draw.align.start.ltr.html
accessibility/aria-disabled.html
canvas/philip/tests/2d.state.saverestore.font.html
canvas/philip/tests/2d.text.draw.fill.basic.html
canvas/philip/tests/2d.text.draw.align.end.ltr.html
canvas/philip/tests/2d.text.draw.fill.maxWidth.bound.html
canvas/philip/tests/2d.text.draw.align.end.rtl.html
canvas/philip/tests/2d.text-custom-font-load-crash.html
canvas/philip/tests/2d.text.draw.fill.maxWidth.large.html
canvas/philip/tests/2d.text.draw.align.center.html
canvas/philip/tests/2d.text.draw.baseline.alphabetic.html
canvas/philip/tests/2d.text.draw.fill.maxWidth.fontface.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603342</commentid>
    <comment_count>4</comment_count>
      <attachid>137381</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 12:37:23 -0700</bug_when>
    <thetext>Created attachment 137381
Archive of layout-test-results from ec2-cr-linux-04

The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-04  Port: &lt;class &apos;webkitpy.common.config.ports.ChromiumXVFBPort&apos;&gt;  Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603498</commentid>
    <comment_count>5</comment_count>
      <attachid>137413</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-16 15:24:03 -0700</bug_when>
    <thetext>Created attachment 137413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603528</commentid>
    <comment_count>6</comment_count>
      <attachid>137421</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-16 16:01:08 -0700</bug_when>
    <thetext>Created attachment 137421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603707</commentid>
    <comment_count>7</comment_count>
      <attachid>137421</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-16 19:37:52 -0700</bug_when>
    <thetext>Comment on attachment 137421
Patch

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

&gt; Source/WebCore/css/CSSStyleSelector.cpp:3081
&gt;  void CSSStyleSelector::applyProperty(CSSPropertyID id, CSSValue *value)

This applyProperty() is an ultra host function and computing stuff here won&apos;t be a good idea in general.
I guess we could precompute staff in CSSStyleSelector::initElement() or some per-element call path.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:3083
&gt; +    TreeScope* treeScope = m_element? m_element-&gt;treeScope() : 0;

Can treeScope be null?

&gt; Source/WebCore/css/CSSStyleSelector.cpp:3088
&gt; +        || ((!m_parentNode || (treeScope &amp;&amp; treeScope-&gt;resetStyleInheritance() &amp;&amp; treeScope != m_parentNode-&gt;treeScope())) &amp;&amp; value-&gt;isInheritedValue());

This condition looks complicated enough. Could we simplify this somehow?

&gt; LayoutTests/fast/dom/shadow/shadow-root-resetStyleInheritance.html:1
&gt; + &lt;!DOCTYPE html&gt;

Could you use ref test if possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604420</commentid>
    <comment_count>8</comment_count>
      <attachid>137623</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-17 15:45:39 -0700</bug_when>
    <thetext>Created attachment 137623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604426</commentid>
    <comment_count>9</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-17 15:50:55 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 137421 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137421&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:3081
&gt; &gt;  void CSSStyleSelector::applyProperty(CSSPropertyID id, CSSValue *value)
&gt; 
&gt; This applyProperty() is an ultra host function and computing stuff here won&apos;t be a good idea in general.
&gt; I guess we could precompute staff in CSSStyleSelector::initElement() or some per-element call path.

I see. Is it ok to modify CSSStyleSelector::styleForElement()? I modified the method to create recomputed matchedResult before applyMatchedResults.

&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:3083
&gt; &gt; +    TreeScope* treeScope = m_element? m_element-&gt;treeScope() : 0;
&gt; 
&gt; Can treeScope be null?

I removed the code.
I think, treeScope cannot be null, but m_element can be null.

&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:3088
&gt; &gt; +        || ((!m_parentNode || (treeScope &amp;&amp; treeScope-&gt;resetStyleInheritance() &amp;&amp; treeScope != m_parentNode-&gt;treeScope())) &amp;&amp; value-&gt;isInheritedValue());
&gt; 
&gt; This condition looks complicated enough. Could we simplify this somehow?

I removed the condition, but I still use the following:
    if (element &amp;&amp; element-&gt;treeScope()-&gt;resetStyleInheritance() &amp;&amp; m_parentNode &amp;&amp; element-&gt;treeScope() != m_parentNode-&gt;treeScope())

&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-resetStyleInheritance.html:1
&gt; &gt; + &lt;!DOCTYPE html&gt;
&gt; 
&gt; Could you use ref test if possible?

Sure.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604793</commentid>
    <comment_count>10</comment_count>
      <attachid>137623</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-18 09:09:41 -0700</bug_when>
    <thetext>Comment on attachment 137623
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes

Could you explain the change itself briefly?

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1638
&gt; +void CSSStyleSelector::applyResetStyleInheritance(MatchResult&amp; result)

This isn&apos;t the right approach.
- The flag should affect not only for direct children of the shadow boundary
- Allocating properties for each style resolution is too expensive.

I think this &quot;reset&quot; thing should be handled at where we compute the inheritance in RenderStyle object
because RenderStyle is responsible for style inheritance in WebKit.
You can find such places by seeing the callers of RenderStyle::inheritFrom().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605086</commentid>
    <comment_count>11</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-18 14:25:49 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 137623 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137623&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:7
&gt; &gt; +        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes
&gt; 
&gt; Could you explain the change itself briefly?
&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:1638
&gt; &gt; +void CSSStyleSelector::applyResetStyleInheritance(MatchResult&amp; result)
&gt; 
&gt; This isn&apos;t the right approach.
&gt; - The flag should affect not only for direct children of the shadow boundary
&gt; - Allocating properties for each style resolution is too expensive.
&gt; 
&gt; I think this &quot;reset&quot; thing should be handled at where we compute the inheritance in RenderStyle object
&gt; because RenderStyle is responsible for style inheritance in WebKit.
&gt; You can find such places by seeing the callers of RenderStyle::inheritFrom().

I think, the best place to implement resetStyleInheritance is CSSStyleSelector::applyProperty, because RenderStyle::inheritFrom is just initializing RenderStyle (by copying the given render style to this render style).
For example, CSSStyleSelector::styleForElement() has the following code:
----
m_style = RenderStyle::create();
if (m_parentStyle) 
  m_style-&gt;inheritFrom(m_parentStyle);

...
----

If modifying CSSStyleSelector::applyProperty is not good, I have the following idea:
(1) create a custom CSSStyleApplyProperty, which has only applyInitial and applyValue (applyInherit is the same as applyInitial).
(2) modifying matchResult (I agree that this approach is very expensive).

I think, class RenderStyle is for just holding final style values (I mean, no &apos;inherit&apos; and no &apos;initial&apos;) for rendering, because CSSStyleApplyProperty&apos;s applyInherit handlers always look up at parent styles. 
e.g.
----
class ApplyPropertyDefaultBase {
...
   static void applyInheritValue(CSSStyleSelector* selector) { setValue(selector-&gt;style(), value(selector-&gt;parentStyle()));
...
----</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605793</commentid>
    <comment_count>12</comment_count>
      <attachid>137950</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-19 12:33:26 -0700</bug_when>
    <thetext>Created attachment 137950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605796</commentid>
    <comment_count>13</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-04-19 12:37:43 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 137623 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137623&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:7
&gt; &gt; &gt; +        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes
&gt; &gt; 
&gt; &gt; Could you explain the change itself briefly?

I see. Done.

&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:1638
&gt; &gt; &gt; +void CSSStyleSelector::applyResetStyleInheritance(MatchResult&amp; result)
&gt; &gt; 
&gt; &gt; This isn&apos;t the right approach.
&gt; &gt; - The flag should affect not only for direct children of the shadow boundary
&gt; &gt; - Allocating properties for each style resolution is too expensive.
&gt; &gt; 
&gt; &gt; I think this &quot;reset&quot; thing should be handled at where we compute the inheritance in RenderStyle object
&gt; &gt; because RenderStyle is responsible for style inheritance in WebKit.
&gt; &gt; You can find such places by seeing the callers of RenderStyle::inheritFrom().

I&apos;m sorry. I misunderstood the spec. I agree that the approach (seeing the callers of RenderStyle::inheritFrom) is right. I think, CSSStyleSelector::styleForElement() is the place.

I re-created a patch and also added new test cases for changing resetStyleInheritance dynamically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605806</commentid>
    <comment_count>14</comment_count>
      <attachid>137950</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-19 12:58:34 -0700</bug_when>
    <thetext>Comment on attachment 137950
Patch

Attachment 137950 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12297406</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607312</commentid>
    <comment_count>15</comment_count>
      <attachid>137950</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-21 18:43:01 -0700</bug_when>
    <thetext>Comment on attachment 137950
Patch

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

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1599
&gt; +    bool resetStyleInheritance = element &amp;&amp; element-&gt;treeScope()-&gt;resetStyleInheritance();

Doesn&apos;t treeScope() have O(n) time complexity where n is the depth of shadow tree scopes?
I&apos;m concerned that this may regress performance given CSSStyleSelector::styleForElement is a pretty hot function.

Also, don&apos;t we need to modify style selector for SVG as well?

&gt; Source/WebCore/dom/ShadowRoot.h:72
&gt; +    virtual bool resetStyleInheritance() const;

Who overrides this function? If you&apos;re overriding it, then please add OVERRIDE keyword.

&gt; LayoutTests/fast/dom/shadow/shadow-root-resetStyleInheritance-expected.html:4
&gt; +&lt;head&gt;
&gt; +&lt;/head&gt;

We don&apos;t need head element here.

&gt; LayoutTests/fast/dom/shadow/shadow-root-resetStyleInheritance-expected.html:9
&gt; +&lt;div&gt;&lt;div style=&quot;color: #fee&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&gt; +&lt;div&gt;&lt;div style=&quot;color: #fee&quot;&gt;&lt;div style=&quot;color: initial&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&gt; +&lt;div&gt;&lt;div style=&quot;color: #fee&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&gt; +&lt;div&gt;&lt;div style=&quot;color: #fee&quot;&gt;&lt;div style=&quot;color: initial&quot;&gt;&lt;/div&gt;&lt;/div&gt;

Please add more test cases as I mentioned on the other bug.
Sorry but r- due to lack of tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613327</commentid>
    <comment_count>16</comment_count>
      <attachid>139607</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-01 03:38:18 -0700</bug_when>
    <thetext>Created attachment 139607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613332</commentid>
    <comment_count>17</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-01 03:47:08 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 137950 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137950&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:1599
&gt; &gt; +    bool resetStyleInheritance = element &amp;&amp; element-&gt;treeScope()-&gt;resetStyleInheritance();
&gt; 
&gt; Doesn&apos;t treeScope() have O(n) time complexity where n is the depth of shadow tree scopes?
&gt; I&apos;m concerned that this may regress performance given CSSStyleSelector::styleForElement is a pretty hot function.

The treeScope() just returns m_treeScope, which is a member variable of NodeRareData.

&gt; Also, don&apos;t we need to modify style selector for SVG as well?

I found that SVG element in shadow doesn&apos;t work well now. So I think, it is not possible to test SVG styles. I will try after SVG element in shadow work (and if needed, fix bugs).

&gt; &gt; Source/WebCore/dom/ShadowRoot.h:72
&gt; &gt; +    virtual bool resetStyleInheritance() const;
&gt; 
&gt; Who overrides this function? If you&apos;re overriding it, then please add OVERRIDE keyword.

Done.

&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-resetStyleInheritance-expected.html:9
&gt; &gt; +&lt;div&gt;&lt;div style=&quot;color: #fee&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&gt; &gt; +&lt;div&gt;&lt;div style=&quot;color: #fee&quot;&gt;&lt;div style=&quot;color: initial&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&gt; &gt; +&lt;div&gt;&lt;div style=&quot;color: #fee&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&gt; &gt; +&lt;div&gt;&lt;div style=&quot;color: #fee&quot;&gt;&lt;div style=&quot;color: initial&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&gt; 
&gt; Please add more test cases as I mentioned on the other bug.

I added more style properties, especially font properties.
I found that default RenderStyle doesn&apos;t have correct font description (c.f. StyleInheritedData.cpp. Its member variable: font is not initialized by using &quot;initial&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613334</commentid>
    <comment_count>18</comment_count>
      <attachid>139607</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-01 04:05:48 -0700</bug_when>
    <thetext>Comment on attachment 139607
Patch

Attachment 139607 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12592514</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613339</commentid>
    <comment_count>19</comment_count>
      <attachid>139609</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-01 04:43:03 -0700</bug_when>
    <thetext>Created attachment 139609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619384</commentid>
    <comment_count>20</comment_count>
      <attachid>139609</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-09 04:53:31 -0700</bug_when>
    <thetext>Comment on attachment 139609
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:1604
&gt; +    bool crossShadowBoundary = element &amp;&amp; m_parentNode &amp;&amp; element-&gt;treeScope() != m_parentNode-&gt;treeScope();

I noticed that we don&apos;t need to compare tree scopes to detect the boundary.
We compute m_parentNode using Node::parentNodeForRenderingAndStyle(), which is implemented using NodeRenderingContext.
And NodeRenderingContext should know what we need to know.
I think we can use it directly instead of calling parentNodeForRenderingAndStyle().
Or we can add an extra out-parameter to pass necessary information.
Then we don&apos;t need to re-query tree scope of each node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623560</commentid>
    <comment_count>21</comment_count>
      <attachid>141840</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-14 18:58:50 -0700</bug_when>
    <thetext>Created attachment 141840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623584</commentid>
    <comment_count>22</comment_count>
      <attachid>141840</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-14 20:06:54 -0700</bug_when>
    <thetext>Comment on attachment 141840
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:1642
&gt; +    bool resetStyleInheritance = element &amp;&amp; element-&gt;treeScope()-&gt;resetStyleInheritance() &amp;&amp; element-&gt;parentNodeForRenderingAndStyleAtShadowBoundary();

in this statement, the first two clauses are cheap, and the third one is expensive. What impact will this have on this hot function? Perhaps we could get rid of it somehow?

&gt; Source/WebCore/dom/Node.h:510
&gt; +    bool parentNodeForRenderingAndStyleAtShadowBoundary();

That is a crazy-long name. Do we really need to add this to Node?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624971</commentid>
    <comment_count>23</comment_count>
      <attachid>141840</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-15 22:04:05 -0700</bug_when>
    <thetext>Comment on attachment 141840
Patch

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

I think we don&apos;t need to compute m_parentNodeForRenderingAndStyleAtShadowBoundary at the constructor
but we can compute it on the fly.

How about to have NodeRenderingContext::resetStyleInheritance() ?

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1642
&gt;&gt; +    bool resetStyleInheritance = element &amp;&amp; element-&gt;treeScope()-&gt;resetStyleInheritance() &amp;&amp; element-&gt;parentNodeForRenderingAndStyleAtShadowBoundary();
&gt; 
&gt; in this statement, the first two clauses are cheap, and the third one is expensive. What impact will this have on this hot function? Perhaps we could get rid of it somehow?

in initElement(), we call parentNodeForRendering().
That means we compute NodeRenderingContext behind that. 
Instead of calling parentNodeForRendering() there, we can use NodeRenderingContext directly to retrieve what we need.
Both finding style reset boundary and finding the parent for rendering are (or should be) parts of same computation process.

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:58
&gt; +    , m_parentNodeForRenderingAndStyleAtShadowBoundary(0)

Should be false.

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:86
&gt; +                    m_parentNodeForRenderingAndStyleAtShadowBoundary = NodeRenderingContext(m_insertionPoint).parentNodeForRenderingAndStyleAtShadowBoundary();

Please don&apos;t create NodeRenderingContext twice. It&apos;s expensive.

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:93
&gt; +            m_parentNodeForRenderingAndStyleAtShadowBoundary = false;

It looks we don&apos;t need this because it&apos;s the fault value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625170</commentid>
    <comment_count>24</comment_count>
      <attachid>142201</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-16 02:16:30 -0700</bug_when>
    <thetext>Created attachment 142201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625236</commentid>
    <comment_count>25</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-16 03:50:33 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 141840 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141840&amp;action=review
&gt; 
&gt; I think we don&apos;t need to compute m_parentNodeForRenderingAndStyleAtShadowBoundary at the constructor
&gt; but we can compute it on the fly.
&gt; 
&gt; How about to have NodeRenderingContext::resetStyleInheritance() ?

Do you mean NodeRenderingContext also should look up ShadowRoot&apos;s resetStyleInheritance?
&gt; 
&gt; &gt;&gt; Source/WebCore/css/StyleResolver.cpp:1642
&gt; &gt;&gt; +    bool resetStyleInheritance = element &amp;&amp; element-&gt;treeScope()-&gt;resetStyleInheritance() &amp;&amp; element-&gt;parentNodeForRenderingAndStyleAtShadowBoundary();
&gt; &gt; 
&gt; &gt; in this statement, the first two clauses are cheap, and the third one is expensive. What impact will this have on this hot function? Perhaps we could get rid of it somehow?
&gt; 
&gt; in initElement(), we call parentNodeForRendering().
&gt; That means we compute NodeRenderingContext behind that. 
&gt; Instead of calling parentNodeForRendering() there, we can use NodeRenderingContext directly to retrieve what we need.
&gt; Both finding style reset boundary and finding the parent for rendering are (or should be) parts of same computation process.

I added &quot;NodeRenderingContext context(e);&quot; to obtain parentNode and information about whether parentNode is in the same tree as the element:e or not.
However I&apos;m not sure which is the better way to obtain NodeRenderingContext, creating a new method in class Node, i.e. Node::parentNodeForRendering() or just adding &quot;NodeRenderingContext context(e)&quot;.
Is there any policy? I mean, Node should create NodeRenderingContext and StyleResolver shouldn&apos;t or something.

&gt; 
&gt; &gt; Source/WebCore/dom/NodeRenderingContext.cpp:58
&gt; &gt; +    , m_parentNodeForRenderingAndStyleAtShadowBoundary(0)
&gt; 
&gt; Should be false.

Done.

&gt; 
&gt; &gt; Source/WebCore/dom/NodeRenderingContext.cpp:86
&gt; &gt; +                    m_parentNodeForRenderingAndStyleAtShadowBoundary = NodeRenderingContext(m_insertionPoint).parentNodeForRenderingAndStyleAtShadowBoundary();
&gt; 
&gt; Please don&apos;t create NodeRenderingContext twice. It&apos;s expensive.

I see. Done.

&gt; 
&gt; &gt; Source/WebCore/dom/NodeRenderingContext.cpp:93
&gt; &gt; +            m_parentNodeForRenderingAndStyleAtShadowBoundary = false;
&gt; 
&gt; It looks we don&apos;t need this because it&apos;s the fault value.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627589</commentid>
    <comment_count>26</comment_count>
      <attachid>142694</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-18 05:33:37 -0700</bug_when>
    <thetext>Created attachment 142694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627594</commentid>
    <comment_count>27</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-18 05:37:47 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Created an attachment (id=142694) [details]
&gt; Patch

I updated the layout test to use getComputedStyle according to the review of bug 84251.
I also modified NodeRenderingContext to calculate resetStyleInheritance directly.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628679</commentid>
    <comment_count>28</comment_count>
      <attachid>142694</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-20 17:48:44 -0700</bug_when>
    <thetext>Comment on attachment 142694
Patch

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

Basically looks good! I added a few comments.

&gt; Source/WebCore/css/StyleResolver.cpp:1170
&gt; +      m_resetStyleInheritance = false;

It looks we don&apos;t need to add m_resetStyleInheritance.
Setting NULL to m_parentStyle will work fine for that purpose.

&gt; Source/WebCore/css/StyleResolver.cpp:1680
&gt; +    if (m_resetStyleInheritance) {

Why do we need this? Is it different from the default?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633793</commentid>
    <comment_count>29</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-25 03:32:37 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 142694 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142694&amp;action=review
&gt; 
&gt; Basically looks good! I added a few comments.
&gt; 
&gt; &gt; Source/WebCore/css/StyleResolver.cpp:1170
&gt; &gt; +      m_resetStyleInheritance = false;
&gt; 
&gt; It looks we don&apos;t need to add m_resetStyleInheritance.
&gt; Setting NULL to m_parentStyle will work fine for that purpose.
&gt; 
&gt; &gt; Source/WebCore/css/StyleResolver.cpp:1680
&gt; &gt; +    if (m_resetStyleInheritance) {
&gt; 
&gt; Why do we need this? Is it different from the default?

I need this because defaultStyle doesn&apos;t have any font information. 

Font information is stored in &quot;inherited&quot; member variable in RenderStyle. The defaultStyle&apos;s &quot;inherited&quot; is initialized by using StyleInheritedData::StyleInheritedData(). The constructor initializes &quot;font&quot; member variable by using default  constructor. This causes a problem, the size of textNode in style-inheritance reseted node is 0x0.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635539</commentid>
    <comment_count>30</comment_count>
      <attachid>144435</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-28 20:40:50 -0700</bug_when>
    <thetext>Created attachment 144435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636729</commentid>
    <comment_count>31</comment_count>
      <attachid>144435</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-29 19:07:15 -0700</bug_when>
    <thetext>Comment on attachment 144435
Patch

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

The attempt looks right. Let&apos;s iterate once to factor code a bit.

&gt; Source/WebCore/css/StyleResolver.cpp:1173
&gt; +    if (resetStyleInheritance)

This can be inside if (e) block above.

&gt; Source/WebCore/css/StyleResolver.cpp:1660
&gt; +        if (m_checker.document()-&gt;settings()) {

I guess you can check frame() or page() here. Checking settings() is cryptic.
Is it possible to extract these if/else to a function or method?
Having many conditionals here in the same function looks too complicated.

My feeling is that it&apos;s worth to have a method for creating an initial style
instead of making it up inline here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636871</commentid>
    <comment_count>32</comment_count>
      <attachid>144706</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-29 22:48:49 -0700</bug_when>
    <thetext>Created attachment 144706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636890</commentid>
    <comment_count>33</comment_count>
      <attachid>144706</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-29 23:13:45 -0700</bug_when>
    <thetext>Comment on attachment 144706
Patch

Attachment 144706 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12839896</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636898</commentid>
    <comment_count>34</comment_count>
      <attachid>144706</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-29 23:23:59 -0700</bug_when>
    <thetext>Comment on attachment 144706
Patch

Attachment 144706 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12846759</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636899</commentid>
    <comment_count>35</comment_count>
      <attachid>144706</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-29 23:24:22 -0700</bug_when>
    <thetext>Comment on attachment 144706
Patch

Attachment 144706 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12814002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636906</commentid>
    <comment_count>36</comment_count>
      <attachid>144706</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-29 23:27:43 -0700</bug_when>
    <thetext>Comment on attachment 144706
Patch

Attachment 144706 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12852692</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636936</commentid>
    <comment_count>37</comment_count>
      <attachid>144706</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-29 23:54:29 -0700</bug_when>
    <thetext>Comment on attachment 144706
Patch

Attachment 144706 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12844767</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636942</commentid>
    <comment_count>38</comment_count>
      <attachid>144706</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 00:03:38 -0700</bug_when>
    <thetext>Comment on attachment 144706
Patch

Attachment 144706 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12845787</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636949</commentid>
    <comment_count>39</comment_count>
      <attachid>144706</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-30 00:14:46 -0700</bug_when>
    <thetext>Comment on attachment 144706
Patch

Attachment 144706 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12849772</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637999</commentid>
    <comment_count>40</comment_count>
      <attachid>144986</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-30 22:16:33 -0700</bug_when>
    <thetext>Created attachment 144986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639034</commentid>
    <comment_count>41</comment_count>
      <attachid>145225</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-06-01 00:23:02 -0700</bug_when>
    <thetext>Created attachment 145225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639439</commentid>
    <comment_count>42</comment_count>
      <attachid>145225</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-01 09:26:50 -0700</bug_when>
    <thetext>Comment on attachment 145225
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:1173
&gt; +            m_parentStyle = parentStyle;
&gt; +        else
&gt; +            m_parentStyle = m_parentNode ? m_parentNode-&gt;renderStyle() : 0;

This can be made into inline if.

&gt; Source/WebCore/css/StyleResolver.cpp:4925
&gt; +    Settings* settings = m_checker.document()-&gt;settings();
&gt; +    if (!settings)
&gt; +        return false;

I would rather have a separate function that returns Settings*. This way, you avoid ambiguity of why initializeFontSylte returns a boolean:

if (Settings* settings = documentSettings()) {
    initializeFontStyle(settings);
...

Also might be worth looking at other callsites of document()-&gt;settings() and using this new accessor there. Looks like a good separate patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642298</commentid>
    <comment_count>43</comment_count>
      <attachid>145967</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-06-06 02:28:20 -0700</bug_when>
    <thetext>Created attachment 145967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642318</commentid>
    <comment_count>44</comment_count>
      <attachid>145967</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-06-06 03:04:36 -0700</bug_when>
    <thetext>Comment on attachment 145967
Patch

I canceled because the patch removed ASSERT(settings) in applyProperty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642320</commentid>
    <comment_count>45</comment_count>
      <attachid>145974</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-06-06 03:09:53 -0700</bug_when>
    <thetext>Created attachment 145974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642354</commentid>
    <comment_count>46</comment_count>
      <attachid>145986</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-06-06 04:02:31 -0700</bug_when>
    <thetext>Created attachment 145986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642357</commentid>
    <comment_count>47</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-06-06 04:04:40 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; Created an attachment (id=145974) [details]
&gt; Patch


I&apos;m sorry. I found a mistake in my changelog entry. 
(WebCore::StyleResolver::checkForGenericFamilyChange) should be under the scope of css/StyleResolver.cpp, not StyleResolver.h.

I created a patch again.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642522</commentid>
    <comment_count>48</comment_count>
      <attachid>145986</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-06 09:03:28 -0700</bug_when>
    <thetext>Comment on attachment 145986
Patch

Looks good. Morrita-san, your final word?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644309</commentid>
    <comment_count>49</comment_count>
      <attachid>145986</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-07 21:43:32 -0700</bug_when>
    <thetext>Comment on attachment 145986
Patch

OK. Let&apos;s land and see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644337</commentid>
    <comment_count>50</comment_count>
      <attachid>145986</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 22:29:17 -0700</bug_when>
    <thetext>Comment on attachment 145986
Patch

Clearing flags on attachment: 145986

Committed r119799: &lt;http://trac.webkit.org/changeset/119799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644338</commentid>
    <comment_count>51</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 22:29:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137370</attachid>
            <date>2012-04-16 11:44:05 -0700</date>
            <delta_ts>2012-04-16 15:23:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120417034403.patch</filename>
            <type>text/plain</type>
            <size>11381</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI1ZDZlMjAzN2ZhNjg0
MjlhMTQwM2Y3ZWY0NTFjOWI4ZGNhNDFiOC4uYzI2OWE1ZDk1MGE4MTMyZjU4NjFiM2M3MDg3ZTY2
ZTBlNTNiN2IwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTE2ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3Bl
cnR5KToKKyAgICAgICAgTW9kaWZpZWQgY29uZGl0aW9ucyBvZiBpc0luaXRpYWwgYW5kIGlzSW5o
ZXJpdC4KKyAgICAgICAgVGhpcyBtZXRob2QgY2hlY2tzIHdoZXRoZXIgQ1NTVmFsdWUgaXMgJ2lu
aGVyaXQnIG9yIG5vdCBhbmQgd2hldGhlciBpbml0aWFsIG9yIG5vdCBhdCB0aGUgZmlyc3QgbGlu
ZS4KKyAgICAgICAgU28gcmVzZXRTdHlsZUluaGVyaXRhbmNlIHdpbGwgY2hhbmdlIHRoZSBjb25k
aXRpb24uIElmIHJlc2V0U3R5bGVJbmhlcml0YW5jZWlzIHRydWUgYW5kIHZhbHVlIGlzICdpbmhl
cml0JywKKyAgICAgICAgaXNJbmhlcml0IHdpbGwgYmUgZmFsc2UgYW5kIGlzSW5pdGlhbCB3aWxs
IGJlIHRydWUuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
OjpyZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgQWRkZWQg
cmVzZXRTdHlsZUluaGVyaXRhbmNlIGdldHRlciBhbmQgc2V0dGVyLgorICAgICAgICAqIGRvbS9T
aGFkb3dSb290LmlkbDoKKyAgICAgICAgQWRkZWQgYW4gYXR0cmlidXRlLCByZXNldFN0eWxlSW5o
ZXJpdGFuY2UuCisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgIChUcmVlU2NvcGUpOgorICAgICAg
ICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UncyBkZWZhdWx0IGdldHRlci4KKyAgICAgICAg
VGhlIGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBieSBjbGFzcyBTaGFkb3dSb290J3MgZ2V0dGVy
LgorCiAyMDEyLTA0LTE2ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxk
IGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCA1Y2U3N2Ux
OWE2ZWE1NTIzZmRlYmY4YTM2YTcxOWYyNjI0ZmRkZmE0Li4wYjVlNWM5N2NjYTE4MmJkNmQxNTM1
NmJlMmZmYzljOTllN2QxYWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCkBAIC0zMDgwLDggKzMwODAsMTIgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFBvc2l0aW9u
KENTU1ZhbHVlKiB2YWx1ZSwgTGVuZ3RoJiBwb3NpdGlvbikKIAogdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKIHsK
LSAgICBib29sIGlzSW5oZXJpdCA9IG1fcGFyZW50Tm9kZSAmJiB2YWx1ZS0+aXNJbmhlcml0ZWRW
YWx1ZSgpOwotICAgIGJvb2wgaXNJbml0aWFsID0gdmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkgfHwg
KCFtX3BhcmVudE5vZGUgJiYgdmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgVHJlZVNj
b3BlKiB0cmVlU2NvcGUgPSBtX2VsZW1lbnQtPnRyZWVTY29wZSgpOworICAgIGJvb2wgaXNJbmhl
cml0ID0gbV9wYXJlbnROb2RlCisgICAgICAgICYmICEodHJlZVNjb3BlLT5yZXNldFN0eWxlSW5o
ZXJpdGFuY2UoKSAmJiB0cmVlU2NvcGUgIT0gbV9wYXJlbnROb2RlLT50cmVlU2NvcGUoKSkKKyAg
ICAgICAgJiYgdmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKTsKKyAgICBib29sIGlzSW5pdGlhbCA9
IHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpCisgICAgICAgIHx8ICgoIW1fcGFyZW50Tm9kZSB8fCAo
dHJlZVNjb3BlLT5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKSAmJiB0cmVlU2NvcGUgIT0gbV9wYXJl
bnROb2RlLT50cmVlU2NvcGUoKSkpICYmIHZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpOwogCiAg
ICAgQVNTRVJUKCFpc0luaGVyaXQgfHwgIWlzSW5pdGlhbCk7IC8vIGlzSW5oZXJpdCAtPiAhaXNJ
bml0aWFsICYmIGlzSW5pdGlhbCAtPiAhaXNJbmhlcml0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmNwcAppbmRleCBlNzUwYmMyMmI0NGRiNzVhN2VlNDk2YmU5OTQxYmJlOWY4NDIzZWE1Li5hMDY1
ZDQ4MzFiMDFjNzkwODJiNGEzMGYzMGVhNzM0NDYwZmM4YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCkBAIC01MCw2ICs1MCw3IEBAIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1l
bnQqIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25leHQoMCkKICAgICAsIG1f
YXBwbHlBdXRob3JTaGVldHMoZmFsc2UpCisgICAgLCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZShm
YWxzZSkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvKDApCiB7CiAgICAgQVNTRVJU
KGRvY3VtZW50KTsKQEAgLTE5OCw2ICsxOTksMTYgQEAgdm9pZCBTaGFkb3dSb290OjpzZXRBcHBs
eUF1dGhvclNoZWV0cyhib29sIHZhbHVlKQogICAgIG1fYXBwbHlBdXRob3JTaGVldHMgPSB2YWx1
ZTsKIH0KIAorYm9vbCBTaGFkb3dSb290OjpyZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdAor
eworICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZTsKK30KKwordm9pZCBTaGFkb3dS
b290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBtX3Jlc2V0
U3R5bGVJbmhlcml0YW5jZSA9IHZhbHVlOworfQorCiB2b2lkIFNoYWRvd1Jvb3Q6OmF0dGFjaCgp
CiB7CiAgICAgQ1NTU3R5bGVTZWxlY3Rvciogc3R5bGVTZWxlY3RvciA9IGRvY3VtZW50KCktPnN0
eWxlU2VsZWN0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IGU1YjIyMWI3M2EzMzcx
YTA1NDVmMGM0OTU5NzE2NjhkYTgyNjlhYTguLjdkZmQyNDgyNWZmMWNkNDk4NTJjMzU4YTRkMGQ5
MjJkNGZmOWIyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtNzAsNiArNzAsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsKIAorICAgIHZpcnR1YWwgYm9vbCByZXNl
dFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKKyAgICB2b2lkIHNldFJlc2V0U3R5bGVJbmhlcml0
YW5jZShib29sKTsKKwogICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdCB7IHJldHVybiBzaGFkb3dI
b3N0KCk7IH0KICAgICBTaGFkb3dUcmVlKiB0cmVlKCkgY29uc3Q7CiAKQEAgLTEwNSw2ICsxMDgs
NyBAQCBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsKICAgICBTaGFkb3dSb290KiBt
X25leHQ7CiAgICAgYm9vbCBtX2FwcGx5QXV0aG9yU2hlZXRzIDogMTsKKyAgICBib29sIG1fcmVz
ZXRTdHlsZUluaGVyaXRhbmNlIDogMTsKICAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Q
b2ludEFzc2lnbmVkVG87CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKaW5kZXggNWVl
NTY2MzMyOWY2YTc2MDZhNDY0MTUxNTA0MTZlYzA4MmU3MDBhMi4uY2MyNzU5MGYwYWZhODIzYzll
OTUyYzc4YzI2MDI5YzAxNzMwNzQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbApAQCAt
MzUsNiArMzUsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBF
bGVtZW50IGhvc3Q7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGFjdGl2ZUVs
ZW1lbnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TZWxlY3Rpb24gc2VsZWN0aW9u
OworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiByZXNldFN0eWxlSW5oZXJpdGFuY2U7CiAKICAg
ICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJI
VE1MCiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCmluZGV4IDM3NmZiYzNiZjc0NDFiNTk3ZGQ5YWU4YTY0OWRmMjVlNzkxMDFj
MzcuLmE4M2ZkYzg1NGRhZjNkOTRjODA4YTMwYmFiYzljMzhmMGQwZDM0YjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuY3BwCkBAIC0xNDQsNiArMTQ0LDExIEBAIGJvb2wgVHJlZVNjb3BlOjphcHBs
eUF1dGhvclNoZWV0cygpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgVHJlZVNj
b3BlOjpyZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsK
K30KKwogdm9pZCBUcmVlU2NvcGU6OmFkb3B0SWZOZWVkZWQoTm9kZSogbm9kZSkKIHsKICAgICBB
U1NFUlQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKaW5kZXggMTZjZjY2NDRlNTY1NzgyNmQz
YWMxODQ0MzA5ZTNjNGRlNjViZjBhYi4uY2M5Y2QxNWEwYmM4NTliYTkxY2NjMTdiZWQyMzFlNWIw
MzA0NThhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6
CiAgICAgRWxlbWVudCogZmluZEFuY2hvcihjb25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAgdmly
dHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHJl
c2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0OwogCiAgICAgLy8gVXNlZCBieSB0aGUgYmFzaWMg
RE9NIG11dGF0aW9uIG1ldGhvZHMgKGUuZy4sIGFwcGVuZENoaWxkKCkpLgogICAgIHZvaWQgYWRv
cHRJZk5lZWRlZChOb2RlKik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzQyNDBlOTJmZDU2OGJiZDhkMzVlZTBkNWQxMDlm
MjE5Y2VjNzMzZS4uNzAyYjk3MjhhNGU5YjRjNGFjYTIzZGQ1OTFkYzRhMTQ4NTlhMzUyMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTE2ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtA
Z29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5lZWRzIHJlc2V0U3R5bGVJbmhlcml0
YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQw
NDgKKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdHMgZm9yIGNoZWNraW5nIHdoZXRoZXIgcmVz
ZXRTdHlsZUluaGVyaXRhbmNlIHdvcmtzIGNvcnJlY3RseSBvciBub3QuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA0LTE1
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMTA0NDQ1KTogU3R5bGUgaXMgbm90IHJlY29tcHV0ZWQgb24gc2VyZW5hYW5kbGlseS5jb20K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNl
dFN0eWxlSW5oZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzljN2UwMGU5
Mzc5YmZkNjM3YjM5MWQ3MWM1YzhjY2M5OWJhNDFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5o
dG1sCkBAIC0wLDAgKzEsMTMyIEBACisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRl
ckxheWVyICovCisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CisKKy5z
cGFuIHsKKyAgICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7CisgICAgbWFyZ2luOiAycHg7CisgICAg
Ym9yZGVyOiBzb2xpZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCAr
PSAobWVzc2FnZSArICJcbiIpOworfQorCitmdW5jdGlvbiByZW1vdmVBbGxDaGlsZHJlbihlbGVt
KSB7CisgICAgd2hpbGUgKGVsZW0uZmlyc3RDaGlsZCkKKyAgICAgICAgZWxlbS5yZW1vdmVDaGls
ZChlbGVtLmZpcnN0Q2hpbGQpOworfQorCitmdW5jdGlvbiBjbGVhblVwKCkgeworICAgIHJlbW92
ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykp
OworICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3Qt
Y29udGFpbmVyJykpOworfQorCitmdW5jdGlvbiByZW1vdmVDb250YWluZXJMaW5lcyh0ZXh0KSB7
CisgICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKKyAgICBsaW5lcy5zcGxpY2UoMCwg
Mik7CisgICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xuJyk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrKCkg
eworICAgIHZhciByZWZDb250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJuYWxzLmVsZW1lbnRSZW5k
ZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykp
OworICAgIHZhciByZWZSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXMocmVmQ29udGFp
bmVyUmVuZGVyVHJlZSk7CisKKyAgICB2YXIgdGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSA9IGlu
dGVybmFscy5lbGVtZW50UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
YWN0dWFsLWNvbnRhaW5lcicpKTsKKyAgICB2YXIgdGFyZ2V0UmVuZGVyVHJlZSA9IHJlbW92ZUNv
bnRhaW5lckxpbmVzKHRhcmdldENvbnRhaW5lclJlbmRlclRyZWUpOworCisgICAgaWYgKHRhcmdl
dFJlbmRlclRyZWUgPT0gcmVmUmVuZGVyVHJlZSkKKyAgICAgICAgbG9nKCJQQVNTIik7CisgICAg
ZWxzZSB7CisgICAgICAgIGxvZygiRkFJTCIpOworICAgICAgICBsb2coIkV4cGVjdGVkOiAiKTsK
KyAgICAgICAgbG9nKHJlZlJlbmRlclRyZWUpOworICAgICAgICBsb2coIkFjdHVhbDogIik7Cisg
ICAgICAgIGxvZyh0YXJnZXRSZW5kZXJUcmVlKTsKKyAgICB9CisKK30KKworZnVuY3Rpb24gdGVz
dEluaGVyaXRCb3JkZXJTdHlsZVdpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LnN0
eWxlLmJvcmRlciA9ICcycHggc29saWQgI2YwMCc7CisKKyAgICB2YXIgcm9vdCA9IG5ldyBXZWJL
aXRTaGFkb3dSb290KHRhcmdldCk7CisgICAgdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICB2YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRpdjEuc3R5bGUuYm9yZGVyID0gJ2luaGVyaXQnOworICAgIGRpdjEuYXBwZW5kQ2hp
bGQoZGl2Mik7CisgICAgcm9vdC5hcHBlbmRDaGlsZChkaXYxKTsKKyAgICAKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhU
TUwgPQorICAgICAgICAiPGRpdiBzdHlsZT0nYm9yZGVyOjJweCBzb2xpZCAjZjAwJz48ZGl2IHN0
eWxlPSdib3JkZXI6MnB4IHNvbGlkICNmMDAnPjxkaXY+PC9kaXY+PC9kaXY+PC9kaXY+IjsKK30K
KworZnVuY3Rpb24gdGVzdEluaGVyaXRCb3JkZXJTdHlsZVdpdGhSZXNldFN0eWxlSW5oZXJpdGFu
Y2UoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgIHRhcmdldC5zdHlsZS5ib3JkZXIgPSAnMnB4IHNvbGlkICNmMDAnOworCisgICAgdmFyIHJv
b3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdCh0YXJnZXQpOworICAgIHJvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlID0gdHJ1ZTsKKyAgICB2YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICAgIHZhciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgZGl2MS5zdHlsZS5ib3JkZXIgPSAnaW5oZXJpdCc7CisgICAgZGl2MS5hcHBlbmRDaGlsZChk
aXYyKTsKKyAgICByb290LmFwcGVuZENoaWxkKGRpdjEpOworICAgIAorICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9
CisgICAgICAgICI8ZGl2IHN0eWxlPSdib3JkZXI6MnB4IHNvbGlkICNmMDAnPjxkaXY+PGRpdj48
L2Rpdj48L2Rpdj48L2Rpdj4iOworfQorCitmdW5jdGlvbiB0ZXN0SW5oZXJpdEJvcmRlclN0eWxl
V2hvc2VQYXJlbnRJblNoYWRvd1dpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5zdHls
ZS5ib3JkZXIgPSAnMnB4IHNvbGlkICNmMDAnOworCisgICAgdmFyIHJvb3QgPSBuZXcgV2ViS2l0
U2hhZG93Um9vdCh0YXJnZXQpOworICAgIHJvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1
ZTsKKyAgICB2YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZh
ciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2MS5zdHlsZS5i
b3JkZXIgPSAnMXB4IHNvbGlkICNmZjAnOworICAgIGRpdjIuc3R5bGUuYm9yZGVyID0gJ2luaGVy
aXQnOworICAgIGRpdjEuYXBwZW5kQ2hpbGQoZGl2Mik7CisgICAgcm9vdC5hcHBlbmRDaGlsZChk
aXYxKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4
cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQorICAgICAgICAiPGRpdiBzdHlsZT0nYm9yZGVy
OjJweCBzb2xpZCAjZjAwJz48ZGl2IHN0eWxlPSdib3JkZXI6MXB4IHNvbGlkICNmZjAnPjxkaXYg
c3R5bGU9J2JvcmRlcjoxcHggc29saWQgI2ZmMCc+PC9kaXY+PC9kaXY+PC9kaXY+IjsKK30KKwor
dmFyIHRlc3RGdW5jcyA9IFsKKyAgICB0ZXN0SW5oZXJpdEJvcmRlclN0eWxlV2l0aE5vUmVzZXRT
dHlsZUluaGVyaXRhbmNlLAorICAgIHRlc3RJbmhlcml0Qm9yZGVyU3R5bGVXaXRoUmVzZXRTdHls
ZUluaGVyaXRhbmNlLAorICAgIHRlc3RJbmhlcml0Qm9yZGVyU3R5bGVXaG9zZVBhcmVudEluU2hh
ZG93V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZQorXTsKKworZnVuY3Rpb24gZG9UZXN0KCkgewor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBjbGVhblVwKCk7CisK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RGdW5jcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICB0ZXN0RnVuY3NbaV0oKTsKKyAgICAgICAgY2hlY2soKTsKKyAgICAgICAgY2xlYW5VcCgpOwor
ICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+CisK
KzxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgorPGRp
diBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Cis8cHJlIGlk
PSJjb25zb2xlIj48L3ByZT4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>137381</attachid>
            <date>2012-04-16 12:37:23 -0700</date>
            <delta_ts>2012-04-16 12:37:23 -0700</delta_ts>
            <desc>Archive of layout-test-results from ec2-cr-linux-04</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>176969</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAKCZkEAAAAAAAAAAAAAAAAAYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvVVQJ
AAM7b4xPO2+MT3V4CwABBOgDAAAE6AMAAFBLAwQUAAIACACEmZBAlwWolKYjAABirAEANAAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL3dlYmtpdF91bml0X3Rlc3RzX291dHB1dC54bWxVVAkAAwhv
jE87b4xPdXgLAAEE6AMAAAToAwAA1F1dd+I40r7fX9Gn72fy2V97ZnYPgaSbfQNkAume2Zs+ii1A
GyOxkpyE/fWvSjIkBIxlrHLim5l0AvVUPSqVSl+l3/75OEve3VOpmOC/vz/69fD9O8ojETM++f39
zejil8/v//mPv/2mqdIqZeZ/7+yPv7//+OXD+3djwpJUUvNP872YKXKb0Pj39+YvVEoh3e81m5mv
kNn89/fHh0fHvxye/nL0cXT05e9Hx38//Oj+DtBfjs33OIF/tJJkBDDv//G3d++ewLO/XlMeUzkC
sDZNkg4legoff7/U7XOuZocbmpkffj05+WiRMqyIqCVUm/Ah1W2RpDP+/p2xQqfmqzLlT18+PDRq
RwlRqki7g10Y1+JhO0AI4c6AkeiRR/dj14h5xMMzxlgw8388JEnUtDt29gyMC48T8TAAdG2cN6+x
Pp8GQTWG+UMeBYHMUG64WrbnDmoN6klw1N2tWdbQ3w5W/XprL/9Bb7t8nurze8r1BYm0kIu1Xn5c
spcfHh7l9PKOSEHJhEV3uZ183bZ85XLo7IlU0Zu5xWiLlGuPLlEAUkTgMJIiSVqczYj55jm35KzY
OynHXg5zK6mFxuRok0PXODFO575yng1HwTE6mcUVBZdrhr7gdM2LT05Lu/Fx3mCVynvaM73sknFK
ZGm7nnQ7KAD4IyWxJJpFiBjt9DZP/kZ3rGCHxLXizPT1iGLSJIjS4eW7jw+M7ljO9ISA6E3u45eC
T9BBVgB9MUwNBOPoSMOZEHq6RwQr0Tg7umGw1pcaF2I4FRKtj4weWC0urFW9INjOZXlD9S4wpx4A
bK5+TClNRpJgjCQvEfBsMSNJ+ggYd1ckRrJmEwO7bTriwcysz9LZnKKNkjfz+hBQE4rnZCEBfSdy
YaYLduakzv+bsnuSUB4t6kOq2TALd0nkhNaMOdSUzrE8ZajFvMt7LI4TBLuuKax50lAAHmsZ3xl9
WJv4fSo77/v8KWfedyGiVHVVl5NIs3uaN2faWMF4UimHpVaqxTVV7H+0x4zh6WxofswTf/Khgvxv
lE2mermk1uLxBXuk8Q8W6ymGOVa6wzRYFmaJnTvj/FIBr8vPqH6glAOBKhfiUwWIpf47ESq5AHnc
1fywkr9Ttkcfubm+NFhzwdX6GslRsJW+80ctSYdo4rf8tqFQKUv+m5o/VDEkoBHPdPG1YSiiO6oN
GOWwO9Rhak50NKVyzaQPwZavQOzQDDZe4bhYv4N8lCsizc/ajADYSL000WyOb9EfqdA0Hmrpt1Ba
CavLTRLA4nAw3r7YoeOE6IoOePrhaIcDtsVsbiSpbzRJRBkT13XzcIlWHJ8tzN/bJEkUClJftAXX
9FGPyJ0dH1BQfjAei4czpnGMsIltfrAzzekN4OFnV2RCh1Qy4+D/e+FnpbebjvI2lb+Nepd9Ee9I
BDbG0m165e00Zf51ATHOPxPIRfBkrU8fVl+vNkB8/JzDG8D8YHq627LD022mbaqXQ99Fq3s5/Nke
Ds3AL1IZ7aCwGtBZQvjdblNOqiGsPvVn7/IbUdeQ7naoEQjreyL/PMNJAAJtpANH3719Z1g8KoHm
4YuXZFG14+Zmj+2E0byd221bxM90ySHrG6OSyGi68IudLwV68PH10n6pPZVixtIZUl4t5sRkmBdC
mtmx5ziwVTFfq2y/WbelbDMfHZ/kNTOMmtxky4/a88zPukZ5HQM+cQHbx2ZYonE2NuchHB/vgWD4
hwDZT5PEftrfVYuF24aitnOKf5F7oiLJ5jokQofes4gOI2IGL3va4UZRZcZxYkY0MEukGuaUcyFN
RjMJiexiVofdw3T330LM7AxBue/4RslimGuaCBJ3BFVcwykpGjNJo3yIPVygnVAi7YIQjSHH2GXC
Pk7gnLYvNBuzyA4j6tLYdMPBMv+1k/2QHH8he8w2lK4SkDnGP4RM4tyx+XgfNzOpcpdDF8qVWuhV
HsERZluSkwQCmAmHNsx2Z/Mk8DIE/LOrOpI8wJf9gn6+ar7GwQRNKGaig12U/kZ4nKCYNzbhrhub
ccB4hu/UaZdy1Q1cG+++lB67T3MMnZh/GjHLZXciNY2rmruzG6wBXhgj6sTrTriQ9QBeMR5N6wC6
sKfl6ms5i1dfw1m4GtvN4rmdHqpqAxxJwtWYSjPvpFr5Zzde0EVxZyQpHS6Mu0rBN1Y+yoeavMxa
GQhITgHOg9jtWh3kyx4yYzaFr12Y6H0+m+sFLsw1TZVpOzuOKVwom9gLfgEbrzaSQRtc04lJWWC/
zDTO1KqBq4WBupJiTqVmNLjB0rBJ223HZmtsUoWhlmlkughJ2lPCJ8hOM5pS3jEfkALFbXpE3V3T
eWISTUNj9hP8Es99sg+6YAbJbTWQwjDCIJLBau363Pw0WATh6cyAUPWzLxyYj0EvtDooEO0+3xdn
Qsae7bIXAvTo4BjaAPxpr2lACBzKqC0MRFj5fyHLh33mP8OL/AtBy59muP0J/7qCMdj0MAy9N0AC
WmKSjZHQJMnf299Tao88ZrM8EI3QmzYwgiOYz7MJn1Gv2zr+Wjs9jeI02VtZj0hM4/yV3+PyOV3e
btY8VdMOk3phQ5ufPVtVO8iXP4iiJI1pjI3ToQk1cyhEhK5Jzq8I4xoRw4q26dMKzXuyVsUkGi/b
Cdu4HpF3mTd0UjjzYPERAe1XtqMOeN+EIO/UG0OBK0nvmUgVkhJs2cCDVA/GPToTcoGI8m8qBYTz
GNucFVCWHmfzOEREM3/7zhQzgdY/5a8MtW6d78pCWVx3KIhoO/M2DjknkoY3755KNl7czAHomkb6
h5mxZdt1cNMuVi3pNpBiLOzu0lCThj1DVxbVTVIRmlXdsbldav9KtbIrROExpD3mORLDGUkSjG4w
TSfO71372RvmON44hytlJHE4CM0BubjKxrxsZ9IOfSr3WEVItNeAavHYhROmF8bllZbwISxq+0Kv
s/u81+G4zC7L3dKskDNVL+MQU7yXOEqFMjcyZLFrYA9vuKVEhBSGwTwns7BHtWRRZRoLZz9uUtgj
nExeLGZ/DrI5KJcHqi1OFzKwsfmy0ZjNmFds3qLhgQ/W+WNEKRyoegVIM91GAYvTiLq0ciQQANxC
gQOw4u252+AYqwbBRdJrH82Wq2l8Rk2Ayn4bZ+JwgMW9ARB9+pB9qQqKZ0duizl70Y/DnWGAtKol
JVkoA7Pwt+a5UiUqgdwSGexEXm50UiK5zza8LdiVgPDrf3t0u5JeVrpxpMoJzByrIjNamVFEWVu8
Kko9KZLj0hR2CIdzwvcRV0TE1aBzbfplQqI7u7m01s6HwXZEQK7dmUsSEUG6CxMwMw3ixPNc2VY9
D4ru6JwnFBZGu1zBXqBX4lAWaHmSvQaoTmo343QdWNv5M+meXX2sl0pc1FxW8WBhodNeWM6QTK+F
6zxZzz0KjHZNeCxmS1NacLqvDO7GnKUswfn4lQz1iGxdGE7MnGwzspU+bv/p9P2uy2alDNpU68BD
tiHuj5R6LWqWxbByWxMYt1brjUsBCHAV49h+9A3GcAYpoY835hee91L34tF07Dqw4ENwSLsvNFyc
ZZDzKjNLphKu/qvAiAgxJDj28SvZfPJKuKcIXlU2VpvAeOwJ6BGvbUK4Xngw3LUowpfJJ+SePTMP
HU0JH3D/NaV1DXMv0FCqDNISLHbiVSj51ylXbm0zjfI7+rYO91J2YYMkRMN6Ynb9YHjHXhyYKn0z
61PerXoNtZDcCt+uuyAvXC1Pv4NCkHbC5jvvzQRD+peZB+YjhUKB8oc77TkNhXS1qo+LzVx3Ria7
jfoQCmoA0WoX0lElpMReiFwuz9sf4O5Osb9XJHMd1+79eWBWszXKLvMDKuyu8mjx7D6o1y21spBX
Jv6YASezbcCTRY9oqJtxIeQFk2rXsYdfS2H7Rsyv7sS8LX8aeH3J1hzOBHtHlHV9Dookj0TqdSVk
h/hCpmCnpTUx6cwE0tUnko6CHfnqcgbbq0NjhRdXLzXKu69uF0aKt/r2Eu5qfHeY+g8sH2KBbBFv
UorZrRlE4uBMuaXa4BxBpZCEzOerCtwBEfrwdwzBHUYmghufDC247Vadaey+YC8l4GK4nRxkEOVQ
zDQExyRbtqUO7rYAIRH4rF/UCYND2zJSYVqyhlFHzxlJNpvR+GyBjHOesBnjMANFh3pG2wvrOmRG
JrQO4E1zd2Fv5rlb8YvSmEsR2eovcT+d3VLZbd9ULF2St3/mSoGy3CvsG0l0nmZ+Zhm0pHMGK5e3
pGqZwy9fciuYSJnO9Wq/crtdX9bLMmxVzc8oNw2xu+LuzN36Xn35618fduzXL48rRdpOTzJXXc6h
mXeBnlytD3yw4YjaM/i+4IUaoKCbmVi2UAEC7QmyV2NiUxcfWkqq4+WM7u2hnEMWH4LFjmE6gSvc
ZyS6u03HYyr/ogoOBXd1K5GUxIvzR2Ygh1ORJnFHGKamO0phbaNhuyEHnur0RQbNVERk/PQH2IC1
MfxaCO+7C0EUcvS4GjiWHS9yqurxQOZnVgHTPCyhTwplzNDYqeGqDMDHa2Johf+kUleZXmW8R0sa
mx41jMScdlLpO1ct0sGr/2w/nFS+4+SVrDYDDIvaYCS1ZwF871z7HzslcWwvWc/EPW2bNo+DSmd2
7wZV7hVR+pzHg/ElUxoBZGh+tkD2IY6gAJLOExI56XYUoA/hqcoDGU2J/kbUQE+pvIJlUo0Ku6Ix
MAr4bStJrGhjRFDp8IIghtwJvBGYRUubFcE+ZY9wNk+TXeUHtg99XpDRlEZ3Q6r7lMYKqgsnZNEm
qaIKcmCTnZzRKblnQgY11KJmdTAW7tJPCdAK5ro7SFepmj5V4WhFUToDgql6uhgV3twtF53MjNSM
71I9J78CcKmRySWJxr++iRdF1j8E29imsN1uS/PQ0gFyi375I9Xyct4wvdWoWJFtN/hYHRhdjm5Q
Fo6hispTTZVS6VoRZpFX/t/N9eV6mvQx1wGPy84vzH+/Uu1Zqf5Jk7xksztsnV2ed352GCSaxr03
hHOhA8i/GV18DiRzGNB8GomYhpBkixoHkXTtjur7lqrykGf7g3+N/kKJcCwhhBzfE5YeJo6DtGEo
yuEkoknWg7joYDzOr/5W1tvpPP9Cy0YOUuwHUmgRiaS7h3aFMZQuboWZBledbu56WqStZXJNdSp9
ct51hXac6hsMeyK2FUL/jSP2LxyxLRyxf+KIbeOI/R5S7LmKyJyGlOgOiI7IbXihsNqEItjMwhPG
KZrg4/CS4YTfmaTkDk3pEzTJp/tJLorH9oAg9i1F8XQW0WdIydPJz6DOWba91bavUayb8ynMs1w2
KYQbvz7WbFUo70kX8mg+b9oxuGDGcQQ7Lrpea2+lBLscHkGw0/g7kWhK48h2enu//LWH3jiyn+sN
66iXlE+8Jhp7W4CHAleSiKTOpOwVNoUH53DcYT0cwnBkZ3q7HowTduBlxAje9MyaxMEonAZnSvhe
QNgh3WPoMiY8XQ7Yuyh33irnd1gpyCAO/WxZU+igWOwRjtjjcGKzBZPwNKwLPsISjEbFCZbgU8+F
ib2Ef9hXa7/eCNfcjCOmsHm9rXOehKvuIOY2cCw3m9zgYrE9r7YUaHzgh+vOuu3GPQqAO0xvl5De
Tbgbo7BF+X9opJ0kpHfjSjfiupEbCu7L3WYbbRddRNlFIoj+IyUxwqzQnn7RUMSBEuk5ur7Qx88G
cke/SjKfskhlV5JOOlVOLeZfjoUT3ZLFsBOekiTxcewd2h3k4two+rUnojsc+e5TF0KOpkyNpnC8
zZ2Z6gvdM+LaqfQ8bFEFvMUFHOxAxS9ynY4kk2dXKPeL+TnuAq+j2Cdc/KZcL1TJu3UjOIpcd4Br
9dk95RbRDTeK7QLW1rWoML20Dy9X+pziz1Fmd1LSnhKYlvhtY5ZDWL2sPRLiUni1bTmAvvnvVZKq
wECFjd4eGYkSoYcNODVxwydOrOmQN+ZqMS8R131FwkUL4bWbsCnRg1obPUdE3WEUn0s5h6/1qJ6K
WPmZ8EIhbxdZ1gjdeB5vjwJruaeAYKMYsgvPg5jb9dp1tIpK2038QnM58cLkHibcZqXAIbUacPi+
rZZNJIMqN/7vZoTG/kZUfeC2eIoyP6iRqzH8atCvZLarkP46djtsPMP1shLvWJgs0X4HzVAo2fx0
/SUwXHHUGwpIKUSS4W6EvjDVENxJU/f2jCu5ZY/q90V2P9XLylxVdx5vXR6iJdHdRILfWAldDjE4
AKwHwyYqx2lSrXL0jhHl2pVXNrT61Tre0OjAQ649gH1GJ4zveAq8Csw1jSV56JqkMIY5wAMugnvB
BgfHEYZpyXMEFEtM9Fk1NVyxAvEApBAx4JqUxXCP0ZhAGMGz9pWcukTntOVHeiSario07fm41Y5D
Y/C0TyuCqwvWdGVt747hwDuNyxm5qe6uGrFUOzpdF8iqEZrfKjdTdb9GVODJSS0oHPDPwgqPM21s
3WyobInLg8XOaHB+tlJtVaQRLss8+xyiQs9i65MeUJDuwT7P0uVwZHuPgFtNCXgrIo0iqtQ4TZ4x
YxWrT68nRmAVV5sMP4YO9B1eE0WEBWOtN9qbbPWY+hQYAFgNOLaRfeFa3X4p83N7l5Znj3lg+hvh
DvAnrE2oDnIXW6LBCYofhGk3tth6YwANi73qSgpbsBNRj+z1oJ99kRkPBS0hHR2M/R8WCgY+ehAW
XNWBbp3ZDXLgYxngFeWwRnFmn+NBd7olA+AFr9AAy5Eny9wgml4KpTGjZ5ok7UWESuoKA1h1pmUZ
apffUv1AKeZo/iIZxvehr2ZkWOH02F7JacmR2W4ngae4x+HcxDlZwCOZ9eECmjsE9dTA0JWZXZaB
XRvftcYA6jB4aMq1eA1RuwgaKp65PcQX7GD2OsaZmppkzJVlgLOITrWVqojg63O2VW8wPNgZBnqX
WMev0RNeAoclu3ii6hp7mMoxiSjaCl0mP3t5siXpCIrv0tidBPHclNqial7pAMLhBUB76z5DtpvA
y5vvwymRNIaVOt/qoPnoxRQDTjtNXq7UHYVbqnMkm+TboPjGzJda7V7sTLMiD3ANRd3M7VmhscYB
sh0BwAZzEpl2NEnNgFN8LBNiLxJiZu6JQkJr27v6sKoOVYqxMfqCw9bGRJIEHvQ4qhnv2PN4V0VX
PBNai9k1m0yR3HGY3nq/EFBF/DGyfBsOYV8kSr1KQZbEMq3femSqlbAJd7FVdcxolj22XgvekIxN
EmslxDhkDlINi+PDiCklJJAJjl8XlrOsTsQr90Sx3Q+uC7MvkOCyV3r9X3fNkV884q+ex3Vpjv1y
NzaB0oxmT8/09gjj7kzJs3qEKvxBF8/zqVXVRuXmKnvIee/Cqkf78LNlrKqmflCO7I5x8/wnT21U
bqr5z6txE8BvrgVMcWKbMjUi4vgojMTHm/QSH4UD8RE2oiBHXR/FkXh5836CEEdWzxY1KJR46ozH
ypt0FE+dw7HSqLDiqTseO03wGYT44uTyxqUrJfTGZedN+k0JvcOy04jJUQm9cdlpiu8gxB24CKBH
8D6THj0IuKYUeGEGebwqoT8uS2/Sh0roHZadRuU8JfTHZakpPoQQh7Kd5SzaDcZj2N1oRAZUSnNs
hl5noTgUS1h+1IhsqJTm2Ay9yUhUSvPqDMGGmYl42ZPp2VscTQpJpQyoia+37FilDEDi620kThU5
w4taXnCN8zGEGPb8gWiHPGS3cDquGUlVefVr4epNelZ59VG4akSSVV79WrhqmF/VGq+yiIl1cAh5
bSGAXa/DasNc0tueethseDD0tud12Gy6byLEzwuWQBmfRiR3BbqGZ+FN+kuBrtVZaNQafIHO4dl4
yz6BcQ7SvboIZRiyOwnNOA3prTYqN2/zxJu32kG5aURq4682KjcN8Ru8eGNLGCTMZkVNCjg+euOy
85Zdx0fvsOw0Kej46I3LTlN8ByHuuCe63XU6W83WXbBrzoHKfQyoia836Vb7GIDEVyOC1D4G1MRX
4/wL4+xBJCnlTQ5ge1lQF2Nvc2t4HwuwGGvGWal9LKiLseb5WB15GBRwaG4SVqR9HUw1Y3gs0h6D
qWYmXkXa18FUs3yqlnyrUYGqvPq1cNWQIRAxVuWDNTTBQoxW/mAN86sa8iooUZUskIIW8p7vnrbU
x14jRkdPG/BYa2T25WlDfaw10dfqyMdQA1xdIwJ+ZCsL2YyRFD+2FUE2M1vDj25lIRvpbzWti/WF
ngY/H4F49WsPG+phrDGrGQX647DV2FWyAv3rYatpvlXXWhlK8Kpzpo4XucrANWdlAy927YJr7qoZ
XvQqA9c4/6oh91q+Cj0YjweSTRhv5N6ktxV1MteI0dLbCkzmGpmVeVtRJ3PN9DmMu9SuuAQ8pmVE
uedPzmdzvWhG6Yey2mMw1Yz7u2W1D8xUv+lu1a/Xs/pNd64+nn+dxKvr0Y1wJw99w7DRCGfx0LcC
G1dGwNyMneyeIjkJ4mJpGeUDc3RGzUQqbptvSdKITrWvEVWzzOcYcC0Snlxs0CXpPW2oxJqc0Cv2
SJPVFVJuTxMnbA5ZbkNo28+ICry1OJsRbX6Xve15NHg252wEaXtZEJCxw8YzdlgXY6tHK5pLWSkT
qleXfP4nh6tG4opIkwE3qe7rHmagctek8st7mIHCHV7hBORDndVMQuey4b5YT22BLB2Km1Sxo0hn
PFbecrWFIp3DsdKkCh1FOuOx0gRfwa2o///VXdty4zYSfd/P2B9wLM1m87RVsmTFqvXIji6Zqryk
YBIysUMBWoCUrXx9ugGSuoxoghfA0ovLclk83QeNRnejAWZgSy6uyck0UcATX5d+27m1Ao74uqYV
v5YCnvi6Ovty578GPDzxlSO2WlFMDuLdNfmxRop45u/SX2XUSBnHHF6Tr2ukiGf+Ltn3NVKkPX/6
YMTTKvt0TU7PTnLXDF2ySdlJ3jVD1+S07CR3zdD12JBzP5QXw67XH1lq4Iuxzwm76hWX62niirkr
9FuWGvhi7Ar8mKUGloxpgheS0gehEg0WCZnEbEvD24KGXpdTbg6yx9SIbEXJxyLelAJ9TeOEfYRz
ZopbYLXitNeUUz989lrxWR+nFZf9y7fPvkf77DfndCjWa5aA3nozT3D4NRWpmtFQkrfmC+/tv//Z
Rnn4eoXyFXI3NjGaTCkNlXn8rQUBtzWm7GgyH9w93o/+LGOBi6SWtZ1K243avQse9x8kbavyxVv6
qaAtZvpGKPgXXash4QsEGd8grqATvmWKgZJu4uxOfJ2N8G0twTR6ZX2XRdfXkMQxol0wObYKNCVo
EIbF0y54ohyL2VTZBQu+F4/RJnYH5L1KkfKQhhdsBVWCdzH6+uWBbA3L7jjlQTt7cE5IleCN/cWO
B5EUnP21n2TzhEgYgTVVl+wnKgRvSshITEUy/842JmVHrjNXFGZtxhdMio3wjS0lkCKO5wzydHrp
oeSRqO0U1vLAc6xDq89X/FTkdunUJxaRSiVqPKToIJ7JK50HJKYdxAH9L81qsvC9qqEsE7VFZPh7
29DYR37we9sQOPN0w4jw10tOA07kbDWu9G0jZDKHxbD76dpBIelUxMbhWyLWLGjnl2Dy9VuNLHy9
Klg7ErMLZXElxysUGYmXmxDW8+ba//Kllfa/fKmj/Rm5m9JhLvfItxVa1Ey/tDF1m4l9Kmm70mm/
EVxrgnHkspcmX2p9+gOBHVerq5AbsP+V8F22FdaG8J5r4z6W0zHPZ8CarZBG90eBISRP6Hub1aPX
bvXoWayWZ8RtofyMbiimgF2of/uvVurj16vVPytwUwLGkugaCYlNduQm2LcZ+cqV80dRmyitd9J1
7pF7kZ86cyNKyzWicUKmIm9qqOu79wLeVKLgd+7SZCpMmOwYLTc8Q787sJkQCZays50fvQ9gcvXO
Ad8iSuP7LeXJA+Fh7GjAIpHGGWuHB8odQHHBxySvdKAVmwuU7ohigT84XPKfVitFEweYG8aD6Ff4
G0xYF48/U1ToHCRk4QgMemrsnIZP/IGFIeX6Ke7wcrBBHDvzThtJN0TShUDAMfhV9S2ivCBzqaga
RhSbnl4EkS7mAJghDyFEAAtEaJQDPx11mjUJuSqBt1kWPxRbKqkL1WCJisiGFnaz5AmLR6WusbVG
G5Oczt8I3kxD2ZaqEVnDDMF7ahzoF5hwBiMb7fVVIoBIUJetWGA2McBVL4RLA14xzlQECDMwIyrB
dAYrSF6Ge9GcLXwvxFzSeRTZtcSqGR7hkiv4cYDUXWIL84KtdsUdW2os5FQ8bRq6vUNZb6wBs+zB
LyTutTwwKokMop1fTY0ZZ3miL+jshJA/uAMdK3iucorWEhyBPjKFd+xi265r0zqHq9nY6OtidAOx
Q/j8mrJhChH6kSzqc1CHkig8jSuFB/yJepYCYkTMg4ZCSvhTvFs0Tva6wvcwAkUIV3fCdYKe7Xtl
V1lPIFZOWLJ3At6Q8ytxkAdvoL3RTCSeMfvhk0wi8SrJJmKBf6L74blbOT9J/Qlea6mPZNDQXHjp
fj39gI6JymTxBn8AvuTgaf9Hg2apsTU+drSN8TwMOHyIYzpAsoyE55DBmRM5RQT8c2cBsC7E4NtG
YrKxV+lQpBLSZuw1gpwJ4j0XT59w3L7BMeevZnfHAYhZQwfutDAAS1y5nglM7li8Qowa2/uZstDR
AtsY9f07hGtYjJAms3wGi6JyS0MsVEzFH3iSvoXKlhb+W0rC4wyvk2aIcSxIgs+G1BXUVbX8w16m
UhNcxXqHvOETLbmZAKMkEcfzv98JP0pngeie7JU4Fqe0aoIPfnf7ZL2FU3vVO4NiOxCn+zTddOyY
eagRsj2TgaTmFGaIkTV4nRphbLNay75fX/AE6z4ny83tz52oGkjcrcn6qBpUs0vFvPkIr3ChHhDV
jgdT+uYBKdStwwA31tVBGnrAXEi2ZSTWhDIvUL+lNK0Va9XF0XGETDeJO4h5AKOTgp8VrzSJqNS7
D2ZmJ7uJuosFTnWP+LrLHJ/yjehTjO6hPdhmDrWfB8XQqlnKOVbNL0uKvNt/wtHKqfO59CjExvFc
wp2KhDoHeiapgjxQpWuHrA1eIJgd/CpFunHgXKsX5v/S3UrC73vsYQqB+fG6/FMn6/ITpzpUziGt
lPxQvjJLfBOegCIIEP1A5T0oOVp2nskRGgxVEc/4GC6PYDhk/uDyYTtEdDt0S64wPQ7z77pDGqYv
LLijfzFwOSfnDjtBrHZeY3zADPgtSSi6ye+zHrw1NsmKJMGq3J+TNUjOAHmAp44t1C0V9cYeFP2a
HtIJH8dY9+oAuZrkEY3J7g4kC9Fw5yKVAW3D8gdVwgVR35+FStAoQjzsa7o9rNQsF7Ns5Q0iRrdU
LfC1RAkShKHSFBIepqh1HawCthm9+5W3m+QfqSx6Z/Q54YLoxtyWB6f6uO0bC+g9/z+GnApXEwB0
BIWJThb04nu4uD4l3j3WlL4n+gtzwili3r8T3IN84jMKaiKX+BQPwHM99+Odbs/xDZ5prcf3UwQ4
0l6L4VuCBxKvfKiuj25T7P3eonPC6w6eTYefayxzA0n24Y5C3EKRBZxYPlQ9gtdMd4lu4ZJ1q9/B
FXWNe+bLKuKE6yOeFDTCay0gJNWtw5zWKTSfEfOmFh7EE7X6J+wBTbXZ/P9YSHPID7dUHQPl9a46
xwIagxUxPQ3tW58aow3CUJd1YGqsxTbfj3SLOaVvSx5oLn2omN9QUKOpqIVq6Lj9mH9xwyUSOZZi
PaIqAE9OeOKB1R/QBzzQDcafYbQN+ubqgk+F+YbZWk4iQDW6h07hjtzcIiJJ9lJYff7AvNXbLdd1
Wk+bT1HrOL6lGl6BTI08iITL6YD2CLABDcdpHJu/udVQvzveNNYz1c76qoOmgW4k2b9J1EEBeSHZ
GsO5P6gUZoPdujPwrHQ3H8NAOFagOAPJdzM86FPcg+UMoe6OSR2MiSq2oBPHBnAI5dQIDoE8GMIh
HKxMWdHEIUzLR1c6HcK3RPVGWVcLhDYsXbcsTZYdccaP6Lcf2YoGuyCmdS+qKJf1xhLRYNHyixN6
tRCr2B0oJQIscYfL2eOjAOSTbp3u7kiYw88nyV4Zn6cBxIXlBxWPD8uXinhThYNH7CT7YLfiBzrr
Yg2lUMpOqc6AdByjsbJafxVy3xny2FiGI51nNGR4BMStfjnK5+v5eWO8BIwUU2VdPfpKk0iEfrAe
0NlJD7ZrgL5F4Ppi06bcCeaRfz34oP7zj78BUEsDBBQAAgAIAJeZkEBx65FhqQQAAHMWAAAmABwA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHRVVAkAAy1vjE8Wb4xPdXgLAAEE
6AMAAAToAwAArVjdeuMoDL3fd6Hpz37fPMNc7xNgW7aZYGAETup5+j1gO00bm9B2btrEOUcGIR1J
9CG4QyAf/EE6V8u6p4Osa/JenJQUTI1iqsOD690//Qa2Zul7ce7JCCNPqpNBmU7Is5xEiA8rWR8f
+jDoHTY1ZIKSWoysM7iJldaqBkrtoxpqiWFR0AlGvWhIUyAsTmkSLJWPSwtqIP6ejWJ2DugD2wnI
luVAOWCI/xuh7gFVi3fjrcKy6pQRgzSqBaaE4vE1b9zLSlOTQdh6HKKpMyv4K+IEXJcePX+Jtk+i
wYWpYH+tVFpYI0bXSBh/LkXmcFrnI7q1TKoz4j5SGU8c3nvqrEJ/2VhuwXfJOWpAjI4uIKju7Vfb
GqlZW1ByBzJIxBuTtyPXOEQoQin2oi8Z/OKNuApwYw6r4Em3BRwnOZ+wF+S6kJzTb8AF0HQoc8C2
kJB9xkf1nBUn/SZkCNGEgOcc2w7ey0iLbVutDEhJxTM4k2BroAotJ+KssxYGVhZIq1yMLRL0e7RB
poNTZkS4NfZstJWNGEYdlMP+Vj/5L9sqI+6jVofC9BgzYx/JlH8f02BPy5HlUB9CPxdxn8gTrwaX
i69g3VxrxFMJ6KUE9O8+aNHcO844qYbs/s+XSEMa6aaWnPH+mS1Sx0N7ZRg5q/YfoPvA157FKujr
Udyglw5Fmpq0aMaYQgCfpFbwgEJR8SMyEX1Os0PtsUHLE+qPnmaHNeBUl7OPUeeRKa9CdrFEBue/
Y2mH6+y1CnZ00/JdwZKo3dr32xSsyTkgr52ys4jrxdKrUzx78Olz8OcCeKz4yFYWwQpD4Wz5WMJi
2aVaq1Lb2qoNvbhlXdQOVTvEONk7gxhvlW2mnZ//EFuhyXTwPqAbKHOS/uBQOdT6zFONkAzTQ8Py
/HNABD3MsK+yVfr7KbKL9YvN+mLUQf1fmPT3rMT++Ujft4N5YKvolZlg2mqfCrnW+69R5yP4phtn
I1/2IoKbwh7lTFWn1/pba5ImFm4o6RCj/5Zl7VGRxzAwYshIBRtyAbEYaZYaT4OCBb2lGwv3kmPL
g13gXCdX2CwbW9K8DV9U+Bbu/aGy3EBQkmOT1G7GFYDp6KFATazrmz1FQgFz31aLhgimoDKe6ywS
vdtRRKPrMPfOw9qeV7bwPVFqNjEnWP4bxjZtDNIfC3bI1GqUpCjsBYx58E66e/1ZVLHrxOgvwuSo
mLVMPokk6h7TxMZe9shk22JsHFRovjUQyEmSQzEV9doaE4v20nwskwQWzFuT2F07xQwUszDGxrmZ
P29k3R51ZB2nGlbVGO4cxyuamuiWjTen+FxuRgp2axBCf9Fc7BmI/XuXbHfhcfSTTh3mgiEqbavk
gpbtINARyc3rr8jyE5Y7YOnLKPj27B4lth/6RJtXZlewdRdvcC38ZOpPcm7gSy96SLPlEpl2nv5w
7F1H8ZqsmrYvCN+Rk6ZcOi9koYEAf+g0V8IsrUvlYXI6KuOlLa5+bYX3ynXWpSiGj7Gx+bWOTDM3
9L/HzTF1Jb9Nc4+PQLew0ItHVC4kFXpuV056LiW9PD7dX87L43MJ6KUE9OM+6BcqwnqlFy+Pkmy/
uSHx/wdQSwMEFAACAAgAl5mQQFk8AftUBAAAkREAACYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy90ZXN0c19ydW4xLnR4dFVUCQADLm+MTxZvjE91eAsAAQToAwAABOgDAACdV9u2pCgMfZ9/Yc7q
+SOEWGYKwQWxTjlf3wloXaZAPf2kS3YgJDs7URsDKWGHDmn50vZfbcCTMsET+lkTBp+U0XMCpVOC
KB9Ur9HNEf4eaHR/6fcdvBlCVA79FazSPvhlDHNSnQvmqkzUaaibbcAI3kJc8ejfPCmOpJ1tImpl
BjDXLtzLC9hjYOIzk/KBsEeTT2raWEy6czubDuCm9iJaC17Nk9XE99DOWUgccKs9pQOr5rLTHbj9
VXa4WxQHEP000ynsDWJEK07+6IxEelHfSAO2HZ4icMQpB1o7FYODJjaCtsG7pQ1g63bokuF11+nY
PMVof9PVDYR57CZYJEn5ljyLtypaOKksEMQRPfqLerinvge2y0Ha7t7eQWLHVAQHoxRi4hdDTNKm
RT5Kkb5ItYy6Sj6LvFnKtYzeuNmCOiAe33JNoyolnQ6Lz86Tk/IBLix0li9h65lhruCUMCmCezUS
PcZEygFxMDNIUdQ+9SGOh14M2udIYMKLD7FeqWVJpYnVLqo11lVfcdQXyHLGm/IDsiC1kZyAX7ur
ipCYEkfXwJGz6ijnVfjPHEKWDHG4CRe+dTMR1/lqWoU+r/FQ+DqOpUL1eMbZDC1X5JNrkML+jdVS
BdVDXdBWCI191COcFOb/GT3U9U4RqtFiH2bOaaL1ACOkgcNzxtkRloIs1hGmEIlPMoQ3UGFqWXpI
rCMsAUvgQDXj6EOuHG6Bu5zkXqm8zkeWmO9s+LxRdhk8xOqek9OU68tzCKuAd9He/Ct61Qczp5YV
Y0K8Jmk/QjpWREXLVJeGCCN3nsrgkBXliIeb9dvMsHHuyLgkViy4h1HdvdIIxmCfUW3uV7A+ZDHr
gl32QAeAHGQYJ1oUDdwRDy8joimTTW4/a+Bfe9k5w43fWTD8PHYQaza54HIbIorICgQiwOtBH46a
ME4hoRh86S4FJ/jyRRzNpWjL5FeApXC2o8+Z54C9bDDpKBxo7NNpc+1ZWdUNt0txt4eoI/POMNsf
7eeU7SeoTKKxCzrayiq3w9Xz5qLQn8crX+hprjncnrNAoXKhl5t7uBSp+A95sL6XrdoWsm++iXsd
ET7xFqPI4Ko/z4VPZI93ScAfJbhhuw4mp/Pbs7gVSjwSKSpRj8RFNFLTKiNQu3w+RkapxBNyHpV7
F77XYfMT/gBQnMcpvQwziRZXyXnZiC+FvvjxuGfTpeegm62qmWCF6x/LJVbpn3OwCoopIutbcqon
5tlNWo+OMkXVs0PhcnEHJLpxoAM7ddmvM+2ZkOLN+vYevDVfr79Te8aZcXtOPQ26OS28vZWmUKvH
J1K+zuJMTr2yc5QgWuDY7JnllsT6qrgeFdyE608W7aiaPH1Q6yv36aiyoAgl3favcNLoNHhiwkyQ
Z6Ka0DiG8LWM/Ll8bQLy+vHQaLK92gZq/lTBz84V8QSuiKIiZTpsY3nSld+NYPj/SH6VeJKdBl2o
+1OrH+A7N8fXQ34DUEsDBBQAAgAIAJiZkEBndJ0tJA0AAM6EAAAmABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvdGVzdHNfcnVuMy50eHRVVAkAAy9vjE8Xb4xPdXgLAAEE6AMAAAToAwAApZ3bkuO2
EYbv8yopaUNqZp1c2uuLOJUqu+JUxb6ESEgDmwK4ADiHffoAIMWDyBn83braKe3/4dAAmo0DQaHV
RXhltPt0qD9VT0Kf5c5bod3J2MtO6Z3U9U4+S+33T/7S/EUsgPCnVa8zwL+1cjdqthAr20ZUcndS
TaP0eWK3xM4LH9LzUyk+1k8FMVadQ+mf3e7U6SoJPgZaaV0rg/JZ9sKj8F7at1iEzn0Sdb1rlPNS
S7s7WXPZVaJpjqL6c0t9FE5VuyBIBnE7c+pL794Xm1CAmdGWkr7q4hR+2mnxrM7vKi9d41XbBPta
cZGb+XVtHay6+V8vStfmZdfaWBr/1ksqoZ+F+9Q+qUa1nwLp3aey3vc/760UtdENqD1JK3UlPxY3
Utj/hKb4a+wj8Y+9aNon8bf9I5MjUqlBMIikrcLvoPTcmKNoUvFJRGUurXHKgxbeaxm70jMsN/qk
NJ58K/wTKHVPoR+9gOIbJ5DVf5PWfCwd7TZ01cq0bzSiDv+jdBqYwWOZlk8rzWdN5++An6Wl0Y06
P3kq5ExnK8kw0gBS7TNgZNNcObJVXg0MRJdA6WtRz+1ptyxux1uSYMoVSrBmZIk9LCKM/jXDaFah
9605RbQF3q/6p8H36fkxdEou2KYIQTP4Wp5ECEcYZHwUM7AQ2Z0ll+PXUwVto2oGaWO8DXJ95Qi+
ogeYzmINw+NijeKjY4PFx0gP0xxGz9A9xoIjmobsM5YY1SC415jmIJVw0kkdfs0Ghxs0beBP3MmE
oUEv7FnSs3oKvST1FDKpu6Zx3emkXskooekmqNNWVuaslZOoi3EmuiOCq+gBpqtYw/B4WKP4oNhg
cfP2MM1V9AzdVSw4omnIrmKJUQ2Cu4o0A2uFjQtDhI42x5jd7b0kYMu+lwBu5HdTwO09T4LWDeck
vTNu0CzDkTvmFswzF95JO13FPILfTAEloZ/ekMyu+kEqsNFv0qC22TaON9vEk+PPW/RuI94Rk94m
wjcjM4SbEtCmMtrLV8+z5YTfbc/tpBg2mRLi23WVBse21zkcy7JX+G67biXEsMg1Gb5Nb1LIW9TY
OhZYBlebWaSvrXj5KQ2Fg7BnUPqIS/8RpfnF9RsgWjxYgYo49U1SmN6exIx6iJBVfvV/pk27WqHJ
RavPVOasTlQk1D0XsUwUsAA1E+c2SWZSaLNj0p8aI3zfDCDRO3ulY06NDBnJS5vZFpvBE4YB182Y
X1MR/yljWFjewd6Bfq/r/6k6s3mzTiIOJiqiLJEgtSC2YzXXv1iBdsC4FABKszthk9TJ5rQvKGK0
k2DbZpP+xRp9jjvYoD5us5EGewSA5iTszI7SrB8ZldAe6KSGOtQoz7b7qAQ2QEct1pCjPLv9GZW/
+rdGQkt3kzquvDl5UfPpGYE0uVXzpZ6ey7Ay77xVmcfiisl2+4kIRXLhadTZVDKsj26R/fGbmsVa
eQlBH419kq8HKvCZBrhmV5CJkkwcyMQDmXgkE3RbVY24tAyL9VzJ5A5MjmxDQa+aoNdKcM0ouHYU
XEMKviV78JELEvtm0NLKOO6JyteCC5Zc8MAF2XV85IKfueB3XPDvPJDsyedkySYPbPKBTT6yyc9c
UvCNK5jW1eIimbkm9I5cD3yU16r2fGRWNZIlmzywSX49H9nkZzb5HZcU/GYR/HYR/IYR/JYR/KYR
RAvHNuEEQRNXMrkDk3tgco9kTncXMtNKW+GzzpET3EYQ3FYQsXqc/CLGyI1tmDT35xS0B0sueOCC
tA7qns/EykWCViv35ryk9eXZCgqxeHPy42Kepb/u5MlX5bzD1SETYc8w4J6EzSx5zNSdVl+7j5d0
zlbUKnbn/DL/KFUhdduaRnhkx2YTq0xjOsvlmJleXxSik6bzTtUc8FnaRrQlm6SD+SXGTSxk51Ul
GjqZVrRze3wj2SgthQXXlG+paRG4YHIlkztgnDn+kVbizSU6DhoTrOiArYQVNyyHUpghzqKMwiVp
TicnaXla6bvMWfNbpH9tD0PivyIeeNJyfzTemwudO1mDGnKOBafcyoLEya8dOtQGQunogQoGUzKY
A4mBtpNWEM0DDNTgiQsORDOEN131RESo7mnFcfP7uL3Snv6PwovgZGQYUQWwY7NmYmOpTK9dU9mN
uFukZBSuZBWu3Dch9pJEBursGxjU3decNZ2uiYxX+o2IEJop7ktSmijq09yOoG+kPmd2kZcA1bwD
01oZokICY2wtLRD1blHhcevIUJiP0RnzQsko/0rWUj8cXyAOhBmJhNObYDbMXFKEcRDlnRanU4g7
ZE2ACAPnGrD5zGnuFaGFpgHDbQZKOhoH3WywonKR4BrIH05YMcELyjDC4bZpO08aplFP8WpRnz1w
cyNPvrYmEWFOQNDXKl5hQRyYE0gblxNnQwMVLKokU4TxFqGLqdVJkYxOfZQkJncsbinPHpFaysmO
qYeQwzVLBjv9FifH+0q0+2PnPaasGpN7l2/UIu8Wj+Lg5zSmzAdSo9SF2ZkFbYCWNTuSk2w4iwYo
/zBK74/yWTagFm2CJIbbIKkvKncyetJiDZakrbCiaeAKgg2ctGDt+oqJqvMSFcvXSspawonDlu7l
8U9Zn+HimKPvHKy28SB0cBoNTJAK/6L8kwJav9PjVU8fyV7ScW3YgL3cVaKRyJHPGZPP4KKcCyFN
dik/OX5hq31v5IIiLiniB4r4MyZGrDaK8/sJkzQzbEchFNhMaqMJhcCe+qM8dSO0/Xox2H7xeHta
Xncx7C04EJpTXLeEc0hiUsoHiviBIn7ExP7FtAqu4aAuSeoDSQ1WMsW4BUFb4tq4dNhhTuq/Zl+F
h2UVpwQFmShxohm2Wwo6wsjlgCJSu85K1x3TbwUPgwtIcm5RT3JYAei9ECpO4wz1zCPgvLAeRcbl
69nVjnmKMDiuaqANjvKs9C+5adkg/aak/dLZZxkyyK8ZbEDknvURXlJxQs9Zgn3sRKZSz8hCaTGl
t2ZBUpegGgwGknZ6lmJ6cIY+AfHa0bgGVhD1UGXDRC91ZbjGV0DLlxT2kpBX3wafD1iqv5Gin4aC
w2aOUGycOOQIxaS+WljUNZEIAzG4MixY2wZLLgg8y5CdsV7ofont+FPvBmO8QETgwbuFlWQsORky
pc6MmmVn3FsMNviWEME1L0Fk6XYDuz5DiBi60f0hWvLRAxXtNLD8tcFdB1wWi24TjwYGNTkM2ORK
mCP46iuB98f4MiZugUENHcmbA+EJBffZK4LX4Wsn6ngHXUWM7lYcuWUzKZSMFO6pNxrprUEs2LPY
q+2TFh2+SRynLQVBW4JafIo2yPG+avEX7Sf9ctUHY2CPZsfX6AuKuKSIDxTxA0X8SBED65/OW/On
RB/qgxoOQAd9a7sQfEPxyYJAB8cSMlYj8dMSisOcyGAzigViof48IMlXFTR5icv/lC+wmDJFGRFo
7eNmrQR0nTdU2hCGBv8NiD6m09Vb8CVLV6CvDHD0eQnkr75e6qfr1nAmuxe+lIO3wYx3toFHvq96
RblkaQllDygs5cAJnSWAHc+5MulUxtvQ5AUdKSlIKmBBJrA8WhHDaW2sbKUAQ5otMF1EV7BJVmHB
OeMMNTYeP77elw332zWMj92eZZqXa1yuaefcgc7RG6QHX5mGeWXn+MbM8Y2U49WcwpH0UJA2B2Dn
ONMD96HfUDQXOULgVejAjG24bqs/FVng0hKXHnDpAy59hKQ+PLOOXfzMV//LD01nodXPTAL50x8f
JsDHv5jG3FeDawr3loHP/9y/KHZPJcYk7i4FnMAxNlz8XgIsbjL32A3a4aGZP5i81Oed7VI/vzau
YHLQqE97UwWsxNOEHMl0G2pBk5c0OVQYqcUxzJDM6YSVZqYvCfpXgvYN0Y4vlcGdciTgbjkS5I65
SUL2UuCNwgs5XKNhmpQ9UrGUyyp70mEBkM21xiBbDa/zXtc3f2MwvxOYNKyI+VwZLB8gyByk46oF
2lGWM34CQG7MLRBqzmFpCS7hoI/H2QuinlKedPK6oALkHCBvje5gruSZ4vh0BYOIl9E7Hyba+6Py
l8wS8BrKvli0RqbbS4hc7pX3NTL/nBuH/HJ9sP68/AAwnExcUf5CNmqk/mUUJ7P8xeBrLh15/7cK
/xDB7IbRGplNNzhgH+RzyD6w/u0O9ncq68cPUNOYWrZ0uya3whlWcZ35+0adNYP7QTiZ3TTZQPHj
lGs4Lk7YU3YWk+wB3ks+EwP+bNSi34FeIdi3EWYYtJ0710PbszMAGMmjFrgLfabGbkOfAcBG7q26
JKkPJPUDSf0IqPG73OMQ21Vd6PeXXXz67Roj6l1lhXvKciFMjGMazWaQI0sXMzkoPl7dBFyakYAL
NBKgPn7nYKhFvCQvs798i8SzGI2nM9Y3JKaRJ08CbPbbIrdEfxCeWpmewqszNk9yl0fpMy55ItNx
0rwPvwEu4rUPhY7Zdy3fI+OIO+U+tfQenL+v5T3SXUTTsMjsC+c3IN56SQ4eGZhRCwP+H1BLAwQK
AAAAAACLmZBAAAAAAAAAAAAAAAAAQwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3B5d2Vic29j
a2V0LndzLmxvZy0xNkFwcjIwMTItMTkxMjIxLW91dC50eHRVVAkAAxVvjE8Vb4xPdXgLAAEE6AMA
AAToAwAAUEsDBAoAAAAAAJGZkEAAAAAAAAAAAAAAAAAfABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvY2FudmFzL1VUCQADIW+MTztvjE91eAsAAQToAwAABOgDAABQSwMECgAAAAAAkZmQQAAAAAAA
AAAAAAAAACYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL1VUCQADIW+M
TztvjE91eAsAAQToAwAABOgDAABQSwMECgAAAAAAmJmQQAAAAAAAAAAAAAAAACwAHAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzL1VUCQADL2+MTztvjE91eAsAAQTo
AwAABOgDAABQSwMEFAACAAgAkZmQQGMRpt0/AQAAmgIAAEgAHAB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLm1pc3NpbmdhcmdzLWNyYXNoLWxvZy50eHRVVAkA
AyFvjE8hb4xPdXgLAAEE6AMAAAToAwAAlZFNT8MwDIbP7FfkuN36wdouQkjQgeAEWgsc0ISc1C0V
aRIl6bT+ezJ1gg5x2c229DxO/HID9pMI1ZBaGbLuO71BWaEpDSKZ67YiySqLFnRWlOunl5KSK+y0
G64P/d1mQ8kFA4uUVsj6htLCAf8qDXCc1vMFeQ/2ScJiwO1fcg5SyaFTvSUSOrTaA4sjfXhP0TYS
xAPISqA5mpYxS1cTU7BPa7ZK6nQJPAqm8yWyS5xM3pDlyvi1eVEUbhBYoEDulKEUtBbDs1EajRvG
RVWc1SFs/8NB7sCOt2plkyvpcO+iNaUW3b3vRgGwGuvsPAFwjtZOHDyIg+o8R4dge4Olb38l9Vk/
ec0efWX87U90OQjBfDSjNoyjALNpFLuM0vYHvO1b4Vr5McZ3o9sDPqIp+MCqkxBDxtOUhUESJ9Hs
G1BLAwQUAAIACACWmZBAIOE7uGwBAAD7AgAAUQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Nh
bnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmZpbGwuYmFzaWMtY3Jhc2gtbG9nLnR4dFVU
CQADK2+MTytvjE91eAsAAQToAwAABOgDAACVksFq4zAQhs+bp9AxublWbMtiKRRnS7tQWqy0PSyh
jOxx6l1FMpIS4rdflbjBKdstuY0Gvk/6Z1RZcK9EmTVpjCWL7aYrUddolxaRTLu2JllM2YxPxHJx
/7jk5DtuOt9fvp1/lCUn3yQ45LxGuV1zLjxUf5YWKhzX0xn5Fe3TVFLA1UdyCtrofmO2jmjYoOsC
MBvot/eIdq1B3YCuFdrBlFCZ5SNTtM+aqMmTFGgVR+N+gnKOo84zysLYcG0hhPC9QoEKK28s59B1
qn+wpkPr+8NFNWXNBaz+hYPegTvMqtXrwmiPex8vOHfor8PpIADZYMPOETyx21DZEJnzJjSvvLcC
vX/PfkHjOKqTkXLHOG+PzE9xL3+HRGGC6N/TPLf+tQClZJjpQcNyySo4z3JtbIluq4ZsTDYZzv+j
KLHCdof2RHJkgeGnrAgLwdtiKIZRRjmdR18hL3etc0cgT9OTX0LDNrIkj1KaxpO/UEsDBBQAAgAI
AJGZkECGdKAJDgEAAAkCAABFABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5taXNzaW5nYXJncy1zdGRlcnIudHh0VVQJAAMhb4xPIW+MT3V4CwABBOgDAAAE
6AMAAI2RPU/DMBRF5/ZXdGw3JyYf9QapEGyIVDCgCj3bz1GE40S2UyX/HodUELZs90o+R9Z9Gw4O
GZPI+4qx0oP4OlsQuMz7w+6DDGnKKeBlu5mJPZjWjE3bu52BBl0XHh5u1KlvurKuDOgnMFKjvRkS
yrNjMJAhU/yYqiwBEZOpJ8jvMKR35EVrg74oy9KPGkvUKHxrGYOu0+OLbTu0fpyFkuYqgssSA3MF
94pGoq1NVbTG4+DjE2MO/WNoMwhcocrXgSAEOrdgBaFErmMbBNdbPIf6B6tVP37Ln0OyYcN/mgK0
5mHiWRfRmGA+TXrNGat/gYe+1r42n/P89109YTOSQRhe/hwh4iLLeERSmsbbb1BLAwQUAAIACACV
mZBAKDKNVmwBAAD7AgAAVgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAv
dGVzdHMvMmQudGV4dC5kcmF3LmFsaWduLnN0YXJ0Lmx0ci1jcmFzaC1sb2cudHh0VVQJAAMqb4xP
Km+MT3V4CwABBOgDAAAE6AMAAJWSTWvjMBCGz5tfoWNyU+zEkcWyUJyG7UJpsdLmsJQyskepu4pk
JCXE/35V4gan7Ae9zQw8j/SOVDnwL0TbLVHWkeV+15ZoanRrh0jGbVOTRUKTCR+J9fLuYc3JV9y1
ofv21l+XJSdfJHjkvEa533IuAlS/1g4qHNbjCflJj1kmU8Cnj+QYjDXdzu49MbBD30Zg0tNv9xHN
1oD+DqbW6HrTPJWLfGCix4VSaY5MzquEDudzlDMcTDYoC+visYUQInQaBWqsgnWcQ9vq7t7ZFl3o
TgfVKVNTePoTDuYA/rSrxmwLawIeQ7Lk3GNYxe4kAKlQsc8IHtlNrFyMzLmKw6sQnMAQ3rNP0ySh
9XygPDDOmzPzQ9zJ15gobhDDe5pNE14K0FrGnZ40LJesgs9ZVtaV6Pe6z8akWuDsH4oSK2wO6C4k
ZxYY/pUV8UHwpuiLfpU0T2f0f8jzbeP9Gciz7OKXTFFROs1plmbJ6DdQSwMEFAACAAgAlpmQQIBa
xNs5AQAAWgIAAE4AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnRleHQuZHJhdy5maWxsLmJhc2ljLXN0ZGVyci50eHRVVAkAAytvjE8rb4xPdXgLAAEE6AMA
AAToAwAAjZFRT8IwFIWf4VfwCG9lZVvXNzNCxMRoqJEHQ8ztdofT0i1tR9i/t7qxYNSEt3Ob853c
ezqSYJHzHGWz51w4yD6eDGR4qaezyQs5RZGkgLvxqCOmoCvdHqrGTjQc0NbeOOupZXOoRbnXoG5B
5wpNnxBSGSc+gZzighRJGAHNAvI1hygX6NUWZVoZH58KIVyrUKDCzFWGc6hr1T6aqkbj2i4wp6yY
w+4SA30Eu0Gdoyn1Pq20w5MLlpxbdCs/dSDIAgt2DfjM1l4ZfwrnhX+8cc4IdO5805wGAclDH3Vk
nJeD9048yHe/uW8E3XnrbeneUlBK+o46nCWSZXAdvarMBm2j+huYLGJc/IFuMMPyiOYHPDDA8Bcj
fMG4TnvRV0QSuiD/WV/vS2sHYxJF379KfatxmJCIRsH4E1BLAwQUAAIACACUmZBAY/skTGgBAAD6
AgAAVAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4
dC5kcmF3LmFsaWduLmVuZC5sdHItY3Jhc2gtbG9nLnR4dFVUCQADKG+MTyhvjE91eAsAAQToAwAA
BOgDAACVkl1LwzAUhq/1V+Ryu+varUuDCNIpKojSTL0QkZP2ZKtmSUmysf57I6ujih/s7pwDz5O8
JyktuCVRZkGksWS2XjUF6grt3CKSQVNXZDpK6ZAd8/ns9n7OyAmuGt+efvTnRcHIkQCHjFUo1gvG
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
bGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5maWxsLm1heFdpZHRoLnNtYWxsLWNyYXNoLWxvZy50eHRV
VAkAAy1vjE8tb4xPdXgLAAEE6AMAAAToAwAAlZJdS8MwFIav3a/I5XbXtVubBRGkc6ggSjPdhYic
tKdbNUtKko313xtZHZ34we7OOfA8yXuS3IBdEamXpNSGTDfrOkNVoJkbRNKvq4IkYRINWI/Pp/eP
c0bOcV275uKzv8oyRs4EWGSsQLFZMsYd5O9zAzl26/6APAe7OBYR4Mt3sg9Kq2atN5YoWKOtPTBo
6c/78GqpQF6DKiSa1jSORDLpmIJdUtIoH2Ig8jDozscoRtiZLFCk2vhjU865ayRylJg7bRiDupbN
g9E1GtfsDyoiWg7h5Scc1BbsfleVWqZaOdy5cMqYRTfz3V4AosSSniJ4oje+Mj4yY6UfXjpnODr3
lX0YhWFQjDvKLWWsOjC3/F68+UR+g+i+0iwqt0pBSuF3utfQiaA5nGaZaZOh3cg2GxVlgqM/FBnm
WG3RHEkOLFD8leX+QfAmbYt2lcEkGgX/Ia93lbUHYBLHR79kiDGlYhzEURz2PgBQSwMEFAACAAgA
lZmQQG1zcC5tAQAA+wIAAFQAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLnRleHQuZHJhdy5hbGlnbi5lbmQucnRsLWNyYXNoLWxvZy50eHRVVAkAAylvjE8p
b4xPdXgLAAEE6AMAAAToAwAAlZJNa+MwEIbPm1+hY3KT7cQfYlkoTsN2obRYaXNYShnJ49RdRTKS
EuJ/vypxg1P2g95mBp5HekeSFtwLUWZLGmPJcr/rKtQ12rVFJNOurUkWZdmMTfh6efewZuQr7jrf
f3vrr6uKkS8CHDJWo9hvGeMe5K+1BYnjejojP+kxTUUC+PSRnII2ut+ZvSMadui6AMwG+u0+vN1q
UN9B1wrtYFokIitGJnrMGtnQAuaFjOl4vkAxx9Fkg6I0Nhxbcs59r5CjQumNZQy6TvX31nRofX86
qE7yJoKnP+GgD+BOu2r1tjTa49HHS8Yc+lXoTgIQDTb5ZwSP+U2obIjMWBOGV95bjt6/Z4+SOKb1
YqQ85Iy1Z+YHvxOvIVHYIPr3NJvWv5SglAg7PWnyQuQSPmdZGVuh26shWy6aDOf/UFQosT2gvZCc
WcjxrywPD4I35VAMq6RFMqf/Q55vW+fOQJGmF78kiiTNooSmSRpPfgNQSwMEFAACAAgAl5mQQFWy
W1RoAQAA+gIAAFkAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnRleHQuZHJhdy5maWxsLm1heFdpZHRoLnplcm8tY3Jhc2gtbG9nLnR4dFVUCQADLW+MTy1v
jE91eAsAAQToAwAABOgDAACVkl1LwzAUhq/1V+Ryu6vt2qVBBOkUJ8ikmXohIiftaa1mSUmysf57
M1ZHFT/w7pwDz5O8JykM2BcidU0qbchsvWpzVCWapUEko7YpyTSk8Zgd8+Vscbdk5BRXrevOdv1F
njNyJMAiYyWKdc0Yd1C8LQ0UOKxHY/IYbJNERIBPX8kRKK26lV5bomCFtvXAuKd39+FNrUBegSol
mt4UR2KaDkzBdloVSVoBxEUYDOcxigkOJg8oMm38sRnn3HUSOUosnDaMQdvK7tboFo3r9geVEa1O
4Ok7HNQG7H5XjaozrRxuXThjzKK79N1eAKLCiv5HcE/nvjI+MmOVH547Zzg695H9JArDoIwHyg1l
rDkw13whXn0iv0F0H2keGveSgZTC73SvoamgBfzPcqlNjnYt+2xUVFOc/KLIscBmg+aT5MACxR9Z
7h8E51lf9KsM0mgS/IU83zTWHoA0ST79kjCm4L9DEiXh8TtQSwMEFAACAAgAlZmQQCQB4MJpAQAA
+wIAAFYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRl
eHQuZHJhdy5hbGlnbi5zdGFydC5ydGwtY3Jhc2gtbG9nLnR4dFVUCQADKm+MTypvjE91eAsAAQTo
AwAABOgDAACVkl1LwzAUhq/1V+Ryu+vX2jSIIJ2igijN1AsROWlPZzVLSpKN9d8bWR1V/MC7cw48
T/KepDJgn4nUS9JoQ+brVVeiqtEsDCKZdG1NsijMpuyQL+bXtwtGjnDVuf74vT8tS0YOBFhkrEax
XjLGHVSvCwMVjuvJlDwE2zQVMeDjV3ICSqt+pdeWKFih7TwwHej3+/B2qUCeg6olmsE0i0WWj0zB
NmtEXtVhGFVRMJ7PUCQ4mtyjKLTxxxacc9dL5CixctowBl0n+xujOzSu3x1Ux7QJ4fE7HNQG7G5X
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
fs7JKa4a357tzhd5zsmRBIeclyjXC86Fh+JtbqHA/jwYkqdoS6lMAJ+/kgPQRrcrs3ZEwwpdE4Bh
R+++R9QLDeoSdKnQdqZxIidpzxRtJ9UEYUQZFnHU349RjrC3eUSZGRuuzYQQvlUoUGHhjeUcmka1
d9Y0aH27v6hMWHUCz9/hoDfg9l3VepEZ7XHr4ynnDv0snPYCkBVW7D+CB3YVJhsic16F5bn3VqD3
H9lPkjiOynFPuWGc1wfmWtzK15AoNIj+I81j7ZcZKCVDp3sNSyUr4H+WmbE5urXqsjEZOh/9osix
wHqD9pPkwALDH1kRHgSvsm7oqozSZBT9hbzc1M4dgJTST39JSgsqZUQTGh+/A1BLAwQUAAIACACV
mZBAUVOnozkBAABaAgAATgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAv
dGVzdHMvMmQudGV4dC5kcmF3LmFsaWduLmxlZnQtc3RkZXJyLnR4dFVUCQADKW+MTylvjE91eAsA
AQToAwAABOgDAACNkV9PwjAUxZ/hU/AIb2P/6PpmRoiYGA018mCIud1ucVrape0I+/ZWNxaMmvB2
bnN+J/eejjhYpLRE3uwpZQ6KjycDBV7q6WzyEpzSlEeAu/GoI6agtGoPurETBQe0tTfOemrZHGpW
7RXIW1ClRNMnJBFfZD4hOC3EnIsoScsiDL7mBHmMXm2R59r4+Jwx5lqJDCUWThtKoa5l+2h0jca1
XWAZETGH3SUG6gh2g6pEU6l9rpXDkwuXlFp0Kz91IHCBglwDPpO1V8afQqnwjzfOGYbOnW+aR2EY
lImPOhJKq8F7xx74u9/cN4LuvPW2cm85SMl9Rx1OMk4KuI5eabNB28j+BsLFAuM/0A0WWB3R/IAH
Bgj+YpgvGNd5L/qKgiyKg/+sr/eVtYMxS9PvXw2LOMswDNIoDcefUEsDBBQAAgAIAJaZkEBxQypp
agEAAPsCAABaABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC50ZXh0LmRyYXcuYmFzZWxpbmUuYWxwaGFiZXRpYy1jcmFzaC1sb2cudHh0VVQJAAMrb4xPK2+M
T3V4CwABBOgDAAAE6AMAAJWSXUvDMBSGr92vyOV214+tzYII0jmcIEoz9UKGnLSns5olJcnG+u+N
rI4qfuDdOQeeJ3lPUhiwz0TqNam0IbPtpslRlWiWBpEMm7okaRTRERvw5ezmbsnIKW4a15699xd5
zsiJAIuMlSi2a8a4g+J1aaDAfj0ckcdgnyQiBlx9JYegtGo3emuJgg3axgOjjn6/D6/XCuQlqFKi
6UyTWKTTninYpxUty3CcpkUU9OcTFGPsTR5QZNr4YzPOuWslcpRYOG0Yg6aR7a3RDRrXHg4qY1qF
sPoOB7UDe9hVrdaZVg73LpoxZtHNfXcQgKiwov8R3NOFr4yPzFjlh+fOGY7OfWQP4ygKyklPuaOM
1Ufmit+IF5/IbxDdR5qH2j1nIKXwOz1o6FTQAv5nmWuTo93KLhsVVYrjXxQ5Fljv0HySHFmg+CPL
/YPgIuuKbpXBNB4HfyFP17W1R2CaJJ9+SUjTKgnjIImTaPAGUEsDBBQAAgAIAJWZkEDQGELcOAEA
AFkCAABPABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50
ZXh0LmRyYXcuYWxpZ24ucmlnaHQtc3RkZXJyLnR4dFVUCQADKm+MTypvjE91eAsAAQToAwAABOgD
AACNkc1uwjAQhM/wFBzhZvKH7VsVhEqlqhWuygGhap1saFrjRLaDyNvXNAFRtZW4zVrzjbyzAwkW
Oc9RNjvOhYPs88VAhtd6PBltyDFJZAi4HQ46Ygy60u2+auxIwx5t7Y2Tnpo3+1qUOw3qHnSu0PQJ
cShnzCeQ46xgRMYBY1lATnOMMkKv1ijTyvj4VAjhWoUCFWauMpxDXav22VQ1Gtd2gXlIiylsrzHQ
B7Ar1DmaUu/SSjs8umDOuUW38FMHgiywoLeAr3TplfGrcF74xzvnjEDnzjtNwyAgeeyjDpTz8uJ9
EE/yw//cN4Lu/Ot16d5TUEr6jjqcMkkzuI1eVGaFtlH9DlQWM4z+QFeYYXlA8wO+MEDxFyN8wbhM
e9FXRFgYkf+sb4+ltRcjS5Lvq55uGAFJwiQYfgFQSwMEFAACAAgAlZmQQCjrAtg5AQAAWgIAAFMA
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJh
dy5hbGlnbi5zdGFydC5sdHItc3RkZXJyLnR4dFVUCQADKm+MTypvjE91eAsAAQToAwAABOgDAACN
kVFPwjAUhZ/hV/AIb93GRtc3M0LExGiokQdDzO12i9PSLW1H2L+3urFg1IS3c5vzndx7OhJgkbEC
RbNnjDvIP54M5Hipp7PJCzkliYgAd+NRR0xBV7o9VI2daDigrb1x1lPL5lDzcq9B3YIuFJo+IY7E
IvUJ5LSQMkqRijgPydcco5ijV1sUWWV8fMY5d61CjgpzVxnGoK5V+2iqGo1ru8AiojKA3SUG+gh2
g7pAU+p9VmmHJxcuGbPoVn7qQBASJb0GfKZrr4w/hTHpH2+cMxydO98URGFIithHHSlj5eC94w/i
3W/uG0F33npburcMlBK+ow6nqaA5XEevKrNB26j+BirkAud/oBvMsTyi+QEPDFD8xXBfMK6zXvQV
kTSak/+sr/eltYMxTZLvXw1QEhKkJImScPwJUEsDBBQAAgAIAJeZkEDnSmRvOQEAAFoCAABXABwA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcu
ZmlsbC5tYXhXaWR0aC5zbWFsbC1zdGRlcnIudHh0VVQJAAMtb4xPLW+MT3V4CwABBOgDAAAE6AMA
AI2RUU/CMBSFn+FX8Ahv3cZG1zczQsTEaKiRB0PMbXeH09ItbUfYv7e6sWDUhLdzm/Od3Hs6EmCR
sRxFs2eMO5AfTwYkXurpbPJCTkkiIsDdeNQRU9CVbg9VYycaDmhrb5z11LI51Lzca1C3oHOFpk+I
I7FIfQI5LQoayQCJkCH5mmMUc/RqiyKrjI/POOeuVchRoXSVYQzqWrWPpqrRuLYLzCNaBLC7xEAf
wW5Q52hKvc8q7fDkwiVjFt3KTx0IosCCXgM+07VXxp/CWOEfb5wzHJ073xREYUjy2EcdKWPl4L3j
D+Ldb+4bQXfeelu6twyUEr6jDqepoBKuo1eV2aBtVH8DFcUC53+gG5RYHtH8gAcGKP5iuC8Y11kv
+opIGs3Jf9bX+9LawZgmyfevBphQKmKSREk4/gRQSwMEFAACAAgAl5mQQOR3SktsAQAA+wIAAFYA
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJh
dy5maWxsLnVuYWZmZWN0ZWQtY3Jhc2gtbG9nLnR4dFVUCQADLm+MTy5vjE91eAsAAQToAwAABOgD
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
QjgjSUg8/ARQSwMEFAACAAgAlJmQQD7Lzi9pAQAA+wIAAFMAHAB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5hbGlnbi5jZW50ZXItY3Jhc2gt
bG9nLnR4dFVUCQADKG+MTyhvjE91eAsAAQToAwAABOgDAACVkl1LwzAUhq/dr8jldte161cQQTqH
CqI0012IyEl7ulWzpCTZWP+9kdXRiR/s7uTA86TvmxYazIoItSSV0mS6WTc5yhL1XCOSYVOXJB6H
0YgO2Hx6/zin5BzXjW0vPs9XeU7JGQeDlJbIN0tKmYXifa6hwP48HJFnbxdFPAB8+U4OQSrZrtXG
EAlrNI0DRh39+T2sXkoQ1yBLgbozhQGP057J28VVWoYBxpPC9/r7EPkEe5sF8kxpd23GGLOtQIYC
C6s0pdA0on3QqkFt2/1FZZBUY3j5CQe5BbPvqpbLTEmLO+tPKTVoZ+60FwCvsEpOETwlN27SLjKl
lVteWqsZWvuVfRz4vleGPeU2obQ+MLfsnr+5RK5BtF9pFrVdZSAEd53uNUnKkwJOs8yUztFsRJct
4VWMkz8UORZYb1EfSQ4sJPgry9yD4E3WDV2VXhpMvP+Q17vamAOQRtHRX+Lz0otcf1EQ+YMPUEsD
BBQAAgAIAJOZkEAqBM5KOQEAAFoCAABQABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5zdGF0ZS5zYXZlcmVzdG9yZS5mb250LXN0ZGVyci50eHRVVAkAAyZv
jE8mb4xPdXgLAAEE6AMAAAToAwAAjZFRT8IwFIWf4VfwCG9lG1vXNzNCxMRoqJEHQ8xtd4fT0i1t
R9i/t7qxYNSEt3Ob853cezoSYJGxHEWzZ4w7kB9PBiRe6uls8kJOcSxCwN141BFT0JVuD1VjJxoO
aGtvnPXUsjnUvNxrULegc4WmT1iEIkl9AjklhYwjGUUoA/I1L1BE6NUWRVYZH59xzl2rkKNC6SrD
GNS1ah9NVaNxbReYh7SYw+4SA30Eu0Gdoyn1Pqu0w5MLloxZdCs/dSCIAgt6DfhM114ZfwpjhX+8
cc5wdO580zwMApIvfNSRMlYO3jv+IN795r4RdOett6V7y0Ap4TvqcJoKKuE6elWZDdpG9TdQUSQY
/YFuUGJ5RPMDHhig+IvhvmBcZ73oKyJpGJH/rK/3pbWDMY3j718NBZIiSUkcxsH4E1BLAwQUAAIA
CACXmZBAE0dkpjcBAABZAgAATAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGls
aXAvdGVzdHMvMmQudGV4dC5kcmF3LmZpbGwucnRsLXN0ZGVyci50eHRVVAkAAy5vjE8ub4xPdXgL
AAEE6AMAAAToAwAAjZFRT8IwFIWf4VfwCG9lG6XrmxkhYmI01MiDIea2u8Np6Za2I+zfW90gGDXh
7dzmfCf3ng4kOOQ8R9nsOBce1MeTBYWXejwZvZAjpTIG3A4HHTEGU5l2XzVuZGCPrg7GSU8tmn0t
yp0BfQsm12j7hFks52lIIMd5MUdIKEMVka95hjLBoDYos8qG+EwI4VuNAjUqX1nOoa51+2irGq1v
u8A8ZsUUtpcYmAO4NZocbWl2WWU8Hn204NyhX4apA0EWWLBrwGe2CsqGUzgvwuON91ag96ebpnEU
kXwWog6M8/LsvRMP8j1sHhpBf9p6U/q3DLSWoaMOZ6lkCq6jl5Vdo2t0fwOTocPkD3SNCssD2h/w
mQGGvxgRCsZV1ou+IpLGCfnP+npfOnc2ppR+/2pKFZWS0JhGw09QSwMEFAACAAgAlpmQQDP4iBU6
AQAAWgIAAFcAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnRleHQuZHJhdy5iYXNlbGluZS5hbHBoYWJldGljLXN0ZGVyci50eHRVVAkAAytvjE8rb4xPdXgL
AAEE6AMAAAToAwAAjZFRT8IwFIWf4VfwCG/bOraub2aEiInRUCMPhpjb7RanpVvajrB/b3WDYNSE
t3Ob853cezoSYJGxEkW7Y4w7KD6eDBR4qaezyUtwTBJBALfjUU9MQde629etnWjYo228cTZQi3bf
8GqnQd2CLhWaIWFORJr5hOCYSlqWYZymRRR8zXMUMXq1QZHXxsfnnHPXKeSosHC1YQyaRnWPpm7Q
uK4PLAmVIWwvMdAHsGvUJZpK7/JaOzy6aMGYRbf0Uw+CkCjpNeAzXXll/CmMSf9445zh6NzpppBE
UVDOfdSBMladvXf8Qbz7zX0j6E5bbyr3loNSwnfU4zQTtIDr6GVt1mhbNdxAhUwx/gNdY4HVAc0P
+MwAxV8M9wXjKh/EUFGQkTj4z/p6X1l7NmZJ8v2rIU1lEpIgIUk0/gRQSwMEFAACAAgAlJmQQMmh
ZfZrAQAA+gIAAFgAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnRleHQtY3VzdG9tLWZvbnQtbG9hZC1jcmFzaC1jcmFzaC1sb2cudHh0VVQJAAMnb4xPJ2+M
T3V4CwABBOgDAAAE6AMAAJWSTU/jMBCGz/ArfGxvaT6cxFqthFLQshICxQUOK4TGzqQEXDuy3ar5
9xg1VAGxu+I2M9Lz2O/Y0oJ7IsqsSWssWW43fY26QbuyiGTWdw3JFymds1O+Wl7frhj5gZveDz/f
+vO6ZuREgEPGGhTbNWPcg3xZWZA4rWdz8ifaUyoSwIfP5Ay00cPGbB3RsEHXB2A+0m/34d1ag/oF
ulFoR1OWiLycmKJ93jaZLGmayTiazjMUKU4m9ygqY8OxFefcDwo5KpTeWMag79VwY02P1g+Hg5qk
aBfw8BUOegfusKtOryujPe59vGTMob8I3UEAosW2+I7grrgMlQ2RGWvD8Mx7y9H79+yLJI6jJpso
dwVj3ZH5za/Fc0gUNoj+Pc19558qUEqEnR40RSkKCd+zXBhbo9uqMVsh2hzTfyhqlNjt0H6QHFko
8K8sDw+Cl9VYjKuMyiSN/oc8XnXOHYGS0g+/hOYSaBPRhManr1BLAwQUAAIACACWmZBA6QRSdDkB
AABaAgAAVwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQu
dGV4dC5kcmF3LmZpbGwubWF4V2lkdGguYm91bmQtc3RkZXJyLnR4dFVUCQADLG+MTyxvjE91eAsA
AQToAwAABOgDAACNkV9PwjAUxZ/hU/AIb6X7Q9c3M0LExGiokQdDzO12h9PSLW1H2Le3urFg1IS3
c5vzO7n3dCTBIuc5ymbPuXCQfTwZyPBST2eTF3KKYxkA7sajjpiCrnR7qBo70XBAW3vjrKeWzaEW
5V6DugWdKzR9QhTIReITyGlRFAGFiMqMkq85QhmiV1uUaWV8fCqEcK1CgQozVxnOoa5V+2iqGo1r
u8A8YMUcdpcY6CPYDeocTan3aaUdnhxdcm7RrfzUgSALLNg14DNbe2X8KZwX/vHGOSPQufNN84BS
kkc+6sg4LwfvnXiQ735z3wi689bb0r2loJT0HXU4SyTL4Dp6VZkN2kb1NzBZLDD8A91ghuURzQ94
YIDhL0b4gnGd9qKviCRBSP6zvt6X1g7GJI6/f5VmCQkjJHEQ0/EnUEsDBAoAAAAAAI+ZkEAAAAAA
AAAAAAAAAAAmABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9VVAkAAx5v
jE87b4xPdXgLAAEE6AMAAAToAwAAUEsDBAoAAgAAAI+ZkEBrE+NbAgAAAAIAAAA+ABwAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWRpc2FibGVkLXN0ZGVyci50eHRV
VAkAAx5vjE8eb4xPdXgLAAEE6AMAAAToAwAACgpQSwMECgAAAAAAjpmQQAAAAAAAAAAAAAAAAB0A
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL1VUCQADHG+MTztvjE91eAsAAQToAwAABOgD
AABQSwMECgAAAAAAj5mQQAAAAAAAAAAAAAAAACMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9o
dHRwL3Rlc3RzL1VUCQADHm+MTztvjE91eAsAAQToAwAABOgDAABQSwMECgAAAAAAkJmQQAAAAAAA
AAAAAAAAACkAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL1VUCQAD
H2+MTztvjE91eAsAAQToAwAABOgDAABQSwMEFAACAAgAj5mQQAEqDsHTAAAA4AEAAFsAHAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNoZWQt
c3VicmVzb3VyY2UtbG9hZHMtZXhwZWN0ZWQudHh0VVQJAAMeb4xPHm+MT3V4CwABBOgDAAAE6AMA
AJWQwU4DMQxE7/sVo96XD+CG+gNIReLsZt1N1K2NYm/7+zhBVF04IG6RMzN+47dcDM7mSJnTOd6Z
HIvSVGQGwdZjZdO1JsateMZuT6Ec9ypedXmG6GiulXeIoNT+JpBMqLxaPIvgSOkMoWuZyYsKbpkl
1jA+aObmEvWmu496ytMwvHObyRfehqtJjS68wYukyif2jtCXfBOISkDSwj3AwpUyqMvDndmgNUT1
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
M2eDd2YI1u1zcJ7aIIXyeKYArQJPNctS20YZWLzVJQbtLMwqstKGYIolRZZ1IeIetpoqSav1neKe
Xcnb0BWhjDe0IU8qeSooNBKaJmsF1lkRiYaaAiysvAJs4MKuiMF5AfkbNE+EioIv766uYP/hjptu
4MZ9Yy8xXNzd8FiGMza4IA8i/1W6l74G1r8JBmk676VpC+ArWUX+m6bZM5CX0E+NE5OXF5PPn+6e
hT6AnVrA8vTy/Y8VdrA3uMf2B8fz7uC4wa7RE5oHWO4EeWyX7vd784P+Gg4QMeBr+wibaSWZEdwQ
2h/CLsPUMevM0L1VUIjzCNup3IrMP+fwZO4xoygbcdL/z/srBGud2zOVCOXEXNRGityi0WoV7uAk
FJIFoFuygeN7oWPnhc0r76yr2SwSkGhz5Wqj7K58eR65Al2AswSukHS7xwIifBq/Smo/Z/NBt7s2
+qiXitHx6glcEUEVwpSHnU5Wl5zMKLvWIXG+7Ejv2U/ZTPJSv9XqpH/Y7x0m0H7p4NN5ugE9v8lI
KVKX2S/KhXR5+vH8bLJiiaa9wzXxSMJ40E3vXW2NOvGf9AdQSwMEFAACAAgAj5mQQP7BpR1AAQAA
WgIAAFkAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnkt
b25seS1jYWNoZWQtc3VicmVzb3VyY2UtbG9hZHMtYWN0dWFsLnR4dFVUCQADHm+MTx5vjE91eAsA
AQToAwAABOgDAACN0V1LwzAUBuD7/YrDvJjC6LKPfjAQYTpQUQY6FK8kTU7XuJiMJF1bh//dzFmH
wmBXIYfnPTlJJK3RAHVwSrrkDKz4QEgIqSJCWgAPqDiaJ4HlASKPiE+kZkvYXM/v7z4P0l+seQ2b
yezqZWeTbvJj42RUhcno2zZ6jpWDzYnzy//WcRxV/bjhAFsDplB7Vgru8q0bQ/vGdSystLUilQiZ
9ncCWzCG1maFBINrKgWnTmgFTgOjhUXANSpnt/tMGARbK5YbrXRhZR3As6/kupBcdRwwQ20OIgOt
EHQGLtf7BtbplW+TY/vQtP0wbOYdRsTPKzXlATwiQu7cyo57vbRY2KDEdClcoM2i588uX30xYAtx
Ifh5PIijQQDtY9+PVOQPnb6nyDnyWfqGzIdmk9vp5XyX8jN1B01w6P+0H5LWF1BLAwQUAAIACACP
mZBAT7PT9k8CAAAfBQAAVwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2Fj
aGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1kaWZmLnR4dFVUCQADHm+M
Tx9vjE91eAsAAQToAwAABOgDAACtlNuOEkEQhu95igperAZ6ZmCXQzYxIriJazQYIRqvTM90wbQ0
3aS7h4PEd7d6RlhYQ9wYrxgqf/311WGGMQaxX65ixXem8Myj88yiK5R3ce79Kg4RF2c8yzHOpfPG
7pjRasfKkGCuSElvCpshU4YLx3C7wsyjiPzWQ63RaPz3CjzzBVeV/2AArNXsQ6PVbCUwGNTYlEwg
mAKlZwt6zrmHkCn1HDic+MFG+hzqo1CIjYz21qhb0IYFCqwDGVUQwLUAi4WjR6kh5dkCNF/LOffS
aNjkqKkMworPMWRp44PuGCpdohqrsS8YoroCPCMLYseXeAZIXhZn6EuIssyBQRtNmFxhaeAoK8uB
l3LKztGBsSSyS65OUEuGj68nE2DHPs8nws96LqvNyIk/bvrvNifgYcycAgH1HxL/aIO6aNBBIXF5
eJ40kxfg5A+EfpJsu0lSawB8Qi3Qfpa4uaR5ksFQGWp7/3b64f3Py9qj2ogd7IfjN18rcb/Z/y3u
9W+2nf5NJT7Ip0gnvH/m6eexea/X3bZ6Rz1AEIEt9INuIwVNh4S3UL/3Vw5WxjmZ0kVUC6OLyNC5
WaFoomuupKiu1RvaMC0WcI3au/B/JsMadjrLrdGmcGoXAV2qy02hhL6iV8lyl4OcgdEIZkbHah4M
aIur8Jph/SJuq9M5AF93EwIOlxDBBBHCR8DdxnFazF20wXQhfWTsPKbim28UjLK5fCXFy167121H
UH/yCJNtcq69W6YoBIpx+p2+ULAfD9/djaZVGlE124fMa9psq5PUfgFQSwMEFAACAAgAj5mQQLnH
jybbHwAAqCsAAGcAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL2hp
c3Rvcnktb25seS1jYWNoZWQtc3VicmVzb3VyY2UtbG9hZHMtbWF4LWFnZS1odHRwcy1hY3R1YWwu
cG5nVVQJAAMeb4xPHm+MT3V4CwABBOgDAAAE6AMAAO16aVSTV7t2rLW2otBWxQoibQVRELAyCQix
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
zYnzy//WcRxV/bjhAFsDplB7Vgru8q0bQ/vGdSystLUilQiZ9ncCWzCG1maFBINrKgWnTmgFTgOj
hUXANSpnt/tMGARbK5YbrXRhZR3As6/kupBcdRwwQ20OIgOtEHQGLtf7BtbplW+TY/vQtP0wbOYd
RsTPKzXlATwiQu7cyo57vbRY2KDEdClcoM2i588uX30xYAtxIfh5PIijQQDtY9+PVOQPnb6nyDny
WfqGzIdmk9vp5XyX8jN1B01w6P+0H5LWF1BLAwQUAAIACACPmZBARBd4RdcAAADeAQAAaQAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hl
ZC1zdWJyZXNvdXJjZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLWV4cGVjdGVkLnR4dFVUCQADHm+MTx5v
jE91eAsAAQToAwAABOgDAACVkMFqw0AMRO/+iiF3h5wLPZT8QCGFnpW14l1ia8NKbvr51W5JidtD
6E1IM6MnvcWkMFZDiBzOXkcyTJmGJCMIuhwLa15KYFyTRWz25Mp+n8VKnp4w02dPIz/vNvCkUIcD
SAYUXtTLJDhSOEPoI41kKQuukcX3MC5urC7JVnU/rZay7bp3rj355luBVanSzCs+Typ8YmsIbcmN
QLL0ajRxC1B3hQhqcndHVuTiojLTdAfqBK8vhwP625Hrb9Dq3Lbq5DH0+95HIXfM9cHkjUr5b9sf
/q77AlBLAwQUAAIACACPmZBAKM3izEoCAADoBAAAZwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2h0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1t
YXgtYWdlLWh0dHBzLXdkaWZmLmh0bWxVVAkAAx5vjE8eb4xPdXgLAAEE6AMAAAToAwAAlVRdb9Mw
FH3vr7jqHgbSmqbb+qHSFtExaSDQEKtAPKGb+CYxde3KdtaWav+d63TZ1qKJ8RTHPufe43NPMioI
xWTk/EbRJBKkYAsJpvPcmlKLIRxliG/gDiIU4vAIs3A0au/Io/au1NLy2i1RQ6rQuTHXnMwK6cCT
85AWlM55XaAHZVBInQOCKxNLzpQ2JVhJX0DzAhnZujDaW6OGsMB1C3Max03gSmk4FIBagKXS8VLq
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
ekD+p07OQWACTVCGxg560pVsLZSqvmfky01mwHfDoKp8QCgMvoPmUQCmI9nixk6r6pnJP/8GhHpo
EsjgADB6WpCOfDq3fNN3+z8C4xuEjI0h5TFLwj6l6W6gJntO5MzH54Aa7aItoYXY6v/nXLL7lhG+
N8wWUsRayDf002S8yTYHfAAfWP+uDnbu1/xo9aH2UcLH39ZPTEy403zIBeO7Ug6xAftBr7oaokNo
SXp3pIS6O44WRSDyUnXd2TfmGm7VTTxbq7Iv28X6GSk8dWMl+xXfpyQtwJUtw+qWHLOxeQnAcwKN
NgNmf4Ff34pxO/BwQa5fODf+L71ea6riIRvwYtKS4iAEdZsUWpiam1swPtJ8Z4kHUAlYt+zzuOMm
8o91vx5NrJgwO1Q/YxHZtW5rtHSxE03zIQ79qQPZZ7PnQCZe17A0lTRKt73c5nuZZ5Zk2Ni15kIh
clLeHWFjY6Oo9jxcAWBiRDNJu7tJH+o5ejTDvw18Gbk3UWMi+adnAvWGbb5TiApObtSzFhkmtBvz
Q0+GsHa+TUF10R9/I1vidwLbzvFbleIfzSWfSVd5moZs7S6G6ww0LRE1V5FLmG8+Q1yTlMs+V0Kc
tv36n2O/f4b9M+yfYf8M+2fYP8P+7w+Tahal9a45cPhVFAJeqKOOR0p+OX3lvwBQSwMECgAAAAAA
j5mQQAAAAAAAAAAAAAAAACwAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL1VUCQADHW+MTztvjE91eAsAAQToAwAABOgDAABQSwMEFAACAAgAj5mQQLkSO6AbAgAA
5wQAAFYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdp
bi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtYWN0dWFsLnR4dFVUCQADHW+MTx1vjE91eAsAAQTo
AwAABOgDAACVlEuP2jAUhff8iiu6oJXoKAkQHruBQe1iKNVAK1VVFya+IS6OnXEcAUX9770mPDJI
GU1XTpzP99xzbGcy/7KYP05hNl0s7j9NRyCFQvDDEXxTESvWiYXlPsOpMdqMYL76jZGFn7ocy9df
kLAclIYUbaI5tHiRZvdZJkXErNBqwqIEH1DimlmcMClXLNrkrYZkezTALLz32t4HyMUfhIHn7ULP
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
d25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy1hY3R1YWwudHh0VVQJAAMcb4xPHG+MT3V4CwABBOgD
AAAE6AMAAJVUTW/TQBC991eMwqEgheKP2HFy60cEh9KgJiAhxGFtj+sla6/ZXSsJFfx2Zu20NgVH
5bTa1ZuZ997MzuXyZrW8XsD7xWp1/nYxB8FLBDecw8cyYfVdbmC9r3ChlFRzWMbfMDHwRbZne/0K
OdNQSijQ5DKF07QuqvOqEjxhhsvykiU5XqHAO2bwkgkRs2SjT08E26MCZuClM3ZegeY/ECLH2YWO
cwJwi2WK6hPH7QDkOeEXQiYbuH+3fn/9cxD6CJbpHu4vllefW2w0jg7YaTTZBdOwwT5J/eFpXov1
nAP0AbzGnYH7F4aOp/gwcnbu7BEPYEGg6rLDbXlqcgucw2idc00QbYBMJRvB5ISrUL2Wit9xiuqM
h8Q6D99raRhspSJ0IpWilok9JaWcRS0MrwRCwUqeUVb9ponRvYxno6O6/bAnPPoP4dPpbDd9jnB/
5v4hXKOxsh+EZVI1t4N+I8FzNvEYWJlSJoNFZeESMi4EjIbqUZFexUlEFbmBump98iDlWYYKS/O3
wRpYLGsDbrCJAenlbLjM1J91ZTy/0YWjYRO8jlNg0RlX5ECmWIH0ToLaFus6SVDrrBbUWSu8EUvs
e8xkdkR94PdKuY41vOdpY/QRVZNg0gv3Iq/VRZ1KpCXT0VXWn655Y+JfawR2xIJJx8u1idPDJqHQ
dpWMh4lRRC9+EoQ2nrZTw8AQAbGqWII3iCmmZ9Bwtg9QNi+gc1mLFGIELCUtw2bYYkm5BksGYdQr
6bnWSt460E7LGLSELfnRpMZdRf/xiPywkz+zC+CXT9MN8Z6+Qkv40Y/t0QGn6F4uv8nFaiMLmmTr
5B54mVB7qBvd37Kj1HbIdO2kD9BO3bAHUb9WOLPTJNshJZv/vU9uFw8LwvW93kpxTn4DUEsDBBQA
AgAIAI+ZkEDeihWkagEAAE4CAABYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLWV4cGVjdGVkLnR4dFVU
CQADHW+MTx1vjE91eAsAAQToAwAABOgDAABtkd1O4zAQRu/7FHO3N6FKV0Kg3oVsd6koUNTyAFN7
klh17GCPxbIInn3HDeVHQpEs2xmfM599v4Rfi9XiT7VdQLVer5Z1tV3e3kBd1ZcLGVeri6q+mgP9
VUSadDUM1ihk412NqqPbYFrj7pJn/O3DhlQKhp/G3flzxzwUMPt5Ni3lmxVwXpblC7BU282Aim4O
0PnrTPbLybYzEZgig5DVXuYdMgwUTvwBCPhhB5X18JDNoL37wRDoIZlAgDJrAsVORKB8P1higpiU
ohibZO3TdPLJFYmz6chqfDis3pSCmO13BaDTgMzUD7naQ2OsBcOQBng03EHvxSz9ulwOvgGNjFPY
Ckn7R2c9aoidT1Z/31IxYj762JFxLRinAmEknZ35p6YGk+VsOL2+eBOQpRYzcBTsSM5Jjl6OHeMc
H3CkF+/gnEHQCNH8I7AYWql1PrXdmJm/BMgNk5brW1ebDZyMj6DBNAF7mkz+A1BLAwQUAAIACACP
mZBAFMogfCIwAABJQAAAVgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBw
Y2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1hY3R1YWwucG5nVVQJAAMdb4xP
HW+MT3V4CwABBOgDAAAE6AMAAO2aZ1hTaffuUUbRQUVEQaSpqChVpYuEsYF0BQHpvZeIgVBCiFgA
pVmQXmwE6S0k9CBVCU06gYQmREroJEAgOQ8z89b/e97rXOd8OR8mHzYRvLKfvfZa9/278+znd/Q0
Dv564lc2NraDmrdvGrCxsZ9kY9t9f99u8JtjR4+JgR8XfG7d97F3cbR3h/l6sl2Uvahkq+xkf1lB
1s5WQd7JwcFewV7B7pL8xcvKCkpKTnc9z3WzsZ1k07x57Z5/CpWE8DDxTWMtGdZ2cUrhPniW74ll
lJ4Pz0uwVfepU2+2lDvP6RE+WGjq90DoJi8P6VaU927+visWRwc+uP928WGE1JfDv527te/xLgk7
QucFzO3EOF4P1/fxHQsxsojg5oWNoHblbRqJczFoy/ZQJiWlgwFTGeHbox1p0AIu4FGKtJAluIBa
auijPWBNkf9Xx9bjhXaty8vL6pHHx6odiRhXT1O382ji9Za2NiFIkD8Hb2fIVmaBqli/amieB86+
/4dUxfEP0ojVn9/HG9dnBzY8XVz8J9+aGPz+IiPppDhycKZUjF47SiHVaiSfpJF8Z2+cYzVzc1bR
a7gw5q3B2tqadrx0qaSEqiqJ0hTd20Lce+B4Z0u+79SXciNMMO+V5+Y+lz6h0eomtLyBwT7/tV4T
GAxWYFW9+U0sfRixUC1Vvc1rKYxro0WOqiXrFUD75z9KNZzPwHxxnxsoCuMS0dPTw0pKnJuCxltW
B8pLSMyuL014e3ujBdiV9d0jzL2Gy74nET/UkLIKb+mH252f/yUvpaFdNjtv7rbELdVDeSN7Up1/
JfaMfnnSkaaK6Lf0u+WHSPCefyrKfx8ulqt8gDXoE0gqSj6B450Q4eY9enRguiXPuSNtz549pEo/
rqB8g2wstg/BrFyo4TSMY9Be4gbqenjXqLZXjtU84l2bje5K0py795HY0jtwIo8/zDiOlIV+p/s2
Lg4rZ1k+cipkYlhZows/d95NodrEMcD8udLEzkWqPDCc6OOZGrIgEyQJ4uLiSVcDHhoYdHGIBL2L
LWbRXm/39uaYNDc2tqWpDiEmPt/9OAd3bkvKiM3OyUlWhFoFBW2BInBycpbiNIbH+3p6MA7fXoOr
Q6PRNSwmA03UOZjohcOvEqyZXao3x1QypGwmmqJuhB6Y7sszZzG3WevNapur7qAgHzViIN7jDU/3
8xw5ckQBSp4L+jYUUVVV9UpUI9+0ZGq+ciF4NIRjdSWzB+s5ZGBoyKBRK71IVxg6DVHz0yrIzdUn
XJDjAgIqCNpcaOhe+g+iX6oqAj7Tk6Wpqenen7+GnaRmZWlAVEs5Bi3fwou3NHqRlR0n1/3EHCrR
EvUFTftU/OYFFb0s7OzG462DlVHMoDUU3h4uPGsVRs6/lSvt+YUbCx2BPPzxVVg10GOwuJE1xpxw
Mhsgl7qdCHuJjLkfZ5s2tyjy8iKXD/7WDd5RZJhLfFjH7UDK6cdw7k0dO2/vpRtcqrGxsRjb+tDH
jx9HRkaCDxrgOVGmWko6sBLqF3Gcp/t0P00bcfnHV/ehteDL6oIqHDThIsnZDUq6iZaURVknc1Jf
bftTKt9w4geu+4ODg0ZGRuByNXV1jbQyMjKU48+KifHx8S0MFN0QGB0Wsw7emORS2yqsqYHIyCws
NYsokrx+fQytXusbguItTUzi37yRdfh62NATHaqDk8hoT1fD23x5/FbCJC4+HocxJO7ee/DEPdAL
nZ0Pfna+b2i4mR5M2hlDxzxz3PxMbw6lPRWxPhbmNz/sOnMLH7wtSSCWusfDgzw0YoSRq981JMTF
a9bHI0A3CCs9qEV8RGw2xYjgA1amiETiJCHePO6YiMhCUC/ka3t7fm5ua1ubrqbmkgLlj9vkq0iR
NWV+nKmxVNlnW8FTQzLOV8eBOcCDT2xsbIyXsU5T8v5Aihgft8tUUdtafILq7+kwicfa4JAMmury
V1Gwupzs7GJKtfwE2hLcpWyhsEWk35TijzekLY4zP9hTX1+3KkCWBMSHuZ7R5aGiLZ9C3iS8eWNo
ZLQ2nZlOmyepqKgwWt5KIOjzpWJyDxB7D2knPA//p3vECGpJcHsgIicvP0mhxPDLThWgtnMMssvL
A0ZrQ8T0Uhbhh/2Kf7LHITsHBgYytPky7llapsIe9ny+O9uXV4LfGGPJMWQOEEG36+CSd/cBWQDr
3e0uK+9QgWxLkucR07sKn0tgBK3ruXLe0ert7y+wxkNERevVlIgjpfDgADB4oJMSA+9aW0NPCGoY
Gxt7exchU8BNhc/dXwBDoX379uecHEMtS3wwsjXh0nxBxYKbh4ecvNB3Q8OYoEC3dD+TjFRJqHmL
fPb8EDvHl57URSr2oXzFIF4Ku73arU/cMzEiP2lqSX5MKi4ubk9RthcxMTHBPRzG6Pr3Z8MF6+iW
lZLItLm8ZrmTp0R+WvAsB6YrmjdU1iFCLutjkuHcbtCq4O0K+JHkpKQtXF6lOMv2kuXoFAtLH7Eg
vjmlAXGonKGUi4/bTHdl4FnbC28NOA4J+oOOqq6uF8ov3aU9HWepqfmtpAOi4vOzc2sriJXpu0Am
IULo8G6OgP58y+30BUF3gcuktNTU7aERpkJhdq06qRmUPuFqwPLyJKEjRfnjdutFVepUW7LeEtHq
5tWGh0UdDU1NfX19xGZ5efn2G1WKRA6ZqsW6ZGiNqbl5pe9sX/D25q2g3h5DDRt9kuqvVxcEXcQk
CvN4Dz7GqowNeU66+cx2Z+rDYCX0ps+VaKkBKQiECT7+u+pVh9rltP7oGxGbXkStEFFBpZO2wj9l
992tGtxNuNj2DJQD63OkHjpUa7s/Jfyl/QdqPM3h6ysuNT5IBHW4HFYfxgX18kqTd49jxNzZZZ78
i+QQc5vBwSU8x8JERh6grE/EqCmQvAKtMz99klNQCM3SHXrZQZUwyQ8CNlYtFTodS/MHU0rz2ycu
IVH/iySlO//zZ5e6p/sh1RdVG169erU06Jw+2Dw5OQmW30/+ubX849ubxMRE4F+i6pEDlX7QBhN2
tSM6qr20r5SghhB48W6N3mq23RzXhv5si7XpbkpXhjbNu8HPO2XR1jRu2/BenY+ueeEQWD5+c0aC
sQ5EQSrQv2eXtsohqZlKV4k90Q9GHz0NeNdx8uaSE6dkvRyfF/HWQJfmgRJPZAX/8sEF3kvnyM/7
aIQeU8MIMg7XYfHUwgPPXCtQ9CTGpqV5WbOX7QlSUFRURG2v9cc5CqnAc7OyvkFMDQzsTI1NTRMN
ZsCC4hwtyx6MbW2sxDmmqqGsLjia9gGH+JWTEzjELNIJ50U6JHTFAZUcOFjsmKzgmZ2VBd4QWhNl
WcZvKHC6lBdsqnUQB7U2NOye7s6kplt8yGvreTlNE0Ft3b2w1q6yULXUJMBCfarzbbn3G6AF+NzA
XWNjrFtvtrRlhQU+mJRpDTBktUsbdKSEhARirqg5pf8pjo9P2qJQMqemhux8ZGVlJewAP7COV4CH
lGFTgmrBwzt6qB4taGpmNhP8eMWIARUbqK70X/rQraLoqa+r2pWGS5aQkvI1mUzNrb3rO5Iv9PQi
af+Il4TJx6G6Z5x8Umb37t69a2lZ7fL9NOUZOVM/XRVBu2dkNKi2rwjFYqLzs9ILgGd5xUtbJil4
Esfqw9zd3HhlrDxMjc3MzHr+kya2slPdazamkhctI/zDEuL+pov5RAHqd5j+B6SFsbGTqbGm5vNf
iWlor701Y6SqBSPqn3LorNXAT/dwcw/3v6AM/WpZCQciLWWObR2SP3nSxlSNz7sLEQJ7WB968Nu3
bzkmBTQIbH64vBpBJ+NReIMZYBz6qmv3PDzmPmm+SWFN1CMqGbw4UCx+WaeGxkbdJLnpjzGQy71O
bl9ZtLXZfvO4tRzrbXEIBBKUqbPHwdlZ7MwZncTLGRUVgYAfteMkl6bjHU3d+3I1b98+ftHmEQPl
vUyrC2bWhrBvU7zXZnqrA9e0tLWHsJ7JiCOpAqQMJ0dHZbyOllZx8zUVwrzRWCetp0eUGuAJI3/7
VbA3/FfdJ6Mjf85Bb0/PVfowDAzOylQbjKVbbJRjfPbcOTKKtX3r1i0wxx1tbfK+uttBvq6c0Q8A
gACVXlsYQS2Qq+kkvxFKOkp4rcyVD+uX59Z8KmhElFdz9M/yV+fIFbLNUhZeXiTI2J0p/bP4unka
ggwPfUNF9pFF7htCS1a90g898RixG8HohKm6eZNRO5hT9vv3p06dGpNBbUR0f2xt1aH2jB7y0Wbe
LBuy4mB+qoHit7EfPthtrk7HOQLZO3b0qIOTE5aZ2ZMQ6BPB1KmDw8ViulKH6YeaRzk2u9OZGLvG
F8Br/XxO/Yxcb05TSV1efkgonlO77IKSdW6XFBfPzs29pwVuMhW4FviNx6SsrurMQBpZfE6tpoiF
yCx/wyCPDaSFnDhxgrkYprY174ef/Xm9U3NJIFZP7Ny5JsjPl1mDNUjGi2MSemlXBwcGlFw634ml
By2X9lvNgjO7p7nO3G2mrRp7/31hjGQlbztHx8mmKAERMGPR+XtSj+7iZGP77Tjq5r7/65Dy/378
TzGn8vJaEY/bv+eXz+ndfZY0a2HPCn83d3eTAitVj4GLFB0vr/nFsfpqE+xQ1ch1zty1Ye1VMmKh
1IK08FSGB9qdCituyHHDeR6Zeturbi/cSDGLwNwdpJqazw5dVn3PTr8bJp93QJIQCBQSOlxmKyKR
MTM7C6bezdQ4MLCiIwoXZv45pqBm0w2cB6C82saPNyDqKM5Qhq9bemWFiQQPMAcetB84fvG3oUG4
wNOenp4hX0x1lXYPP6r7po94Ksw93KTXa+hMq0ROlMJtc1R+6d3B00NnHDzzRDgMS4XWu2Y/03Ui
DbQEqpqihRDri2M/fjgQiu3smPBBcLqS4uJoETVhPj7niksvVzAK1WcrhlIloDtJCYI1iNhU8V8c
LXHuIPv2W+Z55NhXClr5RLzHYrEAIduj0O3YoZOYz6f84s3L+a5jT/tmtFXeTJ3niL4xtKZ4hzJ8
wtPMiOHx5mJBroLZcU96OW/x3KEgj69hmJq8Q6jKUJlv39UX+P/MUjmd/yVLwVnmOgc3MMfR2ItI
D9FTYV/vmpmd8K2YOWN5qCDjycRtHR0fVlfPTnkWD5ZXCvrSzXte5L01H/h9OYyYvy/H8h/Lyduy
4OxR187Ic4dBaX243jFof5wCKXQh8eLI1LIV0NG7d78DB37z+jVkfZQ9I3Y7c41mAnpCiI9PEUHz
WIj6qB5VPJQKeMAgOz/fi1wVsLS0NNEcIyMp2UMW9o5Ixp1aYBf14rJOxsWgH4vOAQ8eLvN+/vz5
DvUDM+xlTdo5/xzWhQ5hpeTlS6EjNYA6u+OKvCeaTt0I9QH/AC6B2poQqebhvvSWzDE1ORklqPwQ
gKffCJLOznW1k9fykEdP9VW9dMj26BOupqam9jTVyvfvr5XzxiD7B0ucM/VSk0CagVPNWMpdCp5H
Lk3QZADpBW8QrNV1Or884QD3kASknk5GdLAStRSvQaoHwMh/fSUKMn6RI4GXOr8CaSNN1lLtFS0t
LLY6b3CdPXvWc6Dw/bt3J0VFQR4UhvODeMOvGrj6nEfsnE7Cy5cvCwNWnKi1oSPnQgxHrT7MO44K
L4abpxB0ENaV73UsYUePHRvkk7GqGoDMA0uJEVYF1od5MHadoa0Cn+tUyCOdiK61VTwY6wfdhOIu
GpW6XHOjEBiEz7jnOALZJC4Z/mQd+it1j60/Z/jmHhdiPzeJq2Q3CDhZqZIs/YPp1/YFUfwVK11L
k50MEYI1j0DKPasdtzo3KCsvv7ZNH6G7Ss/Qkys/1b487NR04wXExtHZ2cTIiDpYIiYvb3QBZPEp
i7iUFAsLiyr75kNUlwr9mq1lgkjwui0SibSyIgPG86qwZAhS3xI5KqB/3FtKJZVczWjks5aUlq4J
2lhueM5D5eDl41PRZ46FiaRM7OTmzZ8fjx07Zh20dAsEaS5BpVEp+85310A1Dx48GHZISEtHZ7XA
lFEL0NY0rtS9X5p6HFtDsD3hKxMDWgpKrirHYuEby5Nxjo3NzSrWpVzFJSWAZGAwmKGBwYefBc9p
byZAS3HySt4vf+gYEFAOI0sXFBYuvg8TJlb45nTIvvV6rFM9gIOOiMZcfQh8PTtbvHLBNg19FfZD
EJHZ5HVFTCwzO3umW1+NCsYPDqeBkAkSlnu8N3BE87hSL1IFaJQ0kMDBJZHLYZn0b2M4zYQLD/L9
ZNjTSXnVrbqV74Mqps5LSelqa8OmrqiqbgPy08oCuWR1dRVQcEJSn1dU+GNkKEnuDrmav4y0O+dX
/MnSX8Cn0JOTXZ/84vWiNt4hIS3bxfoRuriUxFW+u/rNsfWs9wCrFgSpHPl+ghhqEoSY8uTinqq1
PnPgmHBLS0s9vfaXp24EJfEE4PeEPq3l55LZfOQoAvgbPt1164KRiQklRVDerafCd3YOqreu1sbM
ccY+ffpLNxV9cLragPEbnTrmvkL7vhqEA7ZPVmaCZKkj4844KSGRU1Y2AGn/9o0fMC0Wv7YGoKag
4+vXfVuYbghI7GS5R6ctD3V/RgScOXOmp7f3QkY+SH9OrcfpJiQ/eQUF9f6Ri6qlqHKntiQwG8Iq
8FafQfoISs2160y6M/H0ua89Ebm5ucCaB5p7e3vRmkt6uAs2AZlTm2uzRDSYUsl+kV+U9JWCt9YL
beur9A/hdet0QmDVCP71m+epjhD5X+Btnl8e7xFQ9LqnBbBbEng2s20JxGHgLDPdGLi70u4wy2fk
5JAhKR2jU3yf4kYV9m8Ew6yhxJPM5OuIa+8upruLD3PeMcdmMZgSnXKmITG9h64n+EV3cOQjBOta
0Vhi7e69XMIWRkbHvA2GUr4ypC6e+aXd3z/v4H0tRTRo3Q4IY67z/Q2AztvpfdUIv4U95CFdRBMi
gxYyP1Tfj1btg4zk6adD2trayAKl+hFRUXl5eaUxgHJTwipldr5KAvIaL2MdPNWaWFvLPRUCwWn0
T76MuoIPGnvGRw5aaSMSiXnmONpsv8x4DjoQI6ar6x4w+629nUmFomZhg23JilT8iekbKteIVg3N
zSNVAd339LXT0ddz4Sykm98dFevfe3RRph4VV88hmZ5fDgYVAc6mlbWxQsGDQCDr1HpHK0pAcX51
uhui7/69ODKwJOfwkFThe16pUyxKTp/nm7iaaB2BM4UaITKaeS/T3UNk7cSHerYXJe5MG3+cLiJe
27fSvsSq9fy+m2YsgH6Ub1kZqI/9rOzZ3bIYzBmksQcUzPNIoQeDviBy1b+Q1X358uUUICLMAZ9K
Vpq3dRbyHZ12sdQ1BvkrFsS3ZmZcwXIQB2G/VZzjICv9gbp6k3M60ildUkYmHYKswE2/vxFGxLN/
zs09EFQSFvDOP/6Gwsx/Cormq5pObmba5h2gIayRa0bdjiNBK7oNI2YrXXovsXwwSvv2TE7B3AQY
6iuEkxWZWYdzSBj9VBMrYHpP9/NU8Q1d9xqrveDy8dEk6Q46vxy06Bp1CAcCK+AHRa/h2wDNgZqA
E28neyFrfy3X3Y0zt7khZXad2eEXzE9ScJ2e/Yq5thtxdP31gW5DxzQlyie4uo5jcoVI8B5xkpuc
qrHKPluyskI3h1fCnlzS8zHO25qarh4ekUr8Tks36aB2nntB7Xa5F5WXb8wW4LGSswNF9rq6urRv
r18fIRS3tLTEGoBWL5acBWGL0pGOk5wFCgjPA4lBQlJybghXQE8kVfiq+Px8uS2EdyTEAZ/JQqOd
CHFS8M/95PmaSedeRH4PpBOJ+ErEIOVURzzH6p5F8Eplf/78OT/fCuPyStYTubkKfFTfyOjt9pO1
TfpCQWxLR4fIZQdgkRotBAKlNRG2te4N/QLCCrHIXsPUdDDbKKfCZ/rh9qavH+z3fDmbDK0pQoH7
jNRFIqtxZq+kw1yBaf9zsNRfpZ6Qtqr62fNOasCZrRp8sBShImijeFu7skSNuf7RYCbVjxwwEaWY
IsHDwwN7+NDNzQ2k50ydxNfx8c6B6DaVa2griwofV8C2YVwi+VlZplX+RY6mrq6uIfoRP4tZtCKN
LhLmH/HQoKU4N94qcBo4sKOjY4wqLWFl73O75KeJu+lHfM8RIUDFfQ8N48pMIlwX3BVjs9y50wKm
EiMjI8EyNC6U2nx5fO3J3jyramKma3df+PkB1MCN+bZaKu99o/U902crdYMq5qqKh8HYPDBcx5+p
rkPlP0vkNhyEmNc773ETI1Tr6vyhNXoNTopRT7IsF/R8TMDwgNy9c9+ysqbBOLZ33OpW4FtjtFka
2Nzel7K0uHt33BqMW6yaT0lM0WPgZUrKnOQJXDmMAmwKwWJua2W59+errvUYFhUVvTmn+5BZUUOH
06W4J29ZgOIzaC9LXRkugTXmurptsA5VPgBxUPJV+gjlfqmbkZ3dOGADKKvprKJiPwQfuDZjVR2Y
kZHhOYTVVbk5ODi4f/9+Q7ROVn6+MECd12e1dXgcAt9t94awcwTmHJt+mKBO4mptaXkYnAhwK3g7
sFv8IV1bRQm9a3XZtB6+C7/ZWzA+MfHWQEwv5Wtra2RUVOpF2zrgN/NXbbfWl/SvLj2lfyPvX55u
zDLMDD0o0IdHsXaCN+C8eUpyGu93RxbV3u3KuD9gP7AS9r0HHrBG1O8CkDUcTbWQ6nZIpNXAbyRW
8NqCvAtUAJCGVlaqih8gQmNj4005oTLJ+gOV8HdzBRV0p1E4Z272Lc4uOVOydejwOW4dS4Xed6ST
ITue4OSEzhKnEmWjDBL43rlaJ2PVvx5zCVi/2reqyb3eXhRcM2iOefTWS0x9+Nj93wICNiL5ZcfH
x8/pJq1+1xBRpiB5Y1hF9LOHld6HFJ25IkS7sTV/WGjd/ohK5n+Mt5usMyV6H4qLHwIspkGTvVxx
S0lVUZV7T0bqrR0ZFUF43aCFLXkuvpJ0AZINgjsN2g/kFb44+iVR1hnuc/d9rmUl7Y0+ZPqnuBmB
KXuSocLCJQ6VubPV/fSQCdGLXfNSu3TpEm3Xk7mB/xJkNfp9M8ui+n94Dsuz2fpg49n+TyLrXN++
+4DcCqqWtX5/vdheWSf9GTEhhxU9iXKGH20xlrbFZmaZfvfNPr3F4eSXTHkCbEZvbClG+NtC2gBp
NjU2NjbsvK4COgRkt5VulGMcIPI2PV3kYze4/4z5ygUgNCGNLlBcaf2o32tP8uZlHf3ONKgujAl9
dN744WxihaiRjpjpmVOkOBEYNVtebW8NqWpzJqe8vBwkle0fb/RTUDlfL9nUslWKtl9Tua2vzzVi
HCE9/xtOK5UqCogXLnczVLFQnNX2oTcpaqJ7GGipKDMjNVkRKnzVv7M49+5HdWXWb7n2gDT++HYP
fDKYz5/fwYKNjI0VFBTi4uKYpJHt1G39iHWgdmv91n4sWMnfdvpyhPbiVUfUIGYjhoYaGBK0Ml79
qET5mo6hpFFr3lq053eVO1vPAgTK5EN3eLgdH0M1srZeqNIZCnycSglzzbnFh0td1PXzSE2NcpUz
u3KzmHBy8RQz+exiolReZ4+Ft/cSoKO5XJ4vxbk76kGq7EcuA8tjLXKxDn+vYMQHBATAplqXZJxa
Ey6BikSV4SoqAsF76sX1x0OZ8h2uSH60mEsHjqQt+uLtcCB6HlOcoLds2mkglY3VrYRzHkwyrxXh
Fs8gjo08X8Ee8UZjMKv5lfOXSQAk6OFPFJZJfiMBAsfKy6hlhH09Ib7YJ3HSTlQXjMvVPIX7e0O4
lkYkmR0ergtBSQig38FbS83Nwoi5ESZ1BD43wL3Uy1qPYd2vhOcxWlnMBRbIb0OZ78fqw0SUHtTi
Ex4/fvzjx4/wN6oImuT58y5hX+KJkLutjxGeuJoD3TwYytB8BnejlpeqoZ+ZoY7YhmT49Yhsz8r8
W0WiVzjTF0uBjJWVKTHyMpkLHDVD1g9FFOXlpUyLP4GUnZWVtYBn1XR8q6ioCFiZAqEiRkSNvKGR
LWp2qXQ2T3l8QHmg2DFiOwOIlNWF0p18Fq+2vfoGF7MzhyYgwHmI+FGJpSABJit4PvQaLrJvXhyr
f2uwk4k7WpPkCV45gBUAmGhqaooELV5reFNvkSv08n9u4aU/v6Pl+d8ScDtebt7JtO9f06rygpQ8
kGrhuD+2H9P+eR+xFKr8b3uNoeGhu6F06VOMFnn3vmEkncR1dfGRK1spclVatnsUnBb54+srIOyF
fK9ZGLfmYcrm5/gQrPhCFPdQg8pRpsrXIRVFqD6SfAZ0tdrWYn2clHmc5b1ONjaRjp1nAXa+V3z6
9Cm4CmXrYhlmGzQYhLLxlKAfrzSq8OxYyZz8/HwAMT1ZhvbN0W0EQveh6DjcJ6xwkN9HYoGb31O/
6NNOpwqvLxAVqpN0ZD+r0haCG2pDg1zLNvC7qrQJ5kENnF+Yjv95d1IJ+vYnHHm0sQzKF7B/3QNO
h9rc04YEmcud+H4wNS9VrfEKF/7R298DrYd+mkE2yDT8z0Cc/aIcPJuHIwczqKADUlJSQL3XU4I2
JuN3rm9zcxPUtVkEZTH0ghYJs8n+guzs6YlNT1cDY7Tz5b9W1tTUFDC/NCXvup62rq4uDAazvPyQ
ET89PQ2YzEDr7du3GZmZ1uUPz4I8yCAXSUqoqFRmZ7uB8AtaL+nLwYr7Kie9Kv0Wgpca+SIiImSs
a656j99kPVcKXP35MQZidvcu+IM1yO0rtSHs5Mv/vs/pCdAfmp+XJyUpGfTzfRjWi+Qm3svPyzgJ
TlNcfFlRUfHs2cYaR2CutI9xMtZepsZBQVWV72uHqrU/W+OD4xxB7xICwuG/94A4tZpBoyLA7WpP
VTExMnKMzxM6TRmQm0LPfjTfi87GKG7q+yUI/ZCqzcxEz5J2igZ8Wv3A7eBgZrEjYU52Y2NDpmrx
Md11ngsLejf1iq94YV648el2zNCoOz6bxE2cnJGGFF6ncnYPGVIP7M0Pe6ly+od2vdTiwcNl309b
7aMBpnuYnZ0N2V7tBsLi7OwMSue4QK5ulx3y6keM6KGHPpqHkTnzLcqXF4BQgDidm5UVsAnCKooZ
wND/UY9ax7rIfRCuoLGOzl7dsooGc2iG80plILi4cxogx6/6PzAyMmqoJr6hjaRizp45k2C2fzC/
CymuxAFkent7AVUQe+XBaG09l9pct25Gz+M9nApew59jr8Dn7uvoRAqlmIBT+0wb/L5DesFmkCMq
KsqywmcJorBoR31UNjjytGRnP5Lp6ODoeIyPb6hZWVkZNPuaVW5sdkEBqDhSXV19FPGDsYBPl3N9
nXXP+f7wiL+Lh4dPNM+RIzMzM7EG/QXWIrJOOjdvhOAQ8S/pKoKAnmjfKz9j6E6OjqnKsCYIGKND
gqe7E5LzY7z4E7K7yMeVSKf8XuJCL+Zo54AOBPpAVk8P3nRliI6lM6fTa5ib7gvdkgSgcE729hOT
hHhgzA6bCu/jFMAVAAcgFiTBn7IE9xj/XKnzocu1HgjkdJmOXkS5lu2p2bVb0ayBc2wnjVPk5OU3
OiK+5tNZArfzUPsTpNebUVvNQEuqllskdiJJ4qJIjdSJqM9h+du/T9w4QII0JG0QpLUpCoVFdSOF
+1CJvYgCmgN9nlSPOVJsOclYejA/XA60HjRrR5K8O0A3COme1n9LqGgKQ5DDalTQnaNhJ1fPswZb
8JEDAwNEohmjDI1uCihjjPOI6emkXQ3YWJ50bk/Zn7sx1ZYMiBCSsdm/UscpU7UxlVxaWmqO86KC
emtD+6XfhyeVGrkyflreIyImJiZIqLfyD8J17L0qIBWONtnihcrUO0+Hr3HX5Uq/aWnR8qwlljh3
7CiDpeXOd45u6bxLhK2tLcR8uVihsqEtVXl9R9JujoKiHl9+xu+0t3oPxkfjlxo5MET9h4v9u2H3
OqtuUzfj9ubW1g3r8HkA6b9w4RvTkM98nWuEN0q950Y/M90uVeOB9x+ReXEkHyvp/EmSUIyiJ75+
3TUwcNw7nuagrh4KA2Yqkmz2HctgSfT1vkstsWZt9gM30tLX72cW6Hj5+voiGTQpcfETkKB1UEEg
UzTqkGLAsgPQXS1McwifUjOE3W62OzOmBHa6GO93GGRzCGNOluEA0BaUu1qXS+hKD/OgBshINm0g
P0etxO/HZGxyEb69EZOVlZ0YHwe8x72Ej3xWbln59LRbn/Fktwb9QxcZuNxwQc1mC6QmcC1bFos+
8feCtqAMYm3P1y2cxF3MITgAntVX28asaNOlWJsFrE0yYmF7jAvVCZEajwceC3DGzwaGriPCFkut
e+f3dQsq4ziMXVYCbK90XGp71xEIunVfkKsL9MCB+6firX0Qum79uHM2e6LfTj8GCsWko1j0Edb2
iIpz3b/qw4sSSXeQk589ewYqVNoBrhUwgSpQCJq+2ewIHm/g1p6iDDTR3c3tCnITs8J+HSMWL2WO
de1GJyUlgTcDI5e6AA1NAVyMc0SutCmiT7Snq0FNjV1ds2A21uXAhgF6UBYC1hFTic6gruQAitDv
sgKU/MfWPhFGEYjsJlq+s33Uzvc3gFSALiiSzMnN1bngO911llAsbVF2eKm1NqKUfRz7YKzuVgSv
0b1790xMZMwwX011iM+//s8cvhR+OdbgPyTxtXDef4vN41uldtCs9sIBVJIXfX68MUJvAeTx6dZn
JqNU8lmHgqebm4GUU8RdPUCAWjF0q/8YrdGua/ywwZ17irBvcPp+6FnHoRc/U5Oxmdxt5ZOTk4BP
RqoCVlY61ERU4HPprC3njHsw2Eq/NcrTtA/g0pza94EK31lgb8D85oJ2kBpISbtMR7oaCmgBsGUw
VxwiQQ8aXxxLalyFkY1jDYBmzdv2QIwrRTGwH2nPan8V7cNmZaJLZ/DCdXPhizIHFVmKvzV0LZsG
t3N+CX7HUKZ5m5omOprSWHe5SfkxHxL2AfnylzkvLZ0G1AtgTKyBOdZjg4JiOjM4Gp+xFj2/u9zc
rvNg6Re1i5608RwoPKWsPPj8RI5xnpaOThWLyaBCaT+mpsQzQNGdWxO4QYp27foUA9n8WmOAWP6X
PeJh1ojuTQluZ0k+z4NxYdspAMMAJOG3JmX0YppiRFgNPPouKpUAPkGjIEKAFMoqKGCLi7uymgN2
tkoQ9PlqFCuY/i0cLhTCt6N4aPRUOSUNwAKw/jRGwWNXsesXSv8e1ctZmVKZBzLuweHw69frYi8Y
ZufkAEOodvj2OpxXP0XpVWIiP+BB27qnHWqsYcCPRipz8xO5uZKUeICNs/0FfopH/Sv99g9an1B6
8E7fCA0JjE90XdRPvSLvMVDI3GYskCrpNYx5GNdjv6u69vnVkJk/xlnnxljJk6pq2ApN7oMybmRr
SnH69xcnr2QhCjae6rOGYjW/gauWNTY1RR+/VLeB+hJrkJiYSAwBE3Rp1FN1Hd0MIBAePVxy+P57
R39b8Y4czUrj7f4nWQyvMesTkO6jdwv99uoSOgJOJVwRdqrYZhy/dYnbjHVk0Ro6P/Gn81gnUFcu
TK2MkUPs7nXmUPvWMtW2XUHnAMSCt98zNo4WUGxntrXlnT83FZdY8J93m+s77rFfEYP/YlM6mHmf
svUAL8+UqjsvJye3BTRpnbQQTIGUw6lEfcjGp49abmcR0z7YPQ6XQbz68OE0o/IRELOdvcLWRFmV
ivPv6gtFH2EZR2dTROZxrX43zRzGG54DKhRQ9AqaK2q+UsF7aSebf5G65DiEg1oX2TUCTRUQEOA4
eGIVpNYaGtEdBKz5nxWPor9Es3nl6Rf1Vaqy84JkzlHhyQo/zMb27uPhQjY2tqfc/+O4sScXCFWp
udDdnwcmb1nesLIih3OLOkRM/0btTq01vtni8rHGZ4r4yWd5me2d6pL9iStNYAqpqJmcj5yvvuNR
rAg+GayvH/CLOZQcRpewz+PsldOyZPVSzekfk7t+Q1QI7Y6b1ljwm0Ldn2qKEgD2moqtinNLn08w
8z5n9ilSYUbbOV9XS0yGi41oKLapcl8r6zzTMX+hhpF/i2J+oeJ0dYXfAnkzzEeY2i3kKTH/nPfC
x6jNrr5SzbzWvrI2Y3k2TOglG2VUqt3OQ5fqUZsrQD129t7ExArMce0170CYeGtiVcTqneWCrNeW
PwQwSx+Gdfz49kaKAHALCEgwmIGn+3levHgxJ8DaGW+AzX4k3/5Hu9iNC6w80y1KnHTBfwHitLB1
HkmtJi+nBUzx72wK26UBgKLvIa/sgJSZmZmWVguAtgJqMfYiLvw0CTVxpuksaJnCYBa8WnRjmz4C
JqQU3KkOCMPD3t4+4VSXlU2SLnV9gLQk7B5RJDk7N1hiiNbR1NOzwgdX66OQFblSHs3RQuC6ACR1
MQ0Nyc9pcdxO0jp5Nw8QBkucqe/9QQyhTniRKs6ePYtcHwtjLcuw7FCuoL/QNeuRWPj9ushHk6aJ
6Ocr86bdmtTwxNBLhVfZynguPMFg5Bg5tGtAA4Ble3l5aWm9QH4xh1av0Yag/b29kz9+HOC/fPNC
b4G1GqEYtPLk1R+T8dbMxXqu2dnZleVlYdSWN+PHu2tPwNJOnDhxSOhKbEKCS7qOnp60tDS5yD7M
8DXNChpAS9dwqRyFoFZ/ftcQQWI+fBiPkKn5OVhCAZGoqt+dExZx/vKH0Lq6OiDi1lvjfBrRgvtz
RyzTcJYLt6NF1IKBvAMII8TL4CQlIBCIDg+ZU6ckSyh950nJr7+Hsz5eezXs3/MSkX+J383Q9l9D
iiJF9jX68m6Olp4X8Pta2trdXV1AlKnuXd3dVLw/GPm4tLTgyZZjhtZbIjlCcS9FDxdd1uWhkErQ
b4jc3WkHDIXZhkMiofUVFVcYlqY7X7rIUaEmA81POLjys7MfjozXdCnY1LKJfQNpoazA4neED4Vt
f777sS/PvL+z87A/9GaAuEVtS0uLuLQ0Ngb4a1O0UE51o3mC+c1X8yc8dh7aKnbUTtgUbYlw6Vd5
vX//foBkWllAa2P4Zc85/H7VrifSw+fGDSMZRTtxgpfnSyaB+9nfaZ+nsMrxl0OxWce6CyXvF+48
l6yVBVihsaEh1xynd6H04WRLhnb85urZxSKy7X7l3WTqRyGehTT51J7oBJpDwjLb6KEfdIWec8cp
ZYBIILgBMHjz1VMNz3neiOlb1QRtJMo6p8xq/zOsM4YF7qdlJfyDqs8F2XqRT5Pit8EYUVDb/Shl
/AFrPJYUvtvKf+yZ4khQCRYLn+3LA5zBOfiUtpvqkdSkgSjCHqe+PRdiCY8GUA0lV02zHAy7271H
f0s0u3SQME+qBHSeFZukhmJqy1TL2TcdyOgp857QS4dQDdVH7Uvrjzj9smWCZqX1pv3jUo4ia7V+
3yORI9kRvn59EK3GXLdn2Ow8UwgNkJCQEM0fAeI1+uUJcv6gZMc9nT83j0Ti4+NBWiAhqvVt0adT
CViPwcvO7YJ0x7HZfqzA3dp/htkiIEwvdV1kOtvRrkGSBDcvL3j0zjMr4uhbuyQKCe1L//wgod5B
r5BdEg/e6eQlhGaA2wUdqfnj8Sq894S6mRmxBsk4p582Z60+6uIedrZ138BpY7TfOAZhjDBQsSO+
GSOwP1J5sfRk8W8PBpKZDEEwt1pZQH/N4nzH6vZk9KQowwC09/f0+ACzQixUm1zY+T2heGZ2NjVM
EsBLN1oXyBF4U4RqLogFq+qPFlIBPWmcZ9YLegM0m0SGJIGI9TS3tbUdqUEi59fiMmNn+vKGwP2u
Qs1QIOnp6WoOX1+KakTHxsd3JMpS1pcmyNLunIxBm+2q25mh4A9ghvGFrJ7cwsJOpssBQ/z2k1dV
1ECNnccFaY1eTFCwi22gYGCJIB2lgSDvN4LsL84F1OAeceHCBW9hBGBaStE5snTyr5U+010Y1+5D
IhALQ8MS/yU7QjFwmtNpUzqYrMjakMul4yUe/5vdFuZrrMw8v6KqceXu+shHfgwXsfZKZ12xUlG0
Kj8aKCA7P3vc5BgkK1ZcRib9kr26hcUwADHI5k9RSg47xyEf4R2nyEwLFFdQgHd90gT4T/s2NzcH
sOyCIRqwdYywauC312dp1QIKHrf19OCQDAw9kGCo1ZaqggONAQJZTNm58S1QZCrLyA0ECCIoU4RL
j+Unw3pV+vCEUM7iGmJoLdoBiA9M28CgC6Rn9uTOHUPoXs81KxW/dGmJyVjA4c3fJCfnSDWtDixN
NKstNfDYhhIzCw0z9Q4KKOSiWMwd9gNuCWFtwbpvJgsfUboDyUuIawNRFnSpuLh4rAEIWJFRUXm5
uat6+ZNjK/e7fz0guItQgsT8TeBkD37EVu08ZqfEXiv0YYV5Xk+pZps2BAxxujvTPK63p+fenTsv
ExMH76qtfr7V+DdCkj7ExuYXrbf6RN32b2AjcOYfYAN9bteXb0noUN8NtHP9UJ+UDdBkCeNcJRAq
7e0ngHGkBS1/67dC5IFyHWVn+41ys3Y3G9vhJhFu8GOfqM2uv45/Hf86/nX86/jX8a/jX8e/jn8d
/zr+f3JkoN6u37OxSDHZxwZemrf0buZft3n8vwBQSwMEFAACAAgAj5mQQHe9HB+VAQAAvwIAAEUA
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90
YS1leHBlY3RlZC50eHRVVAkAAx1vjE8db4xPdXgLAAEE6AMAAAToAwAAbVFbjtowFP1nFWcBEIVQ
qRV/biYzRU2BKswCjH1DLELs2o7oQ+3aaxsyQmoVKUru47zu6wZPVV29sEMFtt/Xm5IdNrstSlZ+
qsK7rj+y8vMa9F0QSZLMmF4J7pUeSi462ll1UsPXUXv+rG1DYrTK/7hV1786780cy+J9lodnOceH
PM9/w4fpvjFc0DaBrv+sQj2flbtts6srfKmahr1UazywIdFhNJJ7QstVT3KOIwk+OoJTPwnfogpc
uXtTm80OnXLw5DzCtjiH7457GLILnTSCP1CIRJFgHLgl0NBqKyLOA5AjH2EmvjCR/u54XqPIz8c5
+CDBvaeLieMarep7KB8c4Kp8hwKqtfxCd0mRbrk6H0FBRIZDQPxXmtTXoddcwlgtyDm4To+9THEg
TEUdReC9IScJsfQajkw9nWJy940jQUVzF5LQbZqaQrv5yrAZhCXu1HBK7RRx8PEuuMvAsLJvPCEZ
LmW8x7VTops43CgiYghvz5oGi5uJaWuxnMpkbcgwNiPXvVsg3dGQ8CT/D7Cazf4CUEsDBBQAAgAI
AI6ZkEDp8T3diwMAAM0KAABnABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0
cy1kaWZmLnR4dFVUCQADHG+MTx1vjE91eAsAAQToAwAABOgDAADFVdGO2kYUfecrrjYPaYW92AaM
4WlZliarkmUbSKQo6sNgX6+nGI87HgvoKv323LFh7ZKYJNpWFRLg0bnn3HPGc8c0TeioTdqJ2V7k
ylSYKVNilscq60RKpR29knVYmvrMj7AjJH/giflnLhQzfZEonuQYmIHYJrFggbmhSp7GaG5YwkNd
a+IuRV9hcKl2Clrtdvs/V2S+yllc6l1dgWkbHrRtw+nB1VXLfHcLN9PZ9NV4OYXx/f3sdjJe3s7v
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
PIt9cBEw4XQZ5bvU5UTZ2IG5oRfr7NtORadl6nS8piq2Whskh2caWK6nXhy3qb4O6bZdu+ckFJg3
JmSXExrqk/4Vm7ujM6sw6Di5IjyNlGSKb+iQ0PPcXT62YVVHN9dxkjFKPIotpbQ8QPU2LpKr1w4x
p0Or2PGNrcyLQ4DG3mo9TpZL+FBY7UPh/8nFy+frVBuyh3rzl5VP30xfZserxuxalcvJOFRvja/1
f3z/A1BLAwQUAAIACACOmZBA48LxcbABAAAXAwAAawAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0
aXBsZS1tYW5pZmVzdHMtZXhwZWN0ZWQudHh0VVQJAAMcb4xPHG+MT3V4CwABBOgDAAAE6AMAAG2R
YY7TMBCF/+cUc4BsSYsQqP9CKFBR7Ra1ewDHmTRWndjYY3UrBGdnbBdSAYpUpaPJ+95787yFD5vd
5lN93EC93++2TX3cPj1CUzefN/y7272vmy9rwBeJ2GFXW6uVFKTM1Ag54JNTJzV9DYbER+MOKINT
dM3T9feByJawXL1dVPwsS3hXVdUPIN7WByskPibR9c/XPK+K46A8EHoCVpZnfh8EgUX3YJIgiJkO
MuLhWyTDxTjelsY5lKSvcFE0wBg0KasRRjGpnlX9q/SNv1NcFHdQjxSRv0V749K/G5sMrKpzW4KY
OhBEONq4bqBXWoMiCDZzV9CpvkeHE/1r2INoTSBYvjm3gDxZwJEZvXJsoHdiRBZhvZzOBynR+z5o
DhW5icWgOxHT37tM1rOmR2niJ7Ooi8A5YcmU4BEEdKjxJAh5oHUr5LmELow2rf59rJt4HMCUJuAH
E3QHLQJOJpyGVF1ruAuV6Tl6Cd7Ahb2kbXyxfCzg03OI9soXyMp/vCTLIpAZub9o7ApqkpyBLc9X
iq3kGDRn5tpzgXye1CHbLop9fTjAQzbT3az9f1j8AlBLAwQUAAIACACPmZBAMr4OCPMCAAAbCAAA
VAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1
b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1kaWZmLnR4dFVUCQADHW+MTx1vjE91eAsAAQToAwAABOgD
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
YmFja2luZy9uby1iYWNraW5nLWZvci1jbGlwLW92ZXJsYXAtd2RpZmYuaHRtbFVUCQADKm+MTypv
jE91eAsAAQToAwAABOgDAADtlLFOwzAQhvc8xUkszZLaaYEITBYGFkZewI3d2iKyIzsFVYh3x3YQ
xGmSqhIsiCXO3X/+/flyChGcspLY9lDzMmO8hjfY0Op5Z/ResRu42FJ6C++QUcaGEt16iSy7zWTZ
WTWGl09CWqjpgRuwQu9rBkq3IOgLDw5S7cC22vAsOa4cq1o8GNoIWdlHX5kALDaewUKBUIYQXIUl
9UIlZM0MV4Bd5OLhzpCc2h3EL4f8MzPhEoRGW9lKraDwTkXPp3/Qap17mdiGKqhqau2da3WJi3Cw
66DLl5Hs2u3kvCf3bQeXPIkZo2LPggeoMS4axb0u5nHROO4c8knsGH01Crae5bqcwerfGnfTgKNp
iAqZoa/2XquWqxbwcckwE8f96Ps9PXvIfuqz/NZwTnfpf27/3tx2q3+mSZokZOn//x9QSwMEFAAC
AAgAlZmQQHxkuM/sCAAAvzUAAFgAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGlu
Zy9iYWNraW5nL25vLWJhY2tpbmctZm9yLWNsaXAtb3ZlcmxhcC1wcmV0dHktZGlmZi5odG1sVVQJ
AAMqb4xPKm+MT3V4CwABBOgDAAAE6AMAAO1YW3ObSBp996+g4sp6ZiogEJItyY63dux492F2a6sy
76kGGqljoFm6ZVvZnf8+X98QIJA6G+XiSpJKQNB0n+92vtN9xfgmw9cni4wU96+cxQNhhOPE+e+J
A384fuJugmNaIU5osXAKWuBL+SqiVYIrN6Kc03zhBOWTk8A9Ti5P/jhR0+lJYprRauGc+uFcvvPu
SIZvSZrq9xGK75cVXReJa4amM/G3uZBagdGMJM5pkiTqXUoL7qYoJ9lm4eS0oKxEsQaYo2pJAHKA
c8dXj0oKxkk7KpyBRQ9YAloFHaRhGPbMz1DBXIYrkjZeMvIByzWai7oZTvnC8b2peZ4QVmYIJuEo
yrAb4yxTLx5Jwlcwge+/1BhRkpBiWX+t8OnwiLt2hDRkUqwAGK+Hr+gDrjpWTafTyyGHY6xc4Ym4
/AZrMf1xmlEEplRkueLt6IlRN+ACRIp6KQruJxzM9A+Yra105bwtTz2uwDpXxlGk22OFyi2ytzgW
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
ygt/5jYQboHcDoxEBxYRB03PZqGkZdICeaaknbgOq0d+z26viwUqEPoGUEsDBBQAAgAIAJWZkEAh
/hfAUAEAAMsEAABRABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvYmFja2lu
Zy9uby1iYWNraW5nLWZvci1wZXJzcGVjdGl2ZS13ZGlmZi5odG1sVVQJAAMqb4xPKm+MT3V4CwAB
BOgDAAAE6AMAAMWUsU7DMBCG9zzFSSzNQBqnAQUIWRhYGLtVHdzYaSKCHdkpqEK8O7ajUjtN3W4s
tu/+u/+sT7LzmmJS5LLft7SICG3hGza4fN8KvmPkEW4qjJ/gByJMyFjClZby+dCczwerTtBiWTcS
WrynAmTNdy0Bxnuo8Sc1Dg3bguy5oFFwfeXsVeCubkr5pqsDgNlG30NCFsdRHMO92UItlHXTEkEZ
IBWpeNxpkue6jThyOOtihI7Lpm84g0w7ZZaPPWiRJlrOZYcZlC2W8lnhLpLUDFYUVb5wZIVcyakl
27aHKy4FZrLi4gNWSA+InWUNK3NGk9mjdHuS/tPW4dRYi4yXjksoQVMMFg8+BCmaJnAFXJR54aIs
8Vj/D2Af5IugXdiLSdipF/adB7YNHA3PBjnPxikkAn/JF856ynpApyXjjBvb0fF8OA27XsMgDIJ8
rj+dX1BLAwQUAAIACACVmZBA9s6QrCUBAAC+BAAASAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC1kaWZmLnR4dFVUCQADKm+M
TypvjE91eAsAAQToAwAABOgDAAClkcFOhDAQhu88RY8SnKUFjD2SePDiS3RLdYlsS9oh7r69S1mV
hQIaOZRm5u/M988AAEnx2KaNOJsOAZVDsMp1DbpUmmNrXI21fkv3Qr73f23geoVXY0E2dQvq1CqJ
qtrhCUmUJMn/SwqJnWiGgmVJgN9nGUn8WZYRGb47eaibyipN2FfoEny2oj3U0r2Is7I/8Utm6Gw0
4TtK/RFHMMrvTacrR/Ii6/NZQb0iWVEUXjHuEUJax7pFY31hNkW7bU5985xP8UIqTxrP+i1hBlCB
zBXfuJnvkvMQ8A3OIGSchqBDNYtl5bRm0OKmze2t/GU7C/Nnj3zJRkh9Hc8Sx5ad321vbisfJr6K
GnrxsIo7NsjoYJBuv6is+HBPRqPSSNiKNo4+AVBLAwQUAAIACACVmZBAbDjVhlkBAADrBQAASgAc
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1m
b3ItY2xpcC13ZGlmZi5odG1sVVQJAAMqb4xPKm+MT3V4CwABBOgDAAAE6AMAAI2UwW6EIBCG7z7F
JL2sF1fUtqS1Xnropce+ACvsataAAbfNpum7FzSbikXkIsz88PPNECwbRmhVquHasSqhrINvOJD6
fJLiwukT3B0JeYYfSAilS4kcjVTup83lfrLqJas+mlZBR65MgmrEpaPAxQAN+WSjQ8tPoAYhWRKF
r9y9SdI3ba3ezeoIYHcwHApwmiZpCg/jEBuhbtqOSsYB6UjHy51jcm33KC4cVl1GoReqHVrBARsn
PPOZH5QXmZFL1RMOdUeUetHtrrJiPFh3UecrS9Yt13Ixk+e2DkQvpo2KDAtaoNq4qRM3x37czI3r
Q97EttEzJ5ify2qyy/1WtdscYe8lIZxt2HsqD6o+8PICLxE9Yn85G90KKSm4LLu03AlceHnvA3Dn
XUHTk0fWk3duoJJ8qVfBB8YHQOtL1xR33pX9n1tm7Hge/c1vs2k03ziKo6jcm5/yL1BLAwQUAAIA
CACVmZBAJP/rJOAAAACCBAAAVAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5n
L2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC1vdmVybGFwLWV4cGVjdGVkLnR4dFVUCQADKm+M
TypvjE91eAsAAQToAwAABOgDAADtUbEOwiAQ3fmKG9ulAWuU3cHFsT+ALRFiAwaoxr+3oNGWljQu
Ti4cd/fuvQdXCWmhZXduwArdtQ0o7UCwK4cjq89SncA6bXiBqglyDpXtDbsIWduDRyKA7Kg71Vig
GBcYwyaE3DdqIdvGcAWkz/o8ngzF1HRovhlWr0qCJTQu2kontQLqmeiAZyhUrle+TSiOAZHdRcGx
KAmsEedYOLyQbOkcKCG+aGBsogwS6zmFoRXy/GyCcQrYGHazO60cVw7IFBJXxvkw+9zzr3c4/avl
Laad/xf8owU/oz9zlCP0AFBLAwQUAAIACACVmZBA1+kw3x8BAAACBAAATwAcAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItcGVyc3BlY3Rp
dmUtZGlmZi50eHRVVAkAAypvjE8qb4xPdXgLAAEE6AMAAAToAwAAxZAxb4MwEIV3fsWNjegFG2hF
NqQOXTp2izI4xk1QwUa2aZN/XzBNAsRNl0plOE7vPd2dP0SEyNZNVLGjai1aYSxqYdrKmoirulGm
tKXcRVvG3/u/VPjd4pvS2AhtGsFt+SFQHPpOFEt7sBCEYfhnkxm3LauGuXkOmN3TRwhdzfMAhu+O
78uq0EICPUmd+KxZsy+5eWFHoS965wwHKAnZkhBXFgGO/K1qZWEgSePej1PiEuGNROoS4x2nk141
k6Z7VQ1r2mfJpGxg7XrqVS8WXslnb+PfO0bhwYEwdc9IYrcvWc2heJ5Nsyswvlkp9abms+I5wv/E
eBPl7zinGJIBw8qHwZd8oD4UY2iUDHcT8mOy0OzTPClphbRAPZlF8AVQSwMEFAACAAgAlZmQQD1T
avT0AAAAmQMAAFMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9iYWNraW5n
L25vLWJhY2tpbmctZm9yLXBlcnNwZWN0aXZlLWV4cGVjdGVkLnR4dFVUCQADKm+MTypvjE91eAsA
AQToAwAABOgDAADFUj1vwyAQ3fkVN8ZDo8O2KmfOkKWjtygDsWlBccAC0qr/voEoDSY47ZaF+3jv
7umdaIW0MLBvbsAKfRp6UNqBYJ8c9qw7SPUB1mnDl6T9N3OxMWwUsrNvnk0AFnt9Ur2FBnGJCK8h
FB7ohBx6wxXQc3Wu08nQnJsOYLJhdksARm2lk1pB4zc10Z5YqKpLD5c1poSrWGuYsu/aHGFLPRUn
zw62IafZ7g16uWv/YrusbOTxoc+p1zKIVavETMYxbTBHeo7rR87/dD+9QBWE69wF4ivQywejiHPE
3rAvu9bKceWA3lPSzrSOq1t+zS7RvwUpCPkBUEsDBBQAAgAIAJWZkEBfwLvF9gAAAE0EAABKABwA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvYmFja2luZy9uby1iYWNraW5nLWZv
ci1jbGlwLWFjdHVhbC50eHRVVAkAAypvjE8qb4xPdXgLAAEE6AMAAAToAwAAjZKxbsMgEIZ3nuLG
eLEAuxF7hy4Z8wLERgXFgghIqr59AlZUQ8H2Yri7//7vF/JZKgcT/xUWnDT3aQRtPEj+EHDhw1Xp
b3DeWNGi827l4cvym1SDOwU1AjhczF2PDhjGLcZwjEcTBoNU02iFBvKqXnW+GZu17TjMHKoucXAz
TnllNLDgxBY+S1DX0zCmfZ8LCrBVYAolwZVknikYz2BaElXgmwHSEDQielwgJFFmHWG0JlyJsyvS
zrepvBFheE28EW53wDRkF9Efa+RlVDL/sARvLoyW/7hPo73QHkhdWpuU+6Xu/17eSetl9Xd/3+Yz
fBvUIPQEUEsDBBQAAgAIAJWZkEDn/Xi3IAEAAGMFAABQABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvY29tcG9zaXRpbmcvYmFja2luZy9uby1iYWNraW5nLWZvci1jbGlwLW92ZXJsYXAtZGlmZi50
eHRVVAkAAypvjE8qb4xPdXgLAAEE6AMAAAToAwAA7ZK/bsMgEMZ3PwVjI3IxOG7r0VKHLn0Jgmlj
hQAC3CZv3wTyx3GxpVYdOpQBTnef7n6HPgBAud+aXLK97jx44TxY4TrpXc711mjX+la95SvGN8dX
aTiF8KotcNka0O/CSmZA7IzgXjQLv/Mowxj/XmvGfcdkbFzXCKo5LREOd11nKJ47vm5lY4VCxTl1
SD5bZtYtdy9sL+w1f6hEAq1QtSAkXLMMevWV7lTj0LIsjnVakaDAE4oiKPozLki0n57CukWjofEQ
7XY4CZrHaoiXUp2WGM4bw0ygAvqquOAuw5QyiZJS3idx+uCURHAyrmws+3BPWnmhPKIJzSx4pijn
9AHh+FxdEwWpcHzxgXXOf/898wx6/MheE6v/W+9vWO8TUEsDBBQAAgAIAJWZkEDfdpNJswgAAIEu
AABQABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvYmFja2luZy9uby1iYWNr
aW5nLWZvci1jbGlwLXByZXR0eS1kaWZmLmh0bWxVVAkAAypvjE8qb4xPdXgLAAEE6AMAAAToAwAA
3Vlbc6PIGX33r6Dsmji7NSBAkq2LR6msPU4eNqlUzb5PNdBIPQaa0C3LmiT/PV/fECCQ8NjaKu1M
7QjRt/Pdzndae8f4NsGLi1lCsqeP1uyZMMJxZP3nwoI/HL9wO8IhLRAnNJtZGc3wXA4FtIhwYQeU
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
PL+Pg/xeDjoV3XjDPhiHfTCemHRGfYCO+gGtEo8nMs47e+IZvyvx1IvSlUUpuWc4OSfyGf+wrZJ/
/HMnoJs+Trrp7aSTkdBtH5y3fXEeI6KzquvJu9d1nf58mfBHa/t9jJmexhhTvMoWcNnZqaTJm4In
ycrtJqvf05Lp2yInTDh32vX73I9891WOOhX1+n0uLL73Gqyn1YF+H1Ht+68D/MfTg/7wJFTbopU8
yba3im3l8zlJRH/4ZvMFV03cc+esPtcrf/RqZ52Mt/rcd/zxa/H+kaSjf3MyCqgz5nAnIUdnVfs3
72K3qPvx2dd/nyuYf/tDDtOE6bmKMOXHT+9MB32uSf7kh+BHBdqwe/V/Bi3vvYH3uRL509cDf1Ma
1j7+D1BLAwQUAAIACACVmZBAm6YsTvQAAABNBAAATAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC1leHBlY3RlZC50eHRVVAkA
AypvjE8qb4xPdXgLAAEE6AMAAAToAwAAjVLBrsIgELzzFXu0FwNto9w9eHlHfwBbIsQGDOAz/r1C
YywIbS/Azs7ODISTkBYG9uQGrND3oQelHQj2z+HMuqtUF7BOG75Fp9XMzdGwm5Cd/fNsBLA567vq
LVCMtxjDLmyVb3RCDr3hCsi7etfpZABL06GZKBRVQuOmrXRSK6BeiU50pkZNW/t23eKUkDGbNYxN
iVcliWZsHG5YNzRHKpgvBohD1MEi6xBFGXmE4hJxJs6qSCvfpvBGZE/nyAvhVgeMQzbBup1znkYl
44clGC8N9IY97EErx5UDUqaWOnk8h/5iKRLX0+p7/pzG3a8VqhB6AVBLAwQUAAIACACVmZBAaT9W
gt4AAACCBAAAUgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcv
bm8tYmFja2luZy1mb3ItY2xpcC1vdmVybGFwLWFjdHVhbC50eHRVVAkAAypvjE8qb4xPdXgLAAEE
6AMAAAToAwAA7VGxDsIgEN35ihtlaaBV093BxbE/gC0RYgMGqMa/V6jRlpY0Lk4uHHf37r2Xu0pI
Cy27cwNW6K5tQGkHgl05HFl9luoE1mnDM1RNkHOo1d6wi5C1PXgkAlgddacaCyUhGSGwDQH7Ri1k
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
AACkgW8pAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4xLnR4dFVUBQADLm+MT3V4
CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJiZkEBndJ0tJA0AAM6EAAAmABgAAAAAAAEAAACkgSMu
AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4zLnR4dFVUBQADL2+MT3V4CwABBOgD
AAAE6AMAAFBLAQIeAwoAAAAAAIuZkEAAAAAAAAAAAAAAAABDABgAAAAAAAAAAACkgac7AAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9weXdlYnNvY2tldC53cy5sb2ctMTZBcHIyMDEyLTE5MTIyMS1v
dXQudHh0VVQFAAMVb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAkZmQQAAAAAAAAAAAAAAA
AB8AGAAAAAAAAAAQAO1BJDwAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9VVAUAAyFv
jE91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAACRmZBAAAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA
7UF9PAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC9VVAUAAyFvjE91eAsA
AQToAwAABOgDAABQSwECHgMKAAAAAACYmZBAAAAAAAAAAAAAAAAALAAYAAAAAAAAABAA7UHdPAAA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy9VVAUAAy9vjE91eAsA
AQToAwAABOgDAABQSwECHgMUAAIACACRmZBAYxGm3T8BAACaAgAASAAYAAAAAAABAAAApIFDPQAA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5taXNzaW5nYXJn
cy1jcmFzaC1sb2cudHh0VVQFAAMhb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlpmQQCDh
O7hsAQAA+wIAAFEAGAAAAAAAAQAAAKSBBD8AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZh
cy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmZpbGwuYmFzaWMtY3Jhc2gtbG9nLnR4dFVUBQAD
K2+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJGZkECGdKAJDgEAAAkCAABFABgAAAAAAAEA
AACkgftAAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLm1p
c3NpbmdhcmdzLXN0ZGVyci50eHRVVAUAAyFvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACV
mZBAKDKNVmwBAAD7AgAAVgAYAAAAAAABAAAApIGIQgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYWxpZ24uc3RhcnQubHRyLWNyYXNoLWxv
Zy50eHRVVAUAAypvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACWmZBAgFrE2zkBAABaAgAA
TgAYAAAAAAABAAAApIGERAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC50ZXh0LmRyYXcuZmlsbC5iYXNpYy1zdGRlcnIudHh0VVQFAAMrb4xPdXgLAAEE6AMA
AAToAwAAUEsBAh4DFAACAAgAlJmQQGP7JExoAQAA+gIAAFQAGAAAAAAAAQAAAKSBRUYAAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmFsaWdu
LmVuZC5sdHItY3Jhc2gtbG9nLnR4dFVUBQADKG+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAI
AJWZkEArLKtUaQEAAPoCAABSABgAAAAAAAEAAACkgTtIAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5hbGlnbi5yaWdodC1jcmFzaC1sb2cu
dHh0VVQFAAMqb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlpmQQN6hjFRpAQAA+wIAAF0A
GAAAAAAAAQAAAKSBMEoAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVz
dHMvMmQudGV4dC5kcmF3LmZpbGwubWF4V2lkdGguZm9udGZhY2UtY3Jhc2gtbG9nLnR4dFVUBQAD
LG+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJWZkEBaPrLAOgEAAFoCAABRABgAAAAAAAEA
AACkgTBMAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRl
eHQuZHJhdy5hbGlnbi5lbmQucnRsLXN0ZGVyci50eHRVVAUAAylvjE91eAsAAQToAwAABOgDAABQ
SwECHgMUAAIACACWmZBAoZ+99GgBAAD7AgAAWgAYAAAAAAABAAAApIH1TQAAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuZmlsbC5tYXhXaWR0
aC5ib3VuZC1jcmFzaC1sb2cudHh0VVQFAAMsb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgA
mJmQQDMKaQU5AQAAWgIAAEwAGAAAAAAAAQAAAKSB8U8AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmZvbnRmYWNlLXN0ZGVyci50eHRVVAUA
Ay9vjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACXmZBAEX9rK2oBAAD7AgAAWgAYAAAAAAAB
AAAApIGwUQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50
ZXh0LmRyYXcuZmlsbC5tYXhXaWR0aC5zbWFsbC1jcmFzaC1sb2cudHh0VVQFAAMtb4xPdXgLAAEE
6AMAAAToAwAAUEsBAh4DFAACAAgAlZmQQG1zcC5tAQAA+wIAAFQAGAAAAAAAAQAAAKSBrlMAAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmFs
aWduLmVuZC5ydGwtY3Jhc2gtbG9nLnR4dFVUBQADKW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQA
AgAIAJeZkEBVsltUaAEAAPoCAABZABgAAAAAAAEAAACkgalVAAB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5maWxsLm1heFdpZHRoLnplcm8t
Y3Jhc2gtbG9nLnR4dFVUBQADLW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJWZkEAkAeDC
aQEAAPsCAABWABgAAAAAAAEAAACkgaRXAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5hbGlnbi5zdGFydC5ydGwtY3Jhc2gtbG9nLnR4dFVU
BQADKm+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJeZkEAsMFq4OQEAAFoCAABTABgAAAAA
AAEAAACkgZ1ZAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnRleHQuZHJhdy5maWxsLnVuYWZmZWN0ZWQtc3RkZXJyLnR4dFVUBQADLm+MT3V4CwABBOgDAAAE
6AMAAFBLAQIeAxQAAgAIAJWZkEA9HswWagEAAPsCAABRABgAAAAAAAEAAACkgWNbAAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5hbGlnbi5s
ZWZ0LWNyYXNoLWxvZy50eHRVVAUAAylvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACTmZBA
RQzMmWwBAAD7AgAAUwAYAAAAAAABAAAApIFYXQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5zdGF0ZS5zYXZlcmVzdG9yZS5mb250LWNyYXNoLWxvZy50eHRV
VAUAAyZvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACXmZBAPVKi8GgBAAD6AgAATwAYAAAA
AAABAAAApIFRXwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC50ZXh0LmRyYXcuZmlsbC5ydGwtY3Jhc2gtbG9nLnR4dFVUBQADLm+MT3V4CwABBOgDAAAE6AMA
AFBLAQIeAxQAAgAIAJWZkEBRU6ejOQEAAFoCAABOABgAAAAAAAEAAACkgUJhAAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5hbGlnbi5sZWZ0
LXN0ZGVyci50eHRVVAUAAylvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACWmZBAcUMqaWoB
AAD7AgAAWgAYAAAAAAABAAAApIEDYwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUuYWxwaGFiZXRpYy1jcmFzaC1sb2cudHh0
VVQFAAMrb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlZmQQNAYQtw4AQAAWQIAAE8AGAAA
AAAAAQAAAKSBAWUAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMv
MmQudGV4dC5kcmF3LmFsaWduLnJpZ2h0LXN0ZGVyci50eHRVVAUAAypvjE91eAsAAQToAwAABOgD
AABQSwECHgMUAAIACACVmZBAKOsC2DkBAABaAgAAUwAYAAAAAAABAAAApIHCZgAAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYWxpZ24uc3Rh
cnQubHRyLXN0ZGVyci50eHRVVAUAAypvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACXmZBA
50pkbzkBAABaAgAAVwAYAAAAAAABAAAApIGIaAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuZmlsbC5tYXhXaWR0aC5zbWFsbC1zdGRlcnIu
dHh0VVQFAAMtb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAl5mQQOR3SktsAQAA+wIAAFYA
GAAAAAAAAQAAAKSBUmoAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVz
dHMvMmQudGV4dC5kcmF3LmZpbGwudW5hZmZlY3RlZC1jcmFzaC1sb2cudHh0VVQFAAMub4xPdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgAmJmQQDSvYSpsAQAA+wIAAE8AGAAAAAAAAQAAAKSBTmwA
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3
LmZvbnRmYWNlLWNyYXNoLWxvZy50eHRVVAUAAy9vjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIA
CACWmZBA//W/EjkBAABaAgAAWgAYAAAAAAABAAAApIFDbgAAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuZmlsbC5tYXhXaWR0aC5mb250ZmFj
ZS1zdGRlcnIudHh0VVQFAAMsb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAl5mQQB7JX61s
AQAA+wIAAFoAGAAAAAAAAQAAAKSBEHAAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9w
aGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmZpbGwubWF4V2lkdGgubGFyZ2UtY3Jhc2gtbG9nLnR4
dFVUBQADLW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJSZkEBXFdfGOAEAAFkCAABRABgA
AAAAAAEAAACkgRByAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnRleHQuZHJhdy5hbGlnbi5lbmQubHRyLXN0ZGVyci50eHRVVAUAAyhvjE91eAsAAQToAwAA
BOgDAABQSwECHgMUAAIACACUmZBA2w8LyzkBAABZAgAAVQAYAAAAAAABAAAApIHTcwAAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LWN1c3RvbS1mb250
LWxvYWQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADJ2+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAI
AJWZkED70MBYOgEAAFoCAABTABgAAAAAAAEAAACkgZt1AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5hbGlnbi5zdGFydC5ydGwtc3RkZXJy
LnR4dFVUBQADKm+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJeZkEDfgDtkOgEAAFoCAABX
ABgAAAAAAAEAAACkgWJ3AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnRleHQuZHJhdy5maWxsLm1heFdpZHRoLmxhcmdlLXN0ZGVyci50eHRVVAUAAy1vjE91
eAsAAQToAwAABOgDAABQSwECHgMUAAIACACUmZBA5nbI2DkBAABaAgAAUAAYAAAAAAABAAAApIEt
eQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRy
YXcuYWxpZ24uY2VudGVyLXN0ZGVyci50eHRVVAUAAyhvjE91eAsAAQToAwAABOgDAABQSwECHgMU
AAIACACXmZBA0uyn2DgBAABZAgAAVgAYAAAAAAABAAAApIHwegAAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuZmlsbC5tYXhXaWR0aC56ZXJv
LXN0ZGVyci50eHRVVAUAAy1vjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACUmZBAPsvOL2kB
AAD7AgAAUwAYAAAAAAABAAAApIG4fAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYWxpZ24uY2VudGVyLWNyYXNoLWxvZy50eHRVVAUAAyhv
jE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACTmZBAKgTOSjkBAABaAgAAUAAYAAAAAAABAAAA
pIGufgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zdGF0
ZS5zYXZlcmVzdG9yZS5mb250LXN0ZGVyci50eHRVVAUAAyZvjE91eAsAAQToAwAABOgDAABQSwEC
HgMUAAIACACXmZBAE0dkpjcBAABZAgAATAAYAAAAAAABAAAApIFxgAAAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuZmlsbC5ydGwtc3RkZXJy
LnR4dFVUBQADLm+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJaZkEAz+IgVOgEAAFoCAABX
ABgAAAAAAAEAAACkgS6CAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnRleHQuZHJhdy5iYXNlbGluZS5hbHBoYWJldGljLXN0ZGVyci50eHRVVAUAAytvjE91
eAsAAQToAwAABOgDAABQSwECHgMUAAIACACUmZBAyaFl9msBAAD6AgAAWAAYAAAAAAABAAAApIH5
gwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LWN1
c3RvbS1mb250LWxvYWQtY3Jhc2gtY3Jhc2gtbG9nLnR4dFVUBQADJ2+MT3V4CwABBOgDAAAE6AMA
AFBLAQIeAxQAAgAIAJaZkEDpBFJ0OQEAAFoCAABXABgAAAAAAAEAAACkgfaFAAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5maWxsLm1heFdp
ZHRoLmJvdW5kLXN0ZGVyci50eHRVVAUAAyxvjE91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAACP
mZBAAAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA7UHAhwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
YWNjZXNzaWJpbGl0eS9VVAUAAx5vjE91eAsAAQToAwAABOgDAABQSwECHgMKAAIAAACPmZBAaxPj
WwIAAAACAAAAPgAYAAAAAAABAAAApIEgiAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWRpc2FibGVkLXN0ZGVyci50eHRVVAUAAx5vjE91eAsAAQToAwAABOgDAABQ
SwECHgMKAAAAAACOmZBAAAAAAAAAAAAAAAAAHQAYAAAAAAAAABAA7UGaiAAAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvaHR0cC9VVAUAAxxvjE91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAACPmZBA
AAAAAAAAAAAAAAAAIwAYAAAAAAAAABAA7UHxiAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0
cC90ZXN0cy9VVAUAAx5vjE91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAACQmZBAAAAAAAAAAAAA
AAAAKQAYAAAAAAAAABAA7UFOiQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9j
YWNoZS9VVAUAAx9vjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACPmZBAASoOwdMAAADgAQAA
WwAYAAAAAAABAAAApIGxiQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNo
ZS9oaXN0b3J5LW9ubHktY2FjaGVkLXN1YnJlc291cmNlLWxvYWRzLWV4cGVjdGVkLnR4dFVUBQAD
Hm+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAI+ZkEBoUf2uUQkAAHgkAABtABgAAAAAAAEA
AACkgRmLAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnkt
b25seS1jYWNoZWQtc3VicmVzb3VyY2UtbG9hZHMtbWF4LWFnZS1odHRwcy1wcmV0dHktZGlmZi5o
dG1sVVQFAAMeb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAj5mQQFUUjcxXAgAAOQUAAGUA
GAAAAAAAAQAAAKSBEZUAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUv
aGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLWRpZmYu
dHh0VVQFAAMeb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAj5mQQEK9MkVIAgAA6gQAAFkA
GAAAAAAAAQAAAKSBB5gAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUv
aGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy13ZGlmZi5odG1sVVQFAAMeb4xP
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAj5mQQP7BpR1AAQAAWgIAAFkAGAAAAAAAAQAAAKSB
4poAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5
LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1hY3R1YWwudHh0VVQFAAMeb4xPdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgAj5mQQE+z0/ZPAgAAHwUAAFcAGAAAAAAAAQAAAKSBtZwAAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJy
ZXNvdXJjZS1sb2Fkcy1kaWZmLnR4dFVUBQADHm+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAI
AI+ZkEC5x48m2x8AAKgrAABnABgAAAAAAAAAAACkgZWfAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9odHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNoZWQtc3VicmVzb3VyY2UtbG9hZHMt
bWF4LWFnZS1odHRwcy1hY3R1YWwucG5nVVQFAAMeb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAC
AAgAkJmQQFCxkV1JCQAAbCQAAF8AGAAAAAAAAQAAAKSBEcAAAHRtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2h0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fk
cy1wcmV0dHktZGlmZi5odG1sVVQFAAMfb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAj5mQ
QP7BpR1AAQAAWgIAAGcAGAAAAAAAAQAAAKSB88kAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0
dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1tYXgt
YWdlLWh0dHBzLWFjdHVhbC50eHRVVAUAAx5vjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACP
mZBARBd4RdcAAADeAQAAaQAYAAAAAAABAAAApIHUywAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
aHR0cC90ZXN0cy9jYWNoZS9oaXN0b3J5LW9ubHktY2FjaGVkLXN1YnJlc291cmNlLWxvYWRzLW1h
eC1hZ2UtaHR0cHMtZXhwZWN0ZWQudHh0VVQFAAMeb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAC
AAgAj5mQQCjN4sxKAgAA6AQAAGcAGAAAAAAAAQAAAKSBTs0AAHRtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2h0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fk
cy1tYXgtYWdlLWh0dHBzLXdkaWZmLmh0bWxVVAUAAx5vjE91eAsAAQToAwAABOgDAABQSwECHgMU
AAIACACQmZBAucePJtsfAACoKwAAWQAYAAAAAAAAAAAApIE50AAAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9oaXN0b3J5LW9ubHktY2FjaGVkLXN1YnJlc291cmNlLWxv
YWRzLWFjdHVhbC5wbmdVVAUAAx9vjE91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAACPmZBAAAAA
AAAAAAAAAAAALAAYAAAAAAAAABAA7UGn8AAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90
ZXN0cy9hcHBjYWNoZS9VVAUAAx1vjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACPmZBAuRI7
oBsCAADnBAAAVgAYAAAAAAABAAAApIEN8QAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90
ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLWFjdHVhbC50eHRV
VAUAAx1vjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACPmZBA5jvPuRYCAADrBAAAQwAYAAAA
AAABAAAApIG48wAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9v
cmlnaW4tcXVvdGEtYWN0dWFsLnR4dFVUBQADHW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAI
AI+ZkECZjq3UAwMAALAHAABWABgAAAAAAAEAAACkgUv2AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtd2Rp
ZmYuaHRtbFVUBQADHW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAI+ZkEAiqe68HQoAAKQr
AABcABgAAAAAAAEAAACkgd75AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtcHJldHR5LWRpZmYuaHRtbFVU
BQADHW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAI+ZkEAFO35iFQMAAG8IAABBABgAAAAA
AAEAAACkgZEEAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29y
aWdpbi1xdW90YS1kaWZmLnR4dFVUBQADHW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAI+Z
kEC9T+OMfzAAANFAAABDABgAAAAAAAAAAACkgSEIAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9o
dHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1hY3R1YWwucG5nVVQFAAMdb4xPdXgLAAEE
6AMAAAToAwAAUEsBAh4DFAACAAgAjpmQQKMw4cqfAgAAowYAAGkAGAAAAAAAAQAAAKSBHTkBAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNv
bnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMtYWN0dWFsLnR4dFVUBQADHG+MT3V4
CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAI+ZkEDeihWkagEAAE4CAABYABgAAAAAAAEAAACkgV88
AQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90
YS1jb250aW51ZWQtZG93bmxvYWQtZXhwZWN0ZWQudHh0VVQFAAMdb4xPdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgAj5mQQBTKIHwiMAAASUAAAFYAGAAAAAAAAAAAAKSBWz4BAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1k
b3dubG9hZC1hY3R1YWwucG5nVVQFAAMdb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAj5mQ
QHe9HB+VAQAAvwIAAEUAGAAAAAAAAQAAAKSBDW8BAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0
dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWV4cGVjdGVkLnR4dFVUBQADHW+MT3V4CwAB
BOgDAAAE6AMAAFBLAQIeAxQAAgAIAI6ZkEDp8T3diwMAAM0KAABnABgAAAAAAAEAAACkgSFxAQB0
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1j
b250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3RzLWRpZmYudHh0VVQFAAMcb4xPdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgAj5mQQO72ZbI+AwAAbggAAEMAGAAAAAAAAQAAAKSBTXUB
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
LXdkaWZmLmh0bWxVVAUAAx1vjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACPmZBAwiTUjdEK
AACUMgAAbwAYAAAAAAABAAAApIEIeQEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlm
ZXN0cy1wcmV0dHktZGlmZi5odG1sVVQFAAMdb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgA
j5mQQBzmy3+vQgAAHlQAAGkAGAAAAAAAAAAAAKSBgoQBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0
aXBsZS1tYW5pZmVzdHMtYWN0dWFsLnBuZ1VUBQADHW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQA
AgAIAI+ZkEBD8ec9VwoAAG8uAABJABgAAAAAAAEAAACkgdTHAQB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1wcmV0dHktZGlmZi5odG1sVVQF
AAMdb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAjpmQQK4gAM2eAwAASAoAAGkAGAAAAAAA
AQAAAKSBrtIBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3Jp
Z2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMtd2RpZmYuaHRt
bFVUBQADHG+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAI6ZkEDjwvFxsAEAABcDAABrABgA
AAAAAAEAAACkge/WAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hl
L29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3RzLWV4cGVj
dGVkLnR4dFVUBQADHG+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAI+ZkEAyvg4I8wIAABsI
AABUABgAAAAAAAEAAACkgUTZAQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtZGlmZi50eHRVVAUAAx1vjE91
eAsAAQToAwAABOgDAABQSwECHgMUAAIACACYmZBAcJSuw0YFAABzXQAAJQAYAAAAAAABAAAApIHF
3AEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZXJyb3JfbG9nLnR4dFVUBQADL2+MT3V4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIAKCZkEAAMYvMSyMAAOWWAAAkABgAAAAAAAEAAACkgWriAQB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9yZXN1bHRzLmh0bWxVVAUAAztvjE91eAsAAQToAwAABOgDAABQ
SwECHgMKAAAAAACLmZBAAAAAAAAAAAAAAAAAQwAYAAAAAAAAAAAApIETBgIAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3MubG9nLTE2QXByMjAxMi0xOTEyMjEtZXJyLnR4dFVU
BQADFW+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJiZkEC1NW34lAIAAH4MAAAmABgAAAAA
AAEAAACkgZAGAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4yLnR4dFVUBQADL2+M
T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJmZkEC3Xl66fQMAAGwQAAApABgAAAAAAAEAAACk
gYQJAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mdWxsX3Jlc3VsdHMuanNvblVUBQADMm+MT3V4
CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAIqZkECR7GaBGiQAAG9hAAAiABgAAAAAAAEAAACkgWQN
AgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwZC5jb25mVVQFAAMUb4xPdXgLAAEE6AMAAATo
AwAAUEsBAh4DCgAAAAAAlZmQQAAAAAAAAAAAAAAAACQAGAAAAAAAAAAQAO1B2jECAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL1VUBQADKm+MT3V4CwABBOgDAAAE6AMAAFBLAQIe
AwoAAAAAAJWZkEAAAAAAAAAAAAAAAAAsABgAAAAAAAAAEADtQTgyAgB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9jb21wb3NpdGluZy9iYWNraW5nL1VUBQADKm+MT3V4CwABBOgDAAAE6AMAAFBLAQIe
AxQAAgAIAJWZkEAXHRoePgEAAFYGAABSABgAAAAAAAEAAACkgZ4yAgB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9jb21wb3NpdGluZy9iYWNraW5nL25vLWJhY2tpbmctZm9yLWNsaXAtb3ZlcmxhcC13
ZGlmZi5odG1sVVQFAAMqb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlZmQQHxkuM/sCAAA
vzUAAFgAGAAAAAAAAQAAAKSBaDQCAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5n
L2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC1vdmVybGFwLXByZXR0eS1kaWZmLmh0bWxVVAUA
AypvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACVmZBAOkdm9HQIAAARJwAAVwAYAAAAAAAB
AAAApIHmPQIAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvYmFja2luZy9uby1i
YWNraW5nLWZvci1wZXJzcGVjdGl2ZS1wcmV0dHktZGlmZi5odG1sVVQFAAMqb4xPdXgLAAEE6AMA
AAToAwAAUEsBAh4DFAACAAgAlZmQQK2njzr0AAAAmQMAAFEAGAAAAAAAAQAAAKSB60YCAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItcGVy
c3BlY3RpdmUtYWN0dWFsLnR4dFVUBQADKm+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJWZ
kEAh/hfAUAEAAMsEAABRABgAAAAAAAEAAACkgWpIAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9j
b21wb3NpdGluZy9iYWNraW5nL25vLWJhY2tpbmctZm9yLXBlcnNwZWN0aXZlLXdkaWZmLmh0bWxV
VAUAAypvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACVmZBA9s6QrCUBAAC+BAAASAAYAAAA
AAABAAAApIFFSgIAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY29tcG9zaXRpbmcvYmFja2luZy9u
by1iYWNraW5nLWZvci1jbGlwLWRpZmYudHh0VVQFAAMqb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4D
FAACAAgAlZmQQGw41YZZAQAA6wUAAEoAGAAAAAAAAQAAAKSB7EsCAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC13ZGlmZi5odG1s
VVQFAAMqb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlZmQQCT/6yTgAAAAggQAAFQAGAAA
AAAAAQAAAKSByU0CAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcv
bm8tYmFja2luZy1mb3ItY2xpcC1vdmVybGFwLWV4cGVjdGVkLnR4dFVUBQADKm+MT3V4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIAJWZkEDX6TDfHwEAAAIEAABPABgAAAAAAAEAAACkgTdPAgB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9jb21wb3NpdGluZy9iYWNraW5nL25vLWJhY2tpbmctZm9yLXBl
cnNwZWN0aXZlLWRpZmYudHh0VVQFAAMqb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlZmQ
QD1TavT0AAAAmQMAAFMAGAAAAAAAAQAAAKSB31ACAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Nv
bXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItcGVyc3BlY3RpdmUtZXhwZWN0ZWQudHh0
VVQFAAMqb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlZmQQF/Au8X2AAAATQQAAEoAGAAA
AAAAAQAAAKSBYFICAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcv
bm8tYmFja2luZy1mb3ItY2xpcC1hY3R1YWwudHh0VVQFAAMqb4xPdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgAlZmQQOf9eLcgAQAAYwUAAFAAGAAAAAAAAQAAAKSB2lMCAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC1vdmVybGFw
LWRpZmYudHh0VVQFAAMqb4xPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlZmQQN92k0mzCAAA
gS4AAFAAGAAAAAAAAQAAAKSBhFUCAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5n
L2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC1wcmV0dHktZGlmZi5odG1sVVQFAAMqb4xPdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlZmQQJumLE70AAAATQQAAEwAGAAAAAAAAQAAAKSBwV4C
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1m
b3ItY2xpcC1leHBlY3RlZC50eHRVVAUAAypvjE91eAsAAQToAwAABOgDAABQSwECHgMUAAIACACV
mZBAaT9Wgt4AAACCBAAAUgAYAAAAAAABAAAApIE7YAIAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
Y29tcG9zaXRpbmcvYmFja2luZy9uby1iYWNraW5nLWZvci1jbGlwLW92ZXJsYXAtYWN0dWFsLnR4
dFVUBQADKm+MT3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJeZkEAZo/OWIRMAAKr+AAAmABgA
AAAAAAEAAACkgaVhAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NfbG9nLnR4dFVUBQAD
LW+MT3V4CwABBOgDAAAE6AMAAFBLBQYAAAAAbQBtAA0+AAAmdQIAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137413</attachid>
            <date>2012-04-16 15:24:03 -0700</date>
            <delta_ts>2012-04-16 16:01:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120417072358.patch</filename>
            <type>text/plain</type>
            <size>11950</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFhYmM3ZjgxMzUwYTdk
OGUzMjNlMWNhYjdjZjA3MzJmYTZlMzljMS4uNDg3ZGM2ODQ1MDExZTZkNGQ1ODkxODEyOGEzMzkx
OGQ5NWJkMGIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTE2ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3Bl
cnR5KToKKyAgICAgICAgTW9kaWZpZWQgY29uZGl0aW9ucyBvZiBpc0luaXRpYWwgYW5kIGlzSW5o
ZXJpdC4KKyAgICAgICAgVGhpcyBtZXRob2QgY2hlY2tzIHdoZXRoZXIgQ1NTVmFsdWUgaXMgJ2lu
aGVyaXQnIG9yIG5vdCBhbmQgd2hldGhlciBpbml0aWFsIG9yIG5vdCBhdCB0aGUgZmlyc3QgbGlu
ZS4KKyAgICAgICAgU28gcmVzZXRTdHlsZUluaGVyaXRhbmNlIHdpbGwgY2hhbmdlIHRoZSBjb25k
aXRpb24uIElmIHJlc2V0U3R5bGVJbmhlcml0YW5jZWlzIHRydWUgYW5kIHZhbHVlIGlzICdpbmhl
cml0JywKKyAgICAgICAgaXNJbmhlcml0IHdpbGwgYmUgZmFsc2UgYW5kIGlzSW5pdGlhbCB3aWxs
IGJlIHRydWUuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
OjpyZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgQWRkZWQg
cmVzZXRTdHlsZUluaGVyaXRhbmNlIGdldHRlciBhbmQgc2V0dGVyLgorICAgICAgICAqIGRvbS9T
aGFkb3dSb290LmlkbDoKKyAgICAgICAgQWRkZWQgYW4gYXR0cmlidXRlLCByZXNldFN0eWxlSW5o
ZXJpdGFuY2UuCisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgIChUcmVlU2NvcGUpOgorICAgICAg
ICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UncyBkZWZhdWx0IGdldHRlci4KKyAgICAgICAg
VGhlIGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBieSBjbGFzcyBTaGFkb3dSb290J3MgZ2V0dGVy
LgorCiAyMDEyLTA0LTE2ICBUZXJyeSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgV2ViR2VzdHVyZUV2ZW50IHRvIHN0b3JlIGZv
dXIgZmxvYXRpbmcgcG9pbnQgdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKaW5kZXggNWNlNzdlMTlhNmVhNTUyM2ZkZWJmOGEzNmE3MTlmMjYyNGZkZGZhNC4uMGI1
ZTVjOTdjY2ExODJiZDZkMTUzNTZiZTJmZmM5Yzk5ZTdkMWFhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMzA4MCw4ICszMDgwLDEyIEBAIHN0YXRpYyBib29s
IGNyZWF0ZUdyaWRQb3NpdGlvbihDU1NWYWx1ZSogdmFsdWUsIExlbmd0aCYgcG9zaXRpb24pCiAK
IHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBD
U1NWYWx1ZSAqdmFsdWUpCiB7Ci0gICAgYm9vbCBpc0luaGVyaXQgPSBtX3BhcmVudE5vZGUgJiYg
dmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKTsKLSAgICBib29sIGlzSW5pdGlhbCA9IHZhbHVlLT5p
c0luaXRpYWxWYWx1ZSgpIHx8ICghbV9wYXJlbnROb2RlICYmIHZhbHVlLT5pc0luaGVyaXRlZFZh
bHVlKCkpOworICAgIFRyZWVTY29wZSogdHJlZVNjb3BlID0gbV9lbGVtZW50LT50cmVlU2NvcGUo
KTsKKyAgICBib29sIGlzSW5oZXJpdCA9IG1fcGFyZW50Tm9kZQorICAgICAgICAmJiAhKHRyZWVT
Y29wZS0+cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgJiYgdHJlZVNjb3BlICE9IG1fcGFyZW50Tm9k
ZS0+dHJlZVNjb3BlKCkpCisgICAgICAgICYmIHZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCk7Cisg
ICAgYm9vbCBpc0luaXRpYWwgPSB2YWx1ZS0+aXNJbml0aWFsVmFsdWUoKQorICAgICAgICB8fCAo
KCFtX3BhcmVudE5vZGUgfHwgKHRyZWVTY29wZS0+cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgJiYg
dHJlZVNjb3BlICE9IG1fcGFyZW50Tm9kZS0+dHJlZVNjb3BlKCkpKSAmJiB2YWx1ZS0+aXNJbmhl
cml0ZWRWYWx1ZSgpKTsKIAogICAgIEFTU0VSVCghaXNJbmhlcml0IHx8ICFpc0luaXRpYWwpOyAv
LyBpc0luaGVyaXQgLT4gIWlzSW5pdGlhbCAmJiBpc0luaXRpYWwgLT4gIWlzSW5oZXJpdAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggZTc1MGJjMjJiNDRkYjc1YTdlZTQ5NmJlOTk0
MWJiZTlmODQyM2VhNS4uYTA2NWQ0ODMxYjAxYzc5MDgyYjRhMzBmMzBlYTczNDQ2MGZjOGM0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNTAsNiArNTAsNyBAQCBTaGFkb3dSb290
OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIG1fcHJldigwKQogICAgICwg
bV9uZXh0KDApCiAgICAgLCBtX2FwcGx5QXV0aG9yU2hlZXRzKGZhbHNlKQorICAgICwgbV9yZXNl
dFN0eWxlSW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX2luc2VydGlvblBvaW50QXNzaWduZWRU
bygwKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CkBAIC0xOTgsNiArMTk5LDE2IEBAIHZvaWQg
U2hhZG93Um9vdDo6c2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCB2YWx1ZSkKICAgICBtX2FwcGx5
QXV0aG9yU2hlZXRzID0gdmFsdWU7CiB9CiAKK2Jvb2wgU2hhZG93Um9vdDo6cmVzZXRTdHlsZUlu
aGVyaXRhbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNldFN0eWxlSW5oZXJpdGFuY2U7
Cit9CisKK3ZvaWQgU2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKGJvb2wgdmFs
dWUpCit7CisgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB2YWx1ZTsKK30KKwogdm9pZCBT
aGFkb3dSb290OjphdHRhY2goKQogewogICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0
b3IgPSBkb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApp
bmRleCBlNWIyMjFiNzNhMzM3MWEwNTQ1ZjBjNDk1OTcxNjY4ZGE4MjY5YWE4Li43ZGZkMjQ4MjVm
ZjFjZDQ5ODUyYzM1OGE0ZDBkOTIyZDRmZjliMmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgK
QEAgLTcwLDYgKzcwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNo
ZWV0cygpIGNvbnN0OwogICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCk7CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CisgICAgdm9pZCBz
ZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CisKICAgICBFbGVtZW50KiBob3N0KCkgY29u
c3QgeyByZXR1cm4gc2hhZG93SG9zdCgpOyB9CiAgICAgU2hhZG93VHJlZSogdHJlZSgpIGNvbnN0
OwogCkBAIC0xMDUsNiArMTA4LDcgQEAgcHJpdmF0ZToKICAgICBTaGFkb3dSb290KiBtX3ByZXY7
CiAgICAgU2hhZG93Um9vdCogbV9uZXh0OwogICAgIGJvb2wgbV9hcHBseUF1dGhvclNoZWV0cyA6
IDE7CisgICAgYm9vbCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA6IDE7CiAgICAgSW5zZXJ0aW9u
UG9pbnQqIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaWRsCmluZGV4IDVlZTU2NjMzMjlmNmE3NjA2YTQ2NDE1MTUwNDE2ZWMwODJlNzAwYTIu
LmNjMjc1OTBmMGFmYTgyM2M5ZTk1MmM3OGMyNjAyOWMwMTczMDc0ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5pZGwKQEAgLTM1LDYgKzM1LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBob3N0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRWxlbWVudCBhY3RpdmVFbGVtZW50OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gcmVzZXRTdHls
ZUluaGVyaXRhbmNlOwogCiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGlubmVySFRNTAogICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNl
cHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAzNzZmYmMzYmY3NDQxYjU5N2Rk
OWFlOGE2NDlkZjI1ZTc5MTAxYzM3Li5hODNmZGM4NTRkYWYzZDk0YzgwOGEzMGJhYmM5YzM4ZjBk
MGQzNGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMTQ0LDYgKzE0NCwxMSBAQCBi
b29sIFRyZWVTY29wZTo6YXBwbHlBdXRob3JTaGVldHMoKSBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCitib29sIFRyZWVTY29wZTo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgVHJlZVNjb3BlOjphZG9wdElmTmVlZGVkKE5v
ZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCmluZGV4
IDE2Y2Y2NjQ0ZTU2NTc4MjZkM2FjMTg0NDMwOWUzYzRkZTY1YmYwYWIuLmNjOWNkMTVhMGJjODU5
YmE5MWNjYzE3YmVkMjMxZTViMDMwNDU4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKQEAgLTcw
LDYgKzcwLDcgQEAgcHVibGljOgogICAgIEVsZW1lbnQqIGZpbmRBbmNob3IoY29uc3QgU3RyaW5n
JiBuYW1lKTsKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNoZWV0cygpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKIAogICAgIC8v
IFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtdXRhdGlvbiBtZXRob2RzIChlLmcuLCBhcHBlbmRDaGls
ZCgpKS4KICAgICB2b2lkIGFkb3B0SWZOZWVkZWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUyMjA0OGI4MmZh
YWNjZDg3ODBiZDUzNzA0OWE3ODZjNTg4ZjYzMzMuLjNkNjE3Y2U3NzIxNTg4YTFhMGQ2ZjUwNTk5
NDZmYzlmMGY2YTI0NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNC0xNiAgVGFrYXNo
aSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93Um9vdCBuZWVk
cyByZXNldFN0eWxlSW5oZXJpdGFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg0MDQ4CisKKyAgICAgICAgQWRkZWQgbGF5b3V0IHRlc3RzIGZvciBj
aGVja2luZyB3aGV0aGVyIHJlc2V0U3R5bGVJbmhlcml0YW5jZSB3b3JrcyBjb3JyZWN0bHkgb3Ig
bm90LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUlu
aGVyaXRhbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTItMDQtMTYgIFN0ZXBoZW4gQ2hl
bm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEZsYWt5
IGxheW91dCB0ZXN0IExheW91dFRlc3RzL3N2Zy9oaXhpZS9lcnJvci8wMTIueG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUlu
aGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVj
NTBhOGU2YTcwNDBkZDQ3NGJhMzY5MmY2ODI4MjM4NzM3ZDcwODgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVy
aXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1BBU1MKK1BBU1MKK1BBU1MKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0
U3R5bGVJbmhlcml0YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3OWM3ZTAwZTkz
NzliZmQ2MzdiMzkxZDcxYzVjOGNjYzk5YmE0MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0
bWwKQEAgLTAsMCArMSwxMzIgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+CisvKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVy
TGF5ZXIgKi8KKy5jb250YWluZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKworLnNw
YW4geworICAgIGRpc3BsYXk6IGJveGVkLWlubGluZTsKKyAgICBtYXJnaW46IDJweDsKKyAgICBi
b3JkZXI6IHNvbGlkOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2Fn
ZSkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9
IChtZXNzYWdlICsgIlxuIik7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZUFsbENoaWxkcmVuKGVsZW0p
IHsKKyAgICB3aGlsZSAoZWxlbS5maXJzdENoaWxkKQorICAgICAgICBlbGVtLnJlbW92ZUNoaWxk
KGVsZW0uZmlyc3RDaGlsZCk7Cit9CisKK2Z1bmN0aW9uIGNsZWFuVXAoKSB7CisgICAgcmVtb3Zl
QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKSk7
CisgICAgcmVtb3ZlQWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1j
b250YWluZXInKSk7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZUNvbnRhaW5lckxpbmVzKHRleHQpIHsK
KyAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCdcbicpOworICAgIGxpbmVzLnNwbGljZSgwLCAy
KTsKKyAgICByZXR1cm4gbGluZXMuam9pbignXG4nKTsKK30KKworZnVuY3Rpb24gY2hlY2soKSB7
CisgICAgdmFyIHJlZkNvbnRhaW5lclJlbmRlclRyZWUgPSBpbnRlcm5hbHMuZWxlbWVudFJlbmRl
clRyZWVBc1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKSk7
CisgICAgdmFyIHJlZlJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyhyZWZDb250YWlu
ZXJSZW5kZXJUcmVlKTsKKworICAgIHZhciB0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlID0gaW50
ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdh
Y3R1YWwtY29udGFpbmVyJykpOworICAgIHZhciB0YXJnZXRSZW5kZXJUcmVlID0gcmVtb3ZlQ29u
dGFpbmVyTGluZXModGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSk7CisKKyAgICBpZiAodGFyZ2V0
UmVuZGVyVHJlZSA9PSByZWZSZW5kZXJUcmVlKQorICAgICAgICBsb2coIlBBU1MiKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgbG9nKCJGQUlMIik7CisgICAgICAgIGxvZygiRXhwZWN0ZWQ6ICIpOwor
ICAgICAgICBsb2cocmVmUmVuZGVyVHJlZSk7CisgICAgICAgIGxvZygiQWN0dWFsOiAiKTsKKyAg
ICAgICAgbG9nKHRhcmdldFJlbmRlclRyZWUpOworICAgIH0KKworfQorCitmdW5jdGlvbiB0ZXN0
SW5oZXJpdEJvcmRlclN0eWxlV2l0aE5vUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuc3R5
bGUuYm9yZGVyID0gJzJweCBzb2xpZCAjZjAwJzsKKworICAgIHZhciByb290ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QodGFyZ2V0KTsKKyAgICB2YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIHZhciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgZGl2MS5zdHlsZS5ib3JkZXIgPSAnaW5oZXJpdCc7CisgICAgZGl2MS5hcHBlbmRDaGls
ZChkaXYyKTsKKyAgICByb290LmFwcGVuZENoaWxkKGRpdjEpOworICAgIAorICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRN
TCA9CisgICAgICAgICI8ZGl2IHN0eWxlPSdib3JkZXI6MnB4IHNvbGlkICNmMDAnPjxkaXYgc3R5
bGU9J2JvcmRlcjoycHggc29saWQgI2YwMCc+PGRpdj48L2Rpdj48L2Rpdj48L2Rpdj4iOworfQor
CitmdW5jdGlvbiB0ZXN0SW5oZXJpdEJvcmRlclN0eWxlV2l0aFJlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgdGFyZ2V0LnN0eWxlLmJvcmRlciA9ICcycHggc29saWQgI2YwMCc7CisKKyAgICB2YXIgcm9v
dCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRhcmdldCk7CisgICAgcm9vdC5yZXNldFN0eWxlSW5o
ZXJpdGFuY2UgPSB0cnVlOworICAgIHZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CisgICAgdmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
ICBkaXYxLnN0eWxlLmJvcmRlciA9ICdpbmhlcml0JzsKKyAgICBkaXYxLmFwcGVuZENoaWxkKGRp
djIpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoZGl2MSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0K
KyAgICAgICAgIjxkaXYgc3R5bGU9J2JvcmRlcjoycHggc29saWQgI2YwMCc+PGRpdj48ZGl2Pjwv
ZGl2PjwvZGl2PjwvZGl2PiI7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbmhlcml0Qm9yZGVyU3R5bGVX
aG9zZVBhcmVudEluU2hhZG93V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIg
dGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LnN0eWxl
LmJvcmRlciA9ICcycHggc29saWQgI2YwMCc7CisKKyAgICB2YXIgcm9vdCA9IG5ldyBXZWJLaXRT
aGFkb3dSb290KHRhcmdldCk7CisgICAgcm9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVl
OworICAgIHZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFy
IGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYxLnN0eWxlLmJv
cmRlciA9ICcxcHggc29saWQgI2ZmMCc7CisgICAgZGl2Mi5zdHlsZS5ib3JkZXIgPSAnaW5oZXJp
dCc7CisgICAgZGl2MS5hcHBlbmRDaGlsZChkaXYyKTsKKyAgICByb290LmFwcGVuZENoaWxkKGRp
djEpOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVy
JykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9CisgICAgICAgICI8ZGl2IHN0eWxlPSdib3JkZXI6
MnB4IHNvbGlkICNmMDAnPjxkaXYgc3R5bGU9J2JvcmRlcjoxcHggc29saWQgI2ZmMCc+PGRpdiBz
dHlsZT0nYm9yZGVyOjFweCBzb2xpZCAjZmYwJz48L2Rpdj48L2Rpdj48L2Rpdj4iOworfQorCit2
YXIgdGVzdEZ1bmNzID0gWworICAgIHRlc3RJbmhlcml0Qm9yZGVyU3R5bGVXaXRoTm9SZXNldFN0
eWxlSW5oZXJpdGFuY2UsCisgICAgdGVzdEluaGVyaXRCb3JkZXJTdHlsZVdpdGhSZXNldFN0eWxl
SW5oZXJpdGFuY2UsCisgICAgdGVzdEluaGVyaXRCb3JkZXJTdHlsZVdob3NlUGFyZW50SW5TaGFk
b3dXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlCitdOworCitmdW5jdGlvbiBkb1Rlc3QoKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGNsZWFuVXAoKTsKKwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdEZ1bmNzLmxlbmd0aDsgKytpKSB7CisgICAgICAg
IHRlc3RGdW5jc1tpXSgpOworICAgICAgICBjaGVjaygpOworICAgICAgICBjbGVhblVwKCk7Cisg
ICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KKwor
PGRpdiBpZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Cis8ZGl2
IGlkPSJleHBlY3QtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KKzxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137421</attachid>
            <date>2012-04-16 16:01:08 -0700</date>
            <delta_ts>2012-04-17 15:45:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120416160106.patch</filename>
            <type>text/plain</type>
            <size>12069</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFhYmM3ZjgxMzUwYTdk
OGUzMjNlMWNhYjdjZjA3MzJmYTZlMzljMS4uNDVjYTEwNTNjNTc4MGI0ZjM2MzM0NDQxN2JiNDNm
N2VhMTU0MTdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA0LTE2ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCisgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CisKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgTW9kaWZpZWQgY29uZGl0aW9ucyBv
ZiBpc0luaXRpYWwgYW5kIGlzSW5oZXJpdC4KKyAgICAgICAgVGhpcyBtZXRob2QgY2hlY2tzIHdo
ZXRoZXIgQ1NTVmFsdWUgaXMgJ2luaGVyaXQnIG9yIG5vdCBhbmQgd2hldGhlciBpbml0aWFsIG9y
IG5vdCBhdCB0aGUgZmlyc3QgbGluZS4KKyAgICAgICAgU28gcmVzZXRTdHlsZUluaGVyaXRhbmNl
IHdpbGwgY2hhbmdlIHRoZSBjb25kaXRpb24uIElmIHJlc2V0U3R5bGVJbmhlcml0YW5jZWlzIHRy
dWUgYW5kIHZhbHVlIGlzICdpbmhlcml0JywKKyAgICAgICAgaXNJbmhlcml0IHdpbGwgYmUgZmFs
c2UgYW5kIGlzSW5pdGlhbCB3aWxsIGJlIHRydWUuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSb290OjpyZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5o
ZXJpdGFuY2UpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dS
b290KToKKyAgICAgICAgQWRkZWQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGdldHRlciBhbmQgc2V0
dGVyLgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmlkbDoKKyAgICAgICAgQWRkZWQgYW4gYXR0
cmlidXRlLCByZXNldFN0eWxlSW5oZXJpdGFuY2UuCisgICAgICAgICogZG9tL1RyZWVTY29wZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAg
IChUcmVlU2NvcGUpOgorICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UncyBkZWZh
dWx0IGdldHRlci4KKyAgICAgICAgVGhlIGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBieSBjbGFz
cyBTaGFkb3dSb290J3MgZ2V0dGVyLgorCiAyMDEyLTA0LTE2ICBUZXJyeSBBbmRlcnNvbiAgPHRk
YW5kZXJzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgV2ViR2Vz
dHVyZUV2ZW50IHRvIHN0b3JlIGZvdXIgZmxvYXRpbmcgcG9pbnQgdmFsdWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggNWNlNzdlMTlhNmVhNTUyM2ZkZWJmOGEz
NmE3MTlmMjYyNGZkZGZhNC4uZTE0NTRjMDY4ODYxYzYwZjgyOWMxYmI4Yzc1MTJiNGUyMDU5MmQw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMzA4MCw4ICsz
MDgwLDEyIEBAIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRQb3NpdGlvbihDU1NWYWx1ZSogdmFsdWUs
IExlbmd0aCYgcG9zaXRpb24pCiAKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiB7Ci0gICAgYm9vbCBpc0luaGVy
aXQgPSBtX3BhcmVudE5vZGUgJiYgdmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKTsKLSAgICBib29s
IGlzSW5pdGlhbCA9IHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8ICghbV9wYXJlbnROb2RlICYm
IHZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpOworICAgIFRyZWVTY29wZSogdHJlZVNjb3BlID0g
bV9lbGVtZW50PyBtX2VsZW1lbnQtPnRyZWVTY29wZSgpIDogMDsKKyAgICBib29sIGlzSW5oZXJp
dCA9IG1fcGFyZW50Tm9kZQorICAgICAgICAmJiAhKHRyZWVTY29wZSAmJiB0cmVlU2NvcGUtPnJl
c2V0U3R5bGVJbmhlcml0YW5jZSgpICYmIHRyZWVTY29wZSAhPSBtX3BhcmVudE5vZGUtPnRyZWVT
Y29wZSgpKQorICAgICAgICAmJiB2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpOworICAgIGJvb2wg
aXNJbml0aWFsID0gdmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkKKyAgICAgICAgfHwgKCghbV9wYXJl
bnROb2RlIHx8ICh0cmVlU2NvcGUgJiYgdHJlZVNjb3BlLT5yZXNldFN0eWxlSW5oZXJpdGFuY2Uo
KSAmJiB0cmVlU2NvcGUgIT0gbV9wYXJlbnROb2RlLT50cmVlU2NvcGUoKSkpICYmIHZhbHVlLT5p
c0luaGVyaXRlZFZhbHVlKCkpOwogCiAgICAgQVNTRVJUKCFpc0luaGVyaXQgfHwgIWlzSW5pdGlh
bCk7IC8vIGlzSW5oZXJpdCAtPiAhaXNJbml0aWFsICYmIGlzSW5pdGlhbCAtPiAhaXNJbmhlcml0
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBlNzUwYmMyMmI0NGRiNzVhN2VlNDk2
YmU5OTQxYmJlOWY4NDIzZWE1Li5hMDY1ZDQ4MzFiMDFjNzkwODJiNGEzMGYzMGVhNzM0NDYwZmM4
YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC01MCw2ICs1MCw3IEBAIFNoYWRv
d1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAg
ICAgLCBtX25leHQoMCkKICAgICAsIG1fYXBwbHlBdXRob3JTaGVldHMoZmFsc2UpCisgICAgLCBt
X3Jlc2V0U3R5bGVJbmhlcml0YW5jZShmYWxzZSkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnRBc3Np
Z25lZFRvKDApCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKQEAgLTE5OCw2ICsxOTksMTYgQEAg
dm9pZCBTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclNoZWV0cyhib29sIHZhbHVlKQogICAgIG1f
YXBwbHlBdXRob3JTaGVldHMgPSB2YWx1ZTsKIH0KIAorYm9vbCBTaGFkb3dSb290OjpyZXNldFN0
eWxlSW5oZXJpdGFuY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhlcml0
YW5jZTsKK30KKwordm9pZCBTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9v
bCB2YWx1ZSkKK3sKKyAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHZhbHVlOworfQorCiB2
b2lkIFNoYWRvd1Jvb3Q6OmF0dGFjaCgpCiB7CiAgICAgQ1NTU3R5bGVTZWxlY3Rvciogc3R5bGVT
ZWxlY3RvciA9IGRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oCmluZGV4IGU1YjIyMWI3M2EzMzcxYTA1NDVmMGM0OTU5NzE2NjhkYTgyNjlhYTguLjdkZmQy
NDgyNWZmMWNkNDk4NTJjMzU4YTRkMGQ5MjJkNGZmOWIyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaApAQCAtNzAsNiArNzAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0
aG9yU2hlZXRzKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsK
IAorICAgIHZpcnR1YWwgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKKyAgICB2
b2lkIHNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sKTsKKwogICAgIEVsZW1lbnQqIGhvc3Qo
KSBjb25zdCB7IHJldHVybiBzaGFkb3dIb3N0KCk7IH0KICAgICBTaGFkb3dUcmVlKiB0cmVlKCkg
Y29uc3Q7CiAKQEAgLTEwNSw2ICsxMDgsNyBAQCBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QqIG1f
cHJldjsKICAgICBTaGFkb3dSb290KiBtX25leHQ7CiAgICAgYm9vbCBtX2FwcGx5QXV0aG9yU2hl
ZXRzIDogMTsKKyAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIDogMTsKICAgICBJbnNl
cnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG87CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5pZGwKaW5kZXggNWVlNTY2MzMyOWY2YTc2MDZhNDY0MTUxNTA0MTZlYzA4MmU3
MDBhMi4uY2MyNzU5MGYwYWZhODIzYzllOTUyYzc4YzI2MDI5YzAxNzMwNzQ4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmlkbApAQCAtMzUsNiArMzUsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBFbGVtZW50IGFjdGl2ZUVsZW1lbnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TZWxlY3Rpb24gc2VsZWN0aW9uOworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiByZXNl
dFN0eWxlSW5oZXJpdGFuY2U7CiAKICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MCiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IDM3NmZiYzNiZjc0NDFi
NTk3ZGQ5YWU4YTY0OWRmMjVlNzkxMDFjMzcuLmE4M2ZkYzg1NGRhZjNkOTRjODA4YTMwYmFiYzlj
MzhmMGQwZDM0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0xNDQsNiArMTQ0LDEx
IEBAIGJvb2wgVHJlZVNjb3BlOjphcHBseUF1dGhvclNoZWV0cygpIGNvbnN0CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK2Jvb2wgVHJlZVNjb3BlOjpyZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBUcmVlU2NvcGU6OmFkb3B0SWZOZWVk
ZWQoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgK
aW5kZXggMTZjZjY2NDRlNTY1NzgyNmQzYWMxODQ0MzA5ZTNjNGRlNjViZjBhYi4uY2M5Y2QxNWEw
YmM4NTliYTkxY2NjMTdiZWQyMzFlNWIwMzA0NThhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApA
QCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCogZmluZEFuY2hvcihjb25zdCBT
dHJpbmcmIG5hbWUpOwogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29u
c3Q7CisgICAgdmlydHVhbCBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0OwogCiAg
ICAgLy8gVXNlZCBieSB0aGUgYmFzaWMgRE9NIG11dGF0aW9uIG1ldGhvZHMgKGUuZy4sIGFwcGVu
ZENoaWxkKCkpLgogICAgIHZvaWQgYWRvcHRJZk5lZWRlZChOb2RlKik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTIyMDQ4
YjgyZmFhY2NkODc4MGJkNTM3MDQ5YTc4NmM1ODhmNjMzMy4uM2Q2MTdjZTc3MjE1ODhhMWEwZDZm
NTA1OTk0NmZjOWYwZjZhMjQ2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA0LTE2ICBU
YWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290
IG5lZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdHMg
Zm9yIGNoZWNraW5nIHdoZXRoZXIgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHdvcmtzIGNvcnJlY3Rs
eSBvciBub3QuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0
eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0wNC0xNiAgU3RlcGhl
biBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0g
Rmxha3kgbGF5b3V0IHRlc3QgTGF5b3V0VGVzdHMvc3ZnL2hpeGllL2Vycm9yLzAxMi54bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0
eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWM1MGE4ZTZhNzA0MGRkNDc0YmEzNjkyZjY4MjgyMzg3MzdkNzA4OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxl
SW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUworUEFTUworUEFT
UworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
cmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc5Yzdl
MDBlOTM3OWJmZDYzN2IzOTFkNzFjNWM4Y2NjOTliYTQxZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFu
Y2UuaHRtbApAQCAtMCwwICsxLDEzMiBAQAorIDwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KKy8qIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBS
ZW5kZXJMYXllciAqLworLmNvbnRhaW5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQor
Cisuc3BhbiB7CisgICAgZGlzcGxheTogYm94ZWQtaW5saW5lOworICAgIG1hcmdpbjogMnB4Owor
ICAgIGJvcmRlcjogc29saWQ7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyht
ZXNzYWdlKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhU
TUwgKz0gKG1lc3NhZ2UgKyAiXG4iKTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQWxsQ2hpbGRyZW4o
ZWxlbSkgeworICAgIHdoaWxlIChlbGVtLmZpcnN0Q2hpbGQpCisgICAgICAgIGVsZW0ucmVtb3Zl
Q2hpbGQoZWxlbS5maXJzdENoaWxkKTsKK30KKworZnVuY3Rpb24gY2xlYW5VcCgpIHsKKyAgICBy
ZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpKTsKKyAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0LWNvbnRhaW5lcicpKTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQ29udGFpbmVyTGluZXModGV4
dCkgeworICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoJ1xuJyk7CisgICAgbGluZXMuc3BsaWNl
KDAsIDIpOworICAgIHJldHVybiBsaW5lcy5qb2luKCdcbicpOworfQorCitmdW5jdGlvbiBjaGVj
aygpIHsKKyAgICB2YXIgcmVmQ29udGFpbmVyUmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50
UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5l
cicpKTsKKyAgICB2YXIgcmVmUmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHJlZkNv
bnRhaW5lclJlbmRlclRyZWUpOworCisgICAgdmFyIHRhcmdldENvbnRhaW5lclJlbmRlclRyZWUg
PSBpbnRlcm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2FjdHVhbC1jb250YWluZXInKSk7CisgICAgdmFyIHRhcmdldFJlbmRlclRyZWUgPSByZW1v
dmVDb250YWluZXJMaW5lcyh0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlKTsKKworICAgIGlmICh0
YXJnZXRSZW5kZXJUcmVlID09IHJlZlJlbmRlclRyZWUpCisgICAgICAgIGxvZygiUEFTUyIpOwor
ICAgIGVsc2UgeworICAgICAgICBsb2coIkZBSUwiKTsKKyAgICAgICAgbG9nKCJFeHBlY3RlZDog
Iik7CisgICAgICAgIGxvZyhyZWZSZW5kZXJUcmVlKTsKKyAgICAgICAgbG9nKCJBY3R1YWw6ICIp
OworICAgICAgICBsb2codGFyZ2V0UmVuZGVyVHJlZSk7CisgICAgfQorCit9CisKK2Z1bmN0aW9u
IHRlc3RJbmhlcml0Qm9yZGVyU3R5bGVXaXRoTm9SZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7Cisg
ICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdl
dC5zdHlsZS5ib3JkZXIgPSAnMnB4IHNvbGlkICNmMDAnOworCisgICAgdmFyIHJvb3QgPSBuZXcg
V2ViS2l0U2hhZG93Um9vdCh0YXJnZXQpOworICAgIHZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICBkaXYxLnN0eWxlLmJvcmRlciA9ICdpbmhlcml0JzsKKyAgICBkaXYxLmFwcGVu
ZENoaWxkKGRpdjIpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoZGl2MSk7CisgICAgCisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJn
ZXQpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5u
ZXJIVE1MID0KKyAgICAgICAgIjxkaXYgc3R5bGU9J2JvcmRlcjoycHggc29saWQgI2YwMCc+PGRp
diBzdHlsZT0nYm9yZGVyOjJweCBzb2xpZCAjZjAwJz48ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PiI7
Cit9CisKK2Z1bmN0aW9uIHRlc3RJbmhlcml0Qm9yZGVyU3R5bGVXaXRoUmVzZXRTdHlsZUluaGVy
aXRhbmNlKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICB0YXJnZXQuc3R5bGUuYm9yZGVyID0gJzJweCBzb2xpZCAjZjAwJzsKKworICAgIHZh
ciByb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QodGFyZ2V0KTsKKyAgICByb290LnJlc2V0U3R5
bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICB2YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRpdjEuc3R5bGUuYm9yZGVyID0gJ2luaGVyaXQnOworICAgIGRpdjEuYXBwZW5kQ2hp
bGQoZGl2Mik7CisgICAgcm9vdC5hcHBlbmRDaGlsZChkaXYxKTsKKyAgICAKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhU
TUwgPQorICAgICAgICAiPGRpdiBzdHlsZT0nYm9yZGVyOjJweCBzb2xpZCAjZjAwJz48ZGl2Pjxk
aXY+PC9kaXY+PC9kaXY+PC9kaXY+IjsKK30KKworZnVuY3Rpb24gdGVzdEluaGVyaXRCb3JkZXJT
dHlsZVdob3NlUGFyZW50SW5TaGFkb3dXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQu
c3R5bGUuYm9yZGVyID0gJzJweCBzb2xpZCAjZjAwJzsKKworICAgIHZhciByb290ID0gbmV3IFdl
YktpdFNoYWRvd1Jvb3QodGFyZ2V0KTsKKyAgICByb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9
IHRydWU7CisgICAgdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
ICB2YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdjEuc3R5
bGUuYm9yZGVyID0gJzFweCBzb2xpZCAjZmYwJzsKKyAgICBkaXYyLnN0eWxlLmJvcmRlciA9ICdp
bmhlcml0JzsKKyAgICBkaXYxLmFwcGVuZENoaWxkKGRpdjIpOworICAgIHJvb3QuYXBwZW5kQ2hp
bGQoZGl2MSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250
YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAgICAgIjxkaXYgc3R5bGU9J2Jv
cmRlcjoycHggc29saWQgI2YwMCc+PGRpdiBzdHlsZT0nYm9yZGVyOjFweCBzb2xpZCAjZmYwJz48
ZGl2IHN0eWxlPSdib3JkZXI6MXB4IHNvbGlkICNmZjAnPjwvZGl2PjwvZGl2PjwvZGl2PiI7Cit9
CisKK3ZhciB0ZXN0RnVuY3MgPSBbCisgICAgdGVzdEluaGVyaXRCb3JkZXJTdHlsZVdpdGhOb1Jl
c2V0U3R5bGVJbmhlcml0YW5jZSwKKyAgICB0ZXN0SW5oZXJpdEJvcmRlclN0eWxlV2l0aFJlc2V0
U3R5bGVJbmhlcml0YW5jZSwKKyAgICB0ZXN0SW5oZXJpdEJvcmRlclN0eWxlV2hvc2VQYXJlbnRJ
blNoYWRvd1dpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UKK107CisKK2Z1bmN0aW9uIGRvVGVzdCgp
IHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgY2xlYW5VcCgp
OworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0RnVuY3MubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgdGVzdEZ1bmNzW2ldKCk7CisgICAgICAgIGNoZWNrKCk7CisgICAgICAgIGNsZWFuVXAo
KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCki
PgorCis8ZGl2IGlkPSJhY3R1YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4K
KzxkaXYgaWQ9ImV4cGVjdC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgorPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137623</attachid>
            <date>2012-04-17 15:45:39 -0700</date>
            <delta_ts>2012-04-19 12:33:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120417154538.patch</filename>
            <type>text/plain</type>
            <size>12416</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVkYjFlMTVjODM2MmRh
NDE2NGQ2ZjI1NjBiOTYxNWQ1MjA4N2E0OC4uMDkzZTFhYTRiNGQ4ZTQxZWUzOWI4OGM4ZDY4MDI3
NWFjYTdlMjBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA0LTE3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCisgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbAorCisgICAg
ICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVJlc2V0
U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgIEFkZGVkIG9uZSBuZXcgbWV0aG9kIGZvciBjcmVh
dGluZyBtb2RpZmllZCBtYXRjaGVkUmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVT
ZWxlY3Rvcjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAgTW9kaWZpZWQgdG8gY2FsbCBhcHBs
eVJlc2V0U3R5bGVJbmhlcml0YW5jZSBiZWZvcmUgYXBwbHlNYXRjaGVkUHJvcGVydGllcyBpZiBu
ZWVkZWQuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojpy
ZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAqIGRv
bS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgQWRkZWQgcmVz
ZXRTdHlsZUluaGVyaXRhbmNlIGdldHRlciBhbmQgc2V0dGVyLgorICAgICAgICAqIGRvbS9TaGFk
b3dSb290LmlkbDoKKyAgICAgICAgQWRkZWQgYW4gYXR0cmlidXRlLCByZXNldFN0eWxlSW5oZXJp
dGFuY2UuCisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
cmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgIChUcmVlU2NvcGUpOgorICAgICAgICBB
ZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UncyBkZWZhdWx0IGdldHRlci4KKyAgICAgICAgVGhl
IGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBieSBjbGFzcyBTaGFkb3dSb290J3MgZ2V0dGVyLgor
CiAyMDEyLTA0LTE3ICBMdWtlIE1hY3BoZXJzb24gIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBDbGVhbiB1cCBDU1NQYXJzZXI6OnBhcnNlRmlsbFJlcGVhdCgpLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDVjZTc3ZTE5YTZlYTU1MjNmZGVi
ZjhhMzZhNzE5ZjI2MjRmZGRmYTQuLjE4NjU5NzcyYmUzMzRiNWFjNWNkNzNmNWU0YjU5NDRiZTIz
NjhiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTE2MjIs
NiArMTYyMiw4IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6OnN0
eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kCiAgICAgZWxzZQogICAgICAgICBt
YXRjaEFsbFJ1bGVzKG1hdGNoUmVzdWx0KTsKIAorICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQt
PnRyZWVTY29wZSgpLT5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKSAmJiBtX3BhcmVudE5vZGUgJiYg
ZWxlbWVudC0+dHJlZVNjb3BlKCkgIT0gbV9wYXJlbnROb2RlLT50cmVlU2NvcGUoKSkKKyAgICAg
ICAgYXBwbHlSZXNldFN0eWxlSW5oZXJpdGFuY2UobWF0Y2hSZXN1bHQpOwogICAgIGFwcGx5TWF0
Y2hlZFByb3BlcnRpZXMobWF0Y2hSZXN1bHQpOwogCiAgICAgLy8gQ2xlYW4gdXAgb3VyIHN0eWxl
IG9iamVjdCdzIGRpc3BsYXkgYW5kIHRleHQgZGVjb3JhdGlvbnMgKGFtb25nIG90aGVyIGZpeHVw
cykuCkBAIC0xNjMzLDYgKzE2MzUsMzYgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gQ1NTU3R5
bGVTZWxlY3Rvcjo6c3R5bGVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmQKICAgICBy
ZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlSZXNldFN0eWxlSW5oZXJpdGFuY2UoTWF0Y2hSZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIE1hdGNoZWRQcm9wZXJ0aWVzJiBtYXRjaGVkUHJvcGVydGllcyA9IHJlc3Vs
dC5tYXRjaGVkUHJvcGVydGllc1tpXTsKKyAgICAgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+
IHByb3BlcnRpZXMgPSBtYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzOworICAgICAgICBib29s
IG5lZWRUb1JlcGxhY2UgPSBmYWxzZTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBq
IDwgcHJvcGVydGllcy0+cHJvcGVydHlDb3VudCgpOyArK2opIHsKKyAgICAgICAgICAgIGNvbnN0
IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSA9IHByb3BlcnRpZXMtPnByb3BlcnR5QXQoaik7CisgICAg
ICAgICAgICBpZiAocHJvcGVydHkudmFsdWUoKS0+aXNJbmhlcml0ZWRWYWx1ZSgpKSB7CisgICAg
ICAgICAgICAgICAgbmVlZFRvUmVwbGFjZSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFuZWVkVG9SZXBsYWNlKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+
IHJlcGxhY2VkID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgICAgIGZvciAodW5z
aWduZWQgaiA9IDA7IGogPCBwcm9wZXJ0aWVzLT5wcm9wZXJ0eUNvdW50KCk7ICsraikgeworICAg
ICAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkmIHByb3BlcnR5ID0gcHJvcGVydGllcy0+cHJvcGVy
dHlBdChqKTsKKyAgICAgICAgICAgIGJvb2wgaW1wb3J0YW50ID0gcHJvcGVydGllcy0+cHJvcGVy
dHlJc0ltcG9ydGFudChwcm9wZXJ0eS5pZCgpKTsKKyAgICAgICAgICAgIGlmIChwcm9wZXJ0eS52
YWx1ZSgpLT5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAgICAgICAgICAgICAgcmVwbGFjZWQtPnNl
dFByb3BlcnR5KHByb3BlcnR5LmlkKCksICJpbml0aWFsIiwgaW1wb3J0YW50KTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXBsYWNlZC0+c2V0UHJvcGVydHkocHJvcGVydHku
aWQoKSwgcHJvcGVydHkudmFsdWUoKSwgaW1wb3J0YW50KTsKKyAgICAgICAgfQorICAgICAgICBt
YXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzID0gcmVwbGFjZWQ7CisgICAgfQorfQorCiBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvcktleWZyYW1lKGNv
bnN0IFJlbmRlclN0eWxlKiBlbGVtZW50U3R5bGUsIGNvbnN0IFN0eWxlS2V5ZnJhbWUqIGtleWZy
YW1lLCBLZXlmcmFtZVZhbHVlJiBrZXlmcmFtZVZhbHVlKQogewogICAgIE1hdGNoUmVzdWx0IHJl
c3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCmluZGV4IGI0N2EyNGY3M2Y1
ODUyNTkwMTQ3ZDZiMjY5N2I3OTkxMmUyNmE0MGMuLmQ3MmQyMTdhOGM2ZGY5NGNhOTcwOWFhNDUx
NjQ3NTIxYTE0YjE1YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaApAQCAt
MzQyLDYgKzM0Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYXRjaEF1dGhvclJ1bGVzKE1hdGNo
UmVzdWx0JiwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcyk7CiAgICAgdm9pZCBtYXRjaFVzZXJSdWxl
cyhNYXRjaFJlc3VsdCYsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpOwogICAgIHZvaWQgbWF0Y2hT
Y29wZWRBdXRob3JSdWxlcyhNYXRjaFJlc3VsdCYsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpOwor
ICAgIHZvaWQgYXBwbHlSZXNldFN0eWxlSW5oZXJpdGFuY2UoTWF0Y2hSZXN1bHQmKTsKICAgICB2
b2lkIGNvbGxlY3RNYXRjaGluZ1J1bGVzKFJ1bGVTZXQqLCBpbnQmIGZpcnN0UnVsZUluZGV4LCBp
bnQmIGxhc3RSdWxlSW5kZXgsIGNvbnN0IE1hdGNoT3B0aW9ucyYpOwogICAgIHZvaWQgY29sbGVj
dE1hdGNoaW5nUnVsZXNGb3JSZWdpb24oUnVsZVNldCosIGludCYgZmlyc3RSdWxlSW5kZXgsIGlu
dCYgbGFzdFJ1bGVJbmRleCwgY29uc3QgTWF0Y2hPcHRpb25zJik7CiAgICAgdm9pZCBjb2xsZWN0
TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiosIGludCYgZmlyc3RS
dWxlSW5kZXgsIGludCYgbGFzdFJ1bGVJbmRleCwgY29uc3QgTWF0Y2hPcHRpb25zJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggZTc1MGJjMjJiNDRkYjc1YTdlZTQ5NmJlOTk0MWJi
ZTlmODQyM2VhNS4uYTA2NWQ0ODMxYjAxYzc5MDgyYjRhMzBmMzBlYTczNDQ2MGZjOGM0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNTAsNiArNTAsNyBAQCBTaGFkb3dSb290OjpT
aGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIG1fcHJldigwKQogICAgICwgbV9u
ZXh0KDApCiAgICAgLCBtX2FwcGx5QXV0aG9yU2hlZXRzKGZhbHNlKQorICAgICwgbV9yZXNldFN0
eWxlSW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbygw
KQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CkBAIC0xOTgsNiArMTk5LDE2IEBAIHZvaWQgU2hh
ZG93Um9vdDo6c2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCB2YWx1ZSkKICAgICBtX2FwcGx5QXV0
aG9yU2hlZXRzID0gdmFsdWU7CiB9CiAKK2Jvb2wgU2hhZG93Um9vdDo6cmVzZXRTdHlsZUluaGVy
aXRhbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNldFN0eWxlSW5oZXJpdGFuY2U7Cit9
CisKK3ZvaWQgU2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKGJvb2wgdmFsdWUp
Cit7CisgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB2YWx1ZTsKK30KKwogdm9pZCBTaGFk
b3dSb290OjphdHRhY2goKQogewogICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0b3Ig
PSBkb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRl
eCBlNWIyMjFiNzNhMzM3MWEwNTQ1ZjBjNDk1OTcxNjY4ZGE4MjY5YWE4Li43ZGZkMjQ4MjVmZjFj
ZDQ5ODUyYzM1OGE0ZDBkOTIyZDRmZjliMmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAg
LTcwLDYgKzcwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNoZWV0
cygpIGNvbnN0OwogICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCk7CiAKKyAgICB2
aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRS
ZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CisKICAgICBFbGVtZW50KiBob3N0KCkgY29uc3Qg
eyByZXR1cm4gc2hhZG93SG9zdCgpOyB9CiAgICAgU2hhZG93VHJlZSogdHJlZSgpIGNvbnN0Owog
CkBAIC0xMDUsNiArMTA4LDcgQEAgcHJpdmF0ZToKICAgICBTaGFkb3dSb290KiBtX3ByZXY7CiAg
ICAgU2hhZG93Um9vdCogbV9uZXh0OwogICAgIGJvb2wgbV9hcHBseUF1dGhvclNoZWV0cyA6IDE7
CisgICAgYm9vbCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA6IDE7CiAgICAgSW5zZXJ0aW9uUG9p
bnQqIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaWRsCmluZGV4IDVlZTU2NjMzMjlmNmE3NjA2YTQ2NDE1MTUwNDE2ZWMwODJlNzAwYTIuLmNj
Mjc1OTBmMGFmYTgyM2M5ZTk1MmM3OGMyNjAyOWMwMTczMDc0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5pZGwKQEAgLTM1LDYgKzM1LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRWxlbWVudCBob3N0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RWxlbWVudCBhY3RpdmVFbGVtZW50OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2Vs
ZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gcmVzZXRTdHlsZUlu
aGVyaXRhbmNlOwogCiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10g
RE9NU3RyaW5nIGlubmVySFRNTAogICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAzNzZmYmMzYmY3NDQxYjU5N2RkOWFl
OGE2NDlkZjI1ZTc5MTAxYzM3Li5hODNmZGM4NTRkYWYzZDk0YzgwOGEzMGJhYmM5YzM4ZjBkMGQz
NGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMTQ0LDYgKzE0NCwxMSBAQCBib29s
IFRyZWVTY29wZTo6YXBwbHlBdXRob3JTaGVldHMoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwog
fQogCitib29sIFRyZWVTY29wZTo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgVHJlZVNjb3BlOjphZG9wdElmTmVlZGVkKE5vZGUq
IG5vZGUpCiB7CiAgICAgQVNTRVJUKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCmluZGV4IDE2
Y2Y2NjQ0ZTU2NTc4MjZkM2FjMTg0NDMwOWUzYzRkZTY1YmYwYWIuLmNjOWNkMTVhMGJjODU5YmE5
MWNjYzE3YmVkMjMxZTViMDMwNDU4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKQEAgLTcwLDYg
KzcwLDcgQEAgcHVibGljOgogICAgIEVsZW1lbnQqIGZpbmRBbmNob3IoY29uc3QgU3RyaW5nJiBu
YW1lKTsKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNoZWV0cygpIGNvbnN0OworICAg
IHZpcnR1YWwgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKIAogICAgIC8vIFVz
ZWQgYnkgdGhlIGJhc2ljIERPTSBtdXRhdGlvbiBtZXRob2RzIChlLmcuLCBhcHBlbmRDaGlsZCgp
KS4KICAgICB2b2lkIGFkb3B0SWZOZWVkZWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlkNDdmNmVmMjg1YTZl
YzQ4MWI5Yzk3ODFmNmZmN2E5ZTNkNGY2ZmUuLjliZTY3NjVjMzM3N2E0OTQzYWFhMTZkNGE5OTA5
N2Q4MjM1YzQ1MDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNC0xNyAgVGFrYXNoaSBT
YWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93Um9vdCBuZWVkcyBy
ZXNldFN0eWxlSW5oZXJpdGFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0MDQ4CisKKyAgICAgICAgQWRkZWQgbGF5b3V0IHRlc3RzIGZvciBjaGVj
a2luZyB3aGV0aGVyIHJlc2V0U3R5bGVJbmhlcml0YW5jZSB3b3JrcyBjb3JyZWN0bHkgb3Igbm90
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVy
aXRhbmNlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA0LTE3ICBCZW4gTXVyZG9jaCAg
PGJlbm1AZ29vZ2xlLmNvbT4KIAogICAgICAgICBgbG9jYWxTdG9yYWdlLnNldEl0ZW1gIGNhbiBv
dmVyd3JpdGUgYGxvY2FsU3RvcmFnZWAgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5
bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZjAyZGVkYmUxMzVlNDI2
YzU0YWE1MjkzY2Q4MmJhYTY1YzRiNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJub3JtYWwtaW5oZXJpdC1jYXNlIj4KKzxkaXYgc3R5
bGU9ImJvcmRlcjogMnB4IHNvbGlkICNmMDAiPjxkaXYgc3R5bGU9ImJvcmRlcjogMnB4IHNvbGlk
ICNmMDAiPjxkaXY+PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LWlu
aGVyaXQtY2FzZSI+Cis8ZGl2IHN0eWxlPSJib3JkZXI6IDJweCBzb2xpZCAjMGYwIj48ZGl2Pjxk
aXY+PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImluaGVyaXQtaW4tc2hhZG93
LWNhc2UiPgorPGRpdiBzdHlsZT0iYm9yZGVyOiAycHggc29saWQgIzAwZiI+PGRpdiBzdHlsZT0i
Ym9yZGVyOiAxcHggc29saWQgIzBmZiI+PGRpdiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgIzBm
ZiI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5o
ZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1y
ZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjU3MWZmZjQ2YWI5Y2IyN2Qx
ZGMyOTFiOTYxYjVkNmRhODdiMWZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCkBAIC0w
LDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0ibm9ybWFsLWluaGVyaXQtY2FzZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNl
dC1pbmhlcml0LWNhc2UiPjwvZGl2PgorPGRpdiBpZD0iaW5oZXJpdC1pbi1zaGFkb3ctY2FzZSI+
PC9kaXY+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiByZW5kZXJJbmhlcml0Qm9yZGVyU3R5bGVXaXRo
Tm9SZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5zdHlsZS5ib3JkZXIgPSAnMnB4IHNvbGlk
ICNmMDAnOworCisgICAgdmFyIHJvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdCh0YXJnZXQpOwor
ICAgIHZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIGRp
djIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYxLnN0eWxlLmJvcmRl
ciA9ICdpbmhlcml0JzsKKyAgICBkaXYxLmFwcGVuZENoaWxkKGRpdjIpOworICAgIHJvb3QuYXBw
ZW5kQ2hpbGQoZGl2MSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vcm1h
bC1pbmhlcml0LWNhc2UnKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfTsKKworZnVuY3Rpb24gcmVu
ZGVySW5oZXJpdEJvcmRlclN0eWxlV2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LnN0
eWxlLmJvcmRlciA9ICcycHggc29saWQgIzBmMCc7CisKKyAgICB2YXIgcm9vdCA9IG5ldyBXZWJL
aXRTaGFkb3dSb290KHRhcmdldCk7CisgICAgcm9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0
cnVlOworICAgIHZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAg
dmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYxLnN0eWxl
LmJvcmRlciA9ICdpbmhlcml0JzsKKyAgICBkaXYxLmFwcGVuZENoaWxkKGRpdjIpOworICAgIHJv
b3QuYXBwZW5kQ2hpbGQoZGl2MSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc2V0LWluaGVyaXQtY2FzZScpLmFwcGVuZENoaWxkKHRhcmdldCk7Cit9OworCitmdW5jdGlv
biByZW5kZXJJbmhlcml0Qm9yZGVyU3R5bGVXaG9zZVBhcmVudEluU2hhZG93V2l0aFJlc2V0U3R5
bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgdGFyZ2V0LnN0eWxlLmJvcmRlciA9ICcycHggc29saWQgIzAwZic7CisK
KyAgICB2YXIgcm9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRhcmdldCk7CisgICAgcm9vdC5y
ZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIHZhciBkaXYxID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICBkaXYxLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgIzBmZic7CisgICAg
ZGl2Mi5zdHlsZS5ib3JkZXIgPSAnaW5oZXJpdCc7CisgICAgZGl2MS5hcHBlbmRDaGlsZChkaXYy
KTsKKyAgICByb290LmFwcGVuZENoaWxkKGRpdjEpOworICAgIAorICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpbmhlcml0LWluLXNoYWRvdy1jYXNlJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsK
K307CisKK3JlbmRlckluaGVyaXRCb3JkZXJTdHlsZVdpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpOworcmVuZGVySW5oZXJpdEJvcmRlclN0eWxlV2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
OworcmVuZGVySW5oZXJpdEJvcmRlclN0eWxlV2hvc2VQYXJlbnRJblNoYWRvd1dpdGhSZXNldFN0
eWxlSW5oZXJpdGFuY2UoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137950</attachid>
            <date>2012-04-19 12:33:26 -0700</date>
            <delta_ts>2012-05-01 03:38:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120419123325.patch</filename>
            <type>text/plain</type>
            <size>11039</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNlM2I5MjMzZmU5YWE3
ZDMwMDcxYTk5MTIyMmYzNTYzMTg4MGQ1MS4uNWM2YzMwZGZlYTcyODUzNmNlYTY0M2JlNzQyMzAz
NjhkODU1NDJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA0LTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAg
IElmIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBpcyB0cnVlIGFuZCBwYXJlbnQgaXMgcGxhY2VkIGlu
IGFub3RoZXIgdHJlZSwKKyAgICAgICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50
U3R5bGUuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojpy
ZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAqIGRv
bS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgQWRkZWQgcmVz
ZXRTdHlsZUluaGVyaXRhbmNlIGdldHRlciBhbmQgc2V0dGVyLgorICAgICAgICAqIGRvbS9TaGFk
b3dSb290LmlkbDoKKyAgICAgICAgQWRkZWQgYW4gYXR0cmlidXRlLCByZXNldFN0eWxlSW5oZXJp
dGFuY2UuCisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
cmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgIChUcmVlU2NvcGUpOgorICAgICAgICBB
ZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UncyBkZWZhdWx0IGdldHRlci4KKyAgICAgICAgVGhl
IGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBieSBjbGFzcyBTaGFkb3dSb290J3MgZ2V0dGVyLgor
CiAyMDEyLTA0LTE5ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3IgLyBIZWFwIHNuYXBzaG90czogIk9iamVjdHMgYWxsb2NhdGVk
IC4uLiIgdmlld3MgYXJlIGVtcHR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAKaW5kZXggZGMzYzJjMWFiOWQ3NWNjOTc4ODIxNzNhM2VkYjQzN2FkOTRiYjgwNy4uODJmZmRj
NGI1ZTFkZjQ5NjAwMmUzZjUwNWZlYjYxNTg5MGZkYzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMTU5Niw4ICsxNTk2LDEwIEBAIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50LCBSZW5kCiAgICAgfQogCiAgICAgbV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsK
KyAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGVsZW1lbnQgJiYgZWxlbWVudC0+dHJl
ZVNjb3BlKCktPnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAgIGJvb2wgY3Jvc3NTaGFkb3dC
b3VuZGFyeSA9IGVsZW1lbnQgJiYgbV9wYXJlbnROb2RlICYmIGVsZW1lbnQtPnRyZWVTY29wZSgp
ICE9IG1fcGFyZW50Tm9kZS0+dHJlZVNjb3BlKCk7CiAKLSAgICBpZiAobV9wYXJlbnRTdHlsZSkK
KyAgICBpZiAobV9wYXJlbnRTdHlsZSAmJiAhKHJlc2V0U3R5bGVJbmhlcml0YW5jZSAmJiBjcm9z
c1NoYWRvd0JvdW5kYXJ5KSkKICAgICAgICAgbV9zdHlsZS0+aW5oZXJpdEZyb20obV9wYXJlbnRT
dHlsZSk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBzdHlsZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGU3NTBiYzIyYjQ0ZGI3NWE3ZWU0OTZiZTk5NDFi
YmU5Zjg0MjNlYTUuLmFhNTM0NDY3Y2RlZjE2MTBlZTY1ZGEzM2NhZDlkMzBlMzExNWQxNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgU2hhZG93Um9vdDo6
U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX3ByZXYoMCkKICAgICAsIG1f
bmV4dCgwKQogICAgICwgbV9hcHBseUF1dGhvclNoZWV0cyhmYWxzZSkKKyAgICAsIG1fcmVzZXRT
dHlsZUluaGVyaXRhbmNlKGZhbHNlKQogICAgICwgbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8o
MCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwpAQCAtMTk4LDYgKzE5OSwyMCBAQCB2b2lkIFNo
YWRvd1Jvb3Q6OnNldEFwcGx5QXV0aG9yU2hlZXRzKGJvb2wgdmFsdWUpCiAgICAgbV9hcHBseUF1
dGhvclNoZWV0cyA9IHZhbHVlOwogfQogCitib29sIFNoYWRvd1Jvb3Q6OnJlc2V0U3R5bGVJbmhl
cml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlOwor
fQorCit2b2lkIFNoYWRvd1Jvb3Q6OnNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sIHZhbHVl
KQoreworICAgIGlmICh2YWx1ZSAhPSBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSkgeworICAgICAg
ICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHZhbHVlOworICAgICAgICBpZiAoYXR0YWNoZWQo
KSAmJiB0cmVlKCkpCisgICAgICAgICAgICB0cmVlKCktPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hp
bGRyZW5BbmRTaGFkb3coKTsKKyAgICB9Cit9CisKIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkK
IHsKICAgICBDU1NTdHlsZVNlbGVjdG9yKiBzdHlsZVNlbGVjdG9yID0gZG9jdW1lbnQoKS0+c3R5
bGVTZWxlY3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggZTViMjIxYjczYTMzNzFh
MDU0NWYwYzQ5NTk3MTY2OGRhODI2OWFhOC4uNzkxNmQzNDIxNjVhMjhiMGFiZmFlY2NlODI3YWE2
Nzk2MzQxMGNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC02OSw2ICs2OSw4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNoZWV0cygpIGNvbnN0OwogICAg
IHZvaWQgc2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHJlc2V0
U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0OworICAgIHZvaWQgc2V0UmVzZXRTdHlsZUluaGVyaXRh
bmNlKGJvb2wpOwogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNoYWRvd0hv
c3QoKTsgfQogICAgIFNoYWRvd1RyZWUqIHRyZWUoKSBjb25zdDsKQEAgLTEwNSw2ICsxMDcsNyBA
QCBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsKICAgICBTaGFkb3dSb290KiBtX25l
eHQ7CiAgICAgYm9vbCBtX2FwcGx5QXV0aG9yU2hlZXRzIDogMTsKKyAgICBib29sIG1fcmVzZXRT
dHlsZUluaGVyaXRhbmNlIDogMTsKICAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2lu
dEFzc2lnbmVkVG87CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKaW5kZXggNWVlNTY2
MzMyOWY2YTc2MDZhNDY0MTUxNTA0MTZlYzA4MmU3MDBhMi4uY2MyNzU5MGYwYWZhODIzYzllOTUy
Yzc4YzI2MDI5YzAxNzMwNzQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbApAQCAtMzUs
NiArMzUsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVt
ZW50IGhvc3Q7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGFjdGl2ZUVsZW1l
bnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TZWxlY3Rpb24gc2VsZWN0aW9uOwor
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiByZXNldFN0eWxlSW5oZXJpdGFuY2U7CiAKICAgICAg
ICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1M
CiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuY3BwCmluZGV4IDM3NmZiYzNiZjc0NDFiNTk3ZGQ5YWU4YTY0OWRmMjVlNzkxMDFjMzcu
LmE4M2ZkYzg1NGRhZjNkOTRjODA4YTMwYmFiYzljMzhmMGQwZDM0YjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCkBAIC0xNDQsNiArMTQ0LDExIEBAIGJvb2wgVHJlZVNjb3BlOjphcHBseUF1
dGhvclNoZWV0cygpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgVHJlZVNjb3Bl
OjpyZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCBUcmVlU2NvcGU6OmFkb3B0SWZOZWVkZWQoTm9kZSogbm9kZSkKIHsKICAgICBBU1NF
UlQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKaW5kZXggMTZjZjY2NDRlNTY1NzgyNmQzYWMx
ODQ0MzA5ZTNjNGRlNjViZjBhYi4uY2M5Y2QxNWEwYmM4NTliYTkxY2NjMTdiZWQyMzFlNWIwMzA0
NThhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAg
ICAgRWxlbWVudCogZmluZEFuY2hvcihjb25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAgdmlydHVh
bCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHJlc2V0
U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0OwogCiAgICAgLy8gVXNlZCBieSB0aGUgYmFzaWMgRE9N
IG11dGF0aW9uIG1ldGhvZHMgKGUuZy4sIGFwcGVuZENoaWxkKCkpLgogICAgIHZvaWQgYWRvcHRJ
Zk5lZWRlZChOb2RlKik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTdhYzE3ZGI1MDFjZWMwM2Q4MTkxZjY5NTU5ZmZmOTVl
ZWU4MjVmMS4uM2Y2NTE1OWJlNzk2MjE3NmEyMTA1ODU3MTY0NzM4YjUwYWViYjExYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEyLTA0LTE5ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29v
Z2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5lZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgK
KworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdHMgZm9yIGNoZWNraW5nIHdoZXRoZXIgcmVzZXRT
dHlsZUluaGVyaXRhbmNlIHdvcmtzIGNvcnJlY3RseSBvciBub3QuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisKIDIwMTItMDQtMTkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgQVZGb3VuZGF0aW9uOiBtZWRpYS92aWRlby1zaXplLWludHJpbnNpYy1z
Y2FsZS5odG1sIHRlc3QgZmFpbHMsIGFuZCB0aGUgbW92aWUgaXMgZHJhd24gaW5jb3JyZWN0bHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNl
dFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xYjhlYjEyYTU4MTBiOWQwMTU5YzMwYWE1N2NjMTQ5YjNlZTVjMzQ4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0
U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj48ZGl2IHN0eWxl
PSJjb2xvcjogI2ZlZSI+PGRpdj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBzdHlsZT0i
Y29sb3I6ICNmZWUiPjxkaXYgc3R5bGU9ImNvbG9yOiBpbml0aWFsIj48L2Rpdj48L2Rpdj4KKzxk
aXY+PGRpdiBzdHlsZT0iY29sb3I6ICNmZWUiPjxkaXY+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2
PjxkaXYgc3R5bGU9ImNvbG9yOiAjZmVlIj48ZGl2IHN0eWxlPSJjb2xvcjogaW5pdGlhbCI+PC9k
aXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDk5NDQ3YzQ0NTU2YWYyYThlYTI1YWE1ZWE2MTI2YTYzZTY4OThm
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApAQCAtMCwwICsxLDkxIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gYXNzZXJ0VHJ1ZShp
ZCwgYWN0dWFsKSB7CisgICBpZiAoIWFjdHVhbCkgeworICAgICAgIHRocm93ICJmYWlsdXJlOiIg
KyBpZCArICI6IGFzc2VydFRydWUgZmFpbGVkIjsKKyAgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0
RmFsc2UoaWQsIGFjdHVhbCkgeworICAgaWYgKGFjdHVhbCkgeworICAgICAgIHRocm93ICJmYWls
dXJlOiIgKyBpZCArICAiOiBhc3NlcnRGYWxzZSBmYWlsZWQiOworICAgfQorfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIj48L2Rp
dj4KKzxkaXYgaWQ9Im5vLXJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIj48L2Rpdj4KKzxkaXYgaWQ9
InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLXRydWUtdG8tZmFsc2UiPjwvZGl2PgorPGRpdiBpZD0i
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZmFsc2UtdG8tdHJ1ZSI+PC9kaXY+CisKKzxzY3JpcHQ+
CitmdW5jdGlvbiByZW5kZXJXaXRoTm9SZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5zdHls
ZS5jb2xvciA9ICcjZmVlJzsKKworICAgIHZhciByb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3Qo
dGFyZ2V0KTsKKyAgICBhc3NlcnRGYWxzZShyb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Cisg
ICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHJvb3QuYXBw
ZW5kQ2hpbGQoZGl2KTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQt
c3R5bGUtaW5oZXJpdGFuY2UnKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiBy
ZW5kZXJXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuc3R5bGUuY29sb3IgPSAnI2Zl
ZSc7CisKKyAgICB2YXIgcm9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRhcmdldCk7CisgICAg
YXNzZXJ0RmFsc2Uocm9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHJvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChkaXYpOworICAgIGFzc2VydFRydWUo
cm9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZScpLmFwcGVuZENoaWxkKHRhcmdldCk7
Cit9CisKK2Z1bmN0aW9uIHJlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZy
b21UcnVlVG9GYWxzZSgpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgdGFyZ2V0LnN0eWxlLmNvbG9yID0gJyNmZWUnOworCisgICAgdmFyIHJv
b3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdCh0YXJnZXQpOworICAgIGFzc2VydEZhbHNlKHJvb3Qu
cmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICByb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9
IHRydWU7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
IHJvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBhc3NlcnRUcnVlKHJvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5
bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZScpLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAg
dGFyZ2V0Lm9mZnNldExlZnQ7CisgICAgcm9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxz
ZTsKKyAgICBhc3NlcnRGYWxzZShyb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Cit9CisKK2Z1
bmN0aW9uIHJlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21GYWxzZVRv
VHJ1ZSgpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgdGFyZ2V0LnN0eWxlLmNvbG9yID0gJyNmZWUnOworCisgICAgdmFyIHJvb3QgPSBuZXcg
V2ViS2l0U2hhZG93Um9vdCh0YXJnZXQpOworICAgIGFzc2VydEZhbHNlKHJvb3QucmVzZXRTdHls
ZUluaGVyaXRhbmNlKTsKKyAgICByb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOwor
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICByb290LmFw
cGVuZENoaWxkKGRpdik7CisgICAgYXNzZXJ0RmFsc2Uocm9vdC5yZXNldFN0eWxlSW5oZXJpdGFu
Y2UpOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhl
cml0YW5jZS10cnVlLXRvLWZhbHNlJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKKyAgICB0YXJnZXQu
b2Zmc2V0TGVmdDsKKyAgICByb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAg
YXNzZXJ0VHJ1ZShyb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Cit9CisKK3JlbmRlcldpdGhO
b1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aFJlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpOworcmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbVRydWVUb0Zh
bHNlKCk7CityZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tRmFsc2VU
b1RydWUoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139607</attachid>
            <date>2012-05-01 03:38:18 -0700</date>
            <delta_ts>2012-05-01 04:42:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120501193816.patch</filename>
            <type>text/plain</type>
            <size>13495</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg3NzQ0MGUwYTdjYjM3
NjM4ZjVhYzBjZDQ4NzJjYTk3YmIzZDUyZS4uOGQ3MTQ0OTk0OGI0ZmYyMzkyZmViN2Y0NDM0NDk3
YWE0MjAxNzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA1LTAxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIElmIHJl
c2V0U3R5bGVJbmhlcml0YW5jZSBpcyB0cnVlIGFuZCBwYXJlbnQgaXMgcGxhY2VkIGluIGFub3Ro
ZXIgdHJlZSwKKyAgICAgICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50U3R5bGUu
IEhvd2V2ZXIgYXMgZGVmYXVsdFN0eWxlIGRvZXNuJ3QKKyAgICAgICAgaGF2ZSBkZWZhdWx0IGZv
bnQgaW5mbywgaW52b2tlIGFwcGx5UHJvcGVydHkgZm9yIGluaXRpYWxpemluZyBmb250CisgICAg
ICAgIHByb3BlcnR5LgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Um9vdDo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAg
ICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgIEFk
ZGVkIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBnZXR0ZXIgYW5kIHNldHRlci4KKyAgICAgICAgKiBk
b20vU2hhZG93Um9vdC5pZGw6CisgICAgICAgIEFkZGVkIGFuIGF0dHJpYnV0ZSwgcmVzZXRTdHls
ZUluaGVyaXRhbmNlLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VHJlZVNjb3BlOjpyZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5oOgorICAgICAgICAoVHJlZVNjb3BlKToKKyAg
ICAgICAgQWRkZWQgcmVzZXRTdHlsZUluaGVyaXRhbmNlJ3MgZGVmYXVsdCBnZXR0ZXIuCisgICAg
ICAgIFRoZSBnZXR0ZXIgd2lsbCBiZSBvdmVycmlkZWQgYnkgY2xhc3MgU2hhZG93Um9vdCdzIGdl
dHRlci4KKwogMjAxMi0wNS0wMSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBFYXJseS1vdXQgZm9yIHN1YnRyYWN0aW5nIGEgbm9uLWludGVyc2VjdGluZyBy
ZWdpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA3ODQ4OGEzZGRhMGJl
MDhiNGQ2ODA2NWRjOTM1Nzk5YzU5MTJhZDc5Li41MDZhNTk1OTRjZjNiMzU2ZTUyYWUwMTQyOGFm
OTM5MjBlMGY3YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC00OSw2
ICs0OSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNTU1RpbWlu
Z0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJD
U1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbGN1
bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgpAQCAtMTU5OSw4ICsxNjAw
LDEwIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxl
bWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJTCiAgICAgfQogCiAgICAgbV9zdHlsZSA9IFJl
bmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGVs
ZW1lbnQgJiYgZWxlbWVudC0+dHJlZVNjb3BlKCktPnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOwor
ICAgIGJvb2wgY3Jvc3NTaGFkb3dCb3VuZGFyeSA9IGVsZW1lbnQgJiYgbV9wYXJlbnROb2RlICYm
IGVsZW1lbnQtPnRyZWVTY29wZSgpICE9IG1fcGFyZW50Tm9kZS0+dHJlZVNjb3BlKCk7CiAKLSAg
ICBpZiAobV9wYXJlbnRTdHlsZSkKKyAgICBpZiAobV9wYXJlbnRTdHlsZSAmJiAhKHJlc2V0U3R5
bGVJbmhlcml0YW5jZSAmJiBjcm9zc1NoYWRvd0JvdW5kYXJ5KSkKICAgICAgICAgbV9zdHlsZS0+
aW5oZXJpdEZyb20obV9wYXJlbnRTdHlsZSk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fcGFyZW50
U3R5bGUgPSBzdHlsZSgpOwpAQCAtMTYyNyw2ICsxNjMwLDExIEBAIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBS
ZW5kZXJTCiAKICAgICBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVzdWx0KTsKIAorICAg
IGlmIChyZXNldFN0eWxlSW5oZXJpdGFuY2UgJiYgY3Jvc3NTaGFkb3dCb3VuZGFyeSkgeworICAg
ICAgICBhcHBseVByb3BlcnR5KENTU1Byb3BlcnR5Rm9udCwgY3NzVmFsdWVQb29sKCkuY3JlYXRl
RXhwbGljaXRJbml0aWFsVmFsdWUoKS5nZXQoKSk7CisgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51
cGRhdGUoZm9udFNlbGVjdG9yKCkpOworICAgIH0KKwogICAgIC8vIENsZWFuIHVwIG91ciBzdHls
ZSBvYmplY3QncyBkaXNwbGF5IGFuZCB0ZXh0IGRlY29yYXRpb25zIChhbW9uZyBvdGhlciBmaXh1
cHMpLgogICAgIGFkanVzdFJlbmRlclN0eWxlKHN0eWxlKCksIG1fcGFyZW50U3R5bGUsIGVsZW1l
bnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggOGMxZDhiMmQ4YzY0OTdlZTBk
NGQxOTBjM2Y3YTY0MjZiNjY0NzczOC4uMGYzZmY0NTZmNjQxNTAyYTFhZDc3NmJhNzRiZmI2NjQ3
OTE2MWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNTAsNiArNTAsNyBAQCBT
aGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIG1fcHJldigw
KQogICAgICwgbV9uZXh0KDApCiAgICAgLCBtX2FwcGx5QXV0aG9yU2hlZXRzKGZhbHNlKQorICAg
ICwgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX2luc2VydGlvblBvaW50
QXNzaWduZWRUbygwKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CkBAIC0xOTgsNiArMTk5LDIw
IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCB2YWx1ZSkKICAg
ICBtX2FwcGx5QXV0aG9yU2hlZXRzID0gdmFsdWU7CiB9CiAKK2Jvb2wgU2hhZG93Um9vdDo6cmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2U7Cit9CisKK3ZvaWQgU2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNl
KGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlICE9IG1fcmVzZXRTdHlsZUluaGVyaXRhbmNl
KSB7CisgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdmFsdWU7CisgICAgICAgIGlm
IChhdHRhY2hlZCgpICYmIHRyZWUoKSkKKyAgICAgICAgICAgIHRyZWUoKS0+c2V0TmVlZHNSZWF0
dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIH0KK30KKwogdm9pZCBTaGFkb3dSb290
OjphdHRhY2goKQogewogICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSBkb2N1bWVu
dCgpLT5zdHlsZVJlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBlNWIyMjFi
NzNhMzM3MWEwNTQ1ZjBjNDk1OTcxNjY4ZGE4MjY5YWE4Li40NzFjMGZkNGZhNjE5Yjc1NGQwZjFm
M2EzMDVjNzI5YTBkNTA4ODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTY5LDYgKzY5
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsKKyAgICB2aXJ0dWFsIGJv
b2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdm9pZCBzZXRS
ZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCkgT1ZFUlJJREU7CiAKICAgICBFbGVtZW50KiBob3N0
KCkgY29uc3QgeyByZXR1cm4gc2hhZG93SG9zdCgpOyB9CiAgICAgU2hhZG93VHJlZSogdHJlZSgp
IGNvbnN0OwpAQCAtMTA1LDYgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdCogbV9w
cmV2OwogICAgIFNoYWRvd1Jvb3QqIG1fbmV4dDsKICAgICBib29sIG1fYXBwbHlBdXRob3JTaGVl
dHMgOiAxOworICAgIGJvb2wgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgOiAxOwogICAgIEluc2Vy
dGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmlkbAppbmRleCA1ZWU1NjYzMzI5ZjZhNzYwNmE0NjQxNTE1MDQxNmVjMDgyZTcw
MGEyLi5jYzI3NTkwZjBhZmE4MjNjOWU5NTJjNzhjMjYwMjljMDE3MzA3NDgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNSw2ICszNSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHJlc2V0
U3R5bGVJbmhlcml0YW5jZTsKIAogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggMzc2ZmJjM2JmNzQ0MWI1
OTdkZDlhZThhNjQ5ZGYyNWU3OTEwMWMzNy4uYTgzZmRjODU0ZGFmM2Q5NGM4MDhhMzBiYWJjOWMz
OGYwZDBkMzRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTE0NCw2ICsxNDQsMTEg
QEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRl
ZChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApp
bmRleCAxNmNmNjY0NGU1NjU3ODI2ZDNhYzE4NDQzMDllM2M0ZGU2NWJmMGFiLi5jYzljZDE1YTBi
Yzg1OWJhOTFjY2MxN2JlZDIzMWU1YjAzMDQ1OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCkBA
IC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBmaW5kQW5jaG9yKGNvbnN0IFN0
cmluZyYgbmFtZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAKICAg
ICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5k
Q2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NTY4MjZm
NDFhN2VhMzJmM2M1NTNiNWMzMjViNDc5ODg5NTlhNmI4Li5iODRhNmVmMWJkNGMwZDJlZTBlMTVm
YWUxZDUzNDNmMTE1YTNkYjY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMDEgIFRh
a2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvd1Jvb3Qg
bmVlZHMgcmVzZXRTdHlsZUluaGVyaXRhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDA0OAorCisgICAgICAgIEFkZGVkIGxheW91dCB0ZXN0cyBm
b3IgY2hlY2tpbmcgd2hldGhlciByZXNldFN0eWxlSW5oZXJpdGFuY2Ugd29ya3MgY29ycmVjdGx5
IG9yIG5vdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5
bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0wMSAgS2VudCBU
YW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBUZXN0IGV4
cGVjdGF0aW9uIHVwZGF0ZSBmb3IgcjExNTcxMy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxl
SW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmVmNmM4NWJhYTljNzhiNjJh
MTcwYjYwZWYwMTBiMmIwOTBlNzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KK2Rpdi5yZXNldFRlc3QgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmOworICBib3Jk
ZXI6IHNvbGlkOworICBtYXJnaW46IDRweDsKKyAgcGFkZGluZzogMTZweDsKKyAgY29sb3I6ICNm
ZWU7CisgIGZvbnQtZmFtaWx5OiBTZXJpZjsKKyAgZm9udC1zaXplOiAyNHB4OworICBmb250LXN0
eWxlOiBpdGFsaWM7CisgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsKKyAgZm9udC13ZWlnaHQ6
IGJvbGQ7CisgIGxldHRlci1zcGFjaW5nOiAycHg7CisgIGxpbmUtaGVpZ2h0OiAyMDAlOworICB0
ZXh0LWFsaWduOiBzdGFydDsKKyAgdGV4dC1pbmRlbnQ6IDUwcHg7CisgIHRleHQtdHJhbnNmb3Jt
OiB1cHBlcmNhc2U7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgIHdvcmQtc3BhY2luZzogMzBw
eDsKK30KK2Rpdi5pbml0aWFsVmFsdWVzIHsKKyAgY29sb3I6IGluaXRpYWw7CisgIGZvbnQtZmFt
aWx5OiBpbml0aWFsOworICBmb250LXNpemU6IGluaXRpYWw7CisgIGZvbnQtc3R5bGU6IGluaXRp
YWw7CisgIGZvbnQtdmFyaWFudDogaW5pdGlhbDsKKyAgZm9udC13ZWlnaHQ6IGluaXRpYWw7Cisg
IGxldHRlci1zcGFjaW5nOiBpbml0aWFsOworICBsaW5lLWhlaWdodDogaW5pdGlhbDsKKyAgdGV4
dC1hbGlnbjogaW5pdGlhbDsKKyAgdGV4dC1pbmRlbnQ6IGluaXRpYWw7CisgIHRleHQtdHJhbnNm
b3JtOiBpbml0aWFsOworICB3aGl0ZS1zcGFjZTogaW5pdGlhbDsKKyAgd29yZC1zcGFjaW5nOiBp
bml0aWFsOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj48ZGl2IGNsYXNzPSJy
ZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48L2Rpdj48L2Rp
dj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48L2Rpdj48L2Rp
dj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48L2Rpdj48L2Rp
dj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0aWFsVmFsdWVz
Ij50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRh
bmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRT
dHlsZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjhkNzI0ZGIwY2YxNmE0NDk2MmJiZDdm
ZDEzZGNhN2RhOGNlMzI5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApAQCAtMCwwICsx
LDEwOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LnJl
c2V0VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjogc29saWQ7Cisg
IG1hcmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsKKyAgZm9udC1m
YW1pbHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsK
KyAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9sZDsKKyAgbGV0
dGVyLXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQtYWxpZ246IHN0
YXJ0OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsK
KyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4OworfQorPC9zdHls
ZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBhc3NlcnRUcnVlKGlkLCBhY3R1YWwpIHsKKyAgIGlmICgh
YWN0dWFsKSB7CisgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgIjogYXNzZXJ0VHJ1ZSBm
YWlsZWQiOworICAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRGYWxzZShpZCwgYWN0dWFsKSB7Cisg
ICBpZiAoYWN0dWFsKSB7CisgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgICI6IGFzc2Vy
dEZhbHNlIGZhaWxlZCI7CisgICB9Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJyZXNl
dC1zdHlsZS1pbmhlcml0YW5jZSI+PC9kaXY+Cis8ZGl2IGlkPSJuby1yZXNldC1zdHlsZS1pbmhl
cml0YW5jZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS10cnVlLXRv
LWZhbHNlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZhbHNlLXRv
LXRydWUiPjwvZGl2PgorCis8c2NyaXB0PgorZnVuY3Rpb24gcmVuZGVyV2l0aE5vUmVzZXRTdHls
ZUluaGVyaXRhbmNlKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIg
c2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRhcmdldCk7CisgICAgYXNzZXJ0RmFs
c2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRv
d1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9
ICc8ZGl2PnRleHQ8L2Rpdj4nOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdu
by1yZXNldC1zdHlsZS1pbmhlcml0YW5jZScpLmFwcGVuZENoaWxkKHRhcmdldCk7Cit9CisKK2Z1
bmN0aW9uIHJlbmRlcldpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIHRhcmdl
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5jbGFzc05hbWUg
PSAncmVzZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jv
b3QodGFyZ2V0KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFu
Y2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOwor
ICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0
U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZSBhcyBleHBsaWNpdGx5IHNldCcsIHNoYWRv
d1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwor
fQorCitmdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9t
VHJ1ZVRvRmFsc2UoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICAgIHRhcmdldC5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBz
aGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QodGFyZ2V0KTsKKyAgICBhc3NlcnRGYWxz
ZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93
Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8
L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUg
dHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxz
ZScpLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAgdGFyZ2V0Lm9mZnNldExlZnQ7CisgICAgc2hh
ZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsKKyAgICBhc3NlcnRGYWxzZSgn
cmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlKTsKK30KKworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5naW5nUmVzZXRT
dHlsZUluaGVyaXRhbmNlRnJvbUZhbHNlVG9UcnVlKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ3Jlc2V0
VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRhcmdl
dCk7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3Vs
ZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFk
b3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIHNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gJzxkaXY+dGV4dDwvZGl2Pic7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVz
ZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHls
ZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQt
c3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZScpLmFwcGVuZENoaWxkKHRhcmdldCk7Cisg
ICAgdGFyZ2V0Lm9mZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFu
Y2UgPSB0cnVlOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQg
YmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKK30KKworcmVuZGVy
V2l0aE5vUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CityZW5kZXJXaXRoUmVzZXRTdHlsZUluaGVy
aXRhbmNlKCk7CityZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tVHJ1
ZVRvRmFsc2UoKTsKK3JlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21G
YWxzZVRvVHJ1ZSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139609</attachid>
            <date>2012-05-01 04:43:03 -0700</date>
            <delta_ts>2012-05-14 18:58:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120501204301.patch</filename>
            <type>text/plain</type>
            <size>13504</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg3NzQ0MGUwYTdjYjM3
NjM4ZjVhYzBjZDQ4NzJjYTk3YmIzZDUyZS4uOGQ3MTQ0OTk0OGI0ZmYyMzkyZmViN2Y0NDM0NDk3
YWE0MjAxNzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA1LTAxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIElmIHJl
c2V0U3R5bGVJbmhlcml0YW5jZSBpcyB0cnVlIGFuZCBwYXJlbnQgaXMgcGxhY2VkIGluIGFub3Ro
ZXIgdHJlZSwKKyAgICAgICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50U3R5bGUu
IEhvd2V2ZXIgYXMgZGVmYXVsdFN0eWxlIGRvZXNuJ3QKKyAgICAgICAgaGF2ZSBkZWZhdWx0IGZv
bnQgaW5mbywgaW52b2tlIGFwcGx5UHJvcGVydHkgZm9yIGluaXRpYWxpemluZyBmb250CisgICAg
ICAgIHByb3BlcnR5LgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Um9vdDo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAg
ICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgIEFk
ZGVkIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBnZXR0ZXIgYW5kIHNldHRlci4KKyAgICAgICAgKiBk
b20vU2hhZG93Um9vdC5pZGw6CisgICAgICAgIEFkZGVkIGFuIGF0dHJpYnV0ZSwgcmVzZXRTdHls
ZUluaGVyaXRhbmNlLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VHJlZVNjb3BlOjpyZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5oOgorICAgICAgICAoVHJlZVNjb3BlKToKKyAg
ICAgICAgQWRkZWQgcmVzZXRTdHlsZUluaGVyaXRhbmNlJ3MgZGVmYXVsdCBnZXR0ZXIuCisgICAg
ICAgIFRoZSBnZXR0ZXIgd2lsbCBiZSBvdmVycmlkZWQgYnkgY2xhc3MgU2hhZG93Um9vdCdzIGdl
dHRlci4KKwogMjAxMi0wNS0wMSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBFYXJseS1vdXQgZm9yIHN1YnRyYWN0aW5nIGEgbm9uLWludGVyc2VjdGluZyBy
ZWdpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA3ODQ4OGEzZGRhMGJl
MDhiNGQ2ODA2NWRjOTM1Nzk5YzU5MTJhZDc5Li41MDZhNTk1OTRjZjNiMzU2ZTUyYWUwMTQyOGFm
OTM5MjBlMGY3YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC00OSw2
ICs0OSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNTU1RpbWlu
Z0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJD
U1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbGN1
bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgpAQCAtMTU5OSw4ICsxNjAw
LDEwIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxl
bWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJTCiAgICAgfQogCiAgICAgbV9zdHlsZSA9IFJl
bmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGVs
ZW1lbnQgJiYgZWxlbWVudC0+dHJlZVNjb3BlKCktPnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOwor
ICAgIGJvb2wgY3Jvc3NTaGFkb3dCb3VuZGFyeSA9IGVsZW1lbnQgJiYgbV9wYXJlbnROb2RlICYm
IGVsZW1lbnQtPnRyZWVTY29wZSgpICE9IG1fcGFyZW50Tm9kZS0+dHJlZVNjb3BlKCk7CiAKLSAg
ICBpZiAobV9wYXJlbnRTdHlsZSkKKyAgICBpZiAobV9wYXJlbnRTdHlsZSAmJiAhKHJlc2V0U3R5
bGVJbmhlcml0YW5jZSAmJiBjcm9zc1NoYWRvd0JvdW5kYXJ5KSkKICAgICAgICAgbV9zdHlsZS0+
aW5oZXJpdEZyb20obV9wYXJlbnRTdHlsZSk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fcGFyZW50
U3R5bGUgPSBzdHlsZSgpOwpAQCAtMTYyNyw2ICsxNjMwLDExIEBAIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBS
ZW5kZXJTCiAKICAgICBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVzdWx0KTsKIAorICAg
IGlmIChyZXNldFN0eWxlSW5oZXJpdGFuY2UgJiYgY3Jvc3NTaGFkb3dCb3VuZGFyeSkgeworICAg
ICAgICBhcHBseVByb3BlcnR5KENTU1Byb3BlcnR5Rm9udCwgY3NzVmFsdWVQb29sKCkuY3JlYXRl
RXhwbGljaXRJbml0aWFsVmFsdWUoKS5nZXQoKSk7CisgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51
cGRhdGUoZm9udFNlbGVjdG9yKCkpOworICAgIH0KKwogICAgIC8vIENsZWFuIHVwIG91ciBzdHls
ZSBvYmplY3QncyBkaXNwbGF5IGFuZCB0ZXh0IGRlY29yYXRpb25zIChhbW9uZyBvdGhlciBmaXh1
cHMpLgogICAgIGFkanVzdFJlbmRlclN0eWxlKHN0eWxlKCksIG1fcGFyZW50U3R5bGUsIGVsZW1l
bnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggOGMxZDhiMmQ4YzY0OTdlZTBk
NGQxOTBjM2Y3YTY0MjZiNjY0NzczOC4uMGYzZmY0NTZmNjQxNTAyYTFhZDc3NmJhNzRiZmI2NjQ3
OTE2MWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNTAsNiArNTAsNyBAQCBT
aGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIG1fcHJldigw
KQogICAgICwgbV9uZXh0KDApCiAgICAgLCBtX2FwcGx5QXV0aG9yU2hlZXRzKGZhbHNlKQorICAg
ICwgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX2luc2VydGlvblBvaW50
QXNzaWduZWRUbygwKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CkBAIC0xOTgsNiArMTk5LDIw
IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCB2YWx1ZSkKICAg
ICBtX2FwcGx5QXV0aG9yU2hlZXRzID0gdmFsdWU7CiB9CiAKK2Jvb2wgU2hhZG93Um9vdDo6cmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2U7Cit9CisKK3ZvaWQgU2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNl
KGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlICE9IG1fcmVzZXRTdHlsZUluaGVyaXRhbmNl
KSB7CisgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdmFsdWU7CisgICAgICAgIGlm
IChhdHRhY2hlZCgpICYmIHRyZWUoKSkKKyAgICAgICAgICAgIHRyZWUoKS0+c2V0TmVlZHNSZWF0
dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIH0KK30KKwogdm9pZCBTaGFkb3dSb290
OjphdHRhY2goKQogewogICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSBkb2N1bWVu
dCgpLT5zdHlsZVJlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBlNWIyMjFi
NzNhMzM3MWEwNTQ1ZjBjNDk1OTcxNjY4ZGE4MjY5YWE4Li42MDk0YWUyYjhhNzQ1ZTBiYTJmOTRj
MWUxYTA2ZDY3YTAwZWExN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTY5LDYgKzY5
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsKKyAgICB2aXJ0dWFsIGJv
b2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdm9pZCBzZXRS
ZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CiAKICAgICBFbGVtZW50KiBob3N0KCkgY29uc3Qg
eyByZXR1cm4gc2hhZG93SG9zdCgpOyB9CiAgICAgU2hhZG93VHJlZSogdHJlZSgpIGNvbnN0OwpA
QCAtMTA1LDYgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAg
IFNoYWRvd1Jvb3QqIG1fbmV4dDsKICAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHMgOiAxOwor
ICAgIGJvb2wgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgOiAxOwogICAgIEluc2VydGlvblBvaW50
KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmlkbAppbmRleCA1ZWU1NjYzMzI5ZjZhNzYwNmE0NjQxNTE1MDQxNmVjMDgyZTcwMGEyLi5jYzI3
NTkwZjBhZmE4MjNjOWU5NTJjNzhjMjYwMjljMDE3MzA3NDgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaWRsCkBAIC0zNSw2ICszNSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVs
ZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVNlbGVj
dGlvbiBzZWxlY3Rpb247CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHJlc2V0U3R5bGVJbmhl
cml0YW5jZTsKIAogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERP
TVN0cmluZyBpbm5lckhUTUwKICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggMzc2ZmJjM2JmNzQ0MWI1OTdkZDlhZThh
NjQ5ZGYyNWU3OTEwMWMzNy4uYTgzZmRjODU0ZGFmM2Q5NGM4MDhhMzBiYWJjOWMzOGYwZDBkMzRi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTE0NCw2ICsxNDQsMTEgQEAgYm9vbCBU
cmVlU2NvcGU6OmFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorYm9vbCBUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBu
b2RlKQogewogICAgIEFTU0VSVCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCAxNmNm
NjY0NGU1NjU3ODI2ZDNhYzE4NDQzMDllM2M0ZGU2NWJmMGFiLi5jYzljZDE1YTBiYzg1OWJhOTFj
Y2MxN2JlZDIzMWU1YjAzMDQ1OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC03MCw2ICs3
MCw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBmaW5kQW5jaG9yKGNvbnN0IFN0cmluZyYgbmFt
ZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAKICAgICAvLyBVc2Vk
IGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSku
CiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MGI1MWFhZmQzYTI1YjBl
YzQyNjc0OWIzNWQyODllYzFlZjgxYTlhLi4xNDFiMDNmMTI5ZjNjYmM5YzkzOWY5NTU0YWQ1Y2Nm
YTFlNWFlNjgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMDEgIFRha2FzaGkgU2Fr
YW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvd1Jvb3QgbmVlZHMgcmVz
ZXRTdHlsZUluaGVyaXRhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NDA0OAorCisgICAgICAgIEFkZGVkIGxheW91dCB0ZXN0cyBmb3IgY2hlY2tp
bmcgd2hldGhlciByZXNldFN0eWxlSW5oZXJpdGFuY2Ugd29ya3MgY29ycmVjdGx5IG9yIG5vdC4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0
YW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0wMSAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZWJhc2VsaW5lIGZvciBy
ZWNlbnQgY2hhbmdlcyBhYm91dCA8aW5wdXQgdHlwZT1kYXRlPi4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1y
ZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmVmNmM4NWJh
YTljNzhiNjJhMTcwYjYwZWYwMTBiMmIwOTBlNzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK2Rpdi5yZXNldFRlc3QgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVm
OworICBib3JkZXI6IHNvbGlkOworICBtYXJnaW46IDRweDsKKyAgcGFkZGluZzogMTZweDsKKyAg
Y29sb3I6ICNmZWU7CisgIGZvbnQtZmFtaWx5OiBTZXJpZjsKKyAgZm9udC1zaXplOiAyNHB4Owor
ICBmb250LXN0eWxlOiBpdGFsaWM7CisgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsKKyAgZm9u
dC13ZWlnaHQ6IGJvbGQ7CisgIGxldHRlci1zcGFjaW5nOiAycHg7CisgIGxpbmUtaGVpZ2h0OiAy
MDAlOworICB0ZXh0LWFsaWduOiBzdGFydDsKKyAgdGV4dC1pbmRlbnQ6IDUwcHg7CisgIHRleHQt
dHJhbnNmb3JtOiB1cHBlcmNhc2U7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgIHdvcmQtc3Bh
Y2luZzogMzBweDsKK30KK2Rpdi5pbml0aWFsVmFsdWVzIHsKKyAgY29sb3I6IGluaXRpYWw7Cisg
IGZvbnQtZmFtaWx5OiBpbml0aWFsOworICBmb250LXNpemU6IGluaXRpYWw7CisgIGZvbnQtc3R5
bGU6IGluaXRpYWw7CisgIGZvbnQtdmFyaWFudDogaW5pdGlhbDsKKyAgZm9udC13ZWlnaHQ6IGlu
aXRpYWw7CisgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsOworICBsaW5lLWhlaWdodDogaW5pdGlh
bDsKKyAgdGV4dC1hbGlnbjogaW5pdGlhbDsKKyAgdGV4dC1pbmRlbnQ6IGluaXRpYWw7CisgIHRl
eHQtdHJhbnNmb3JtOiBpbml0aWFsOworICB3aGl0ZS1zcGFjZTogaW5pdGlhbDsKKyAgd29yZC1z
cGFjaW5nOiBpbml0aWFsOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj48ZGl2
IGNsYXNzPSJyZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48
L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48
L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48
L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0
aWFsVmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHls
ZUluaGVyaXRhbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjhkNzI0ZGIwY2YxNmE0
NDk2MmJiZDdmZDEzZGNhN2RhOGNlMzI5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApA
QCAtMCwwICsxLDEwOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorZGl2LnJlc2V0VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjog
c29saWQ7CisgIG1hcmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsK
KyAgZm9udC1mYW1pbHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6
IGl0YWxpYzsKKyAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9s
ZDsKKyAgbGV0dGVyLXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQt
YWxpZ246IHN0YXJ0OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZTsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4Owor
fQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBhc3NlcnRUcnVlKGlkLCBhY3R1YWwpIHsK
KyAgIGlmICghYWN0dWFsKSB7CisgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgIjogYXNz
ZXJ0VHJ1ZSBmYWlsZWQiOworICAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRGYWxzZShpZCwgYWN0
dWFsKSB7CisgICBpZiAoYWN0dWFsKSB7CisgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsg
ICI6IGFzc2VydEZhbHNlIGZhaWxlZCI7CisgICB9Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZSI+PC9kaXY+Cis8ZGl2IGlkPSJuby1yZXNldC1z
dHlsZS1pbmhlcml0YW5jZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5j
ZS10cnVlLXRvLWZhbHNlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNl
LWZhbHNlLXRvLXRydWUiPjwvZGl2PgorCis8c2NyaXB0PgorZnVuY3Rpb24gcmVuZGVyV2l0aE5v
UmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisK
KyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRhcmdldCk7CisgICAg
YXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxz
ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290Lmlu
bmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZScpLmFwcGVuZENoaWxkKHRhcmdldCk7
Cit9CisKK2Z1bmN0aW9uIHJlbmRlcldpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAg
dmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5j
bGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QodGFyZ2V0KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxl
SW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJp
dGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAg
ICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOworICAgIGFzc2VydFRy
dWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZSBhcyBleHBsaWNpdGx5IHNl
dCcsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKS5hcHBlbmRDaGlsZCh0
YXJnZXQpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJp
dGFuY2VGcm9tVHJ1ZVRvRmFsc2UoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKwor
ICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QodGFyZ2V0KTsKKyAgICBh
c3NlcnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNl
Jywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVz
ZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8
ZGl2PnRleHQ8L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBz
aG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1
ZS10by1mYWxzZScpLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAgdGFyZ2V0Lm9mZnNldExlZnQ7
CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsKKyAgICBhc3Nl
cnRGYWxzZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jv
b3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKK30KKworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5n
aW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbUZhbHNlVG9UcnVlKCkgeworICAgIHZhciB0YXJn
ZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuY2xhc3NOYW1l
ID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dS
b290KHRhcmdldCk7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRh
bmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsK
KyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIHNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+dGV4dDwvZGl2Pic7CisgICAgYXNzZXJ0RmFsc2UoJ2Rl
ZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3Qu
cmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZScpLmFwcGVuZENoaWxkKHRh
cmdldCk7CisgICAgdGFyZ2V0Lm9mZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxl
SW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5j
ZSBzaG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKK30K
KworcmVuZGVyV2l0aE5vUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CityZW5kZXJXaXRoUmVzZXRT
dHlsZUluaGVyaXRhbmNlKCk7CityZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFu
Y2VGcm9tVHJ1ZVRvRmFsc2UoKTsKK3JlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0
YW5jZUZyb21GYWxzZVRvVHJ1ZSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141840</attachid>
            <date>2012-05-14 18:58:50 -0700</date>
            <delta_ts>2012-05-16 02:16:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120515105848.patch</filename>
            <type>text/plain</type>
            <size>20252</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjIwNzI4ZTIxYjNlMjlj
M2NmYTUzNGMwNzYwODhkMjEwZDczZTg1OC4uN2RkMWYzNWU3NzI5ODVjMzBjZjNlMmJhYmUyMTI2
YzU0YjYzNzIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA1LTE0ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6Cisg
ICAgICAgIElmIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBpcyB0cnVlIGFuZCBwYXJlbnQgaXMgcGxh
Y2VkIGluIGFub3RoZXIgdHJlZSwKKyAgICAgICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2Yg
cGFyZW50U3R5bGUuIEhvd2V2ZXIgYXMgZGVmYXVsdFN0eWxlIGRvZXNuJ3QKKyAgICAgICAgaGF2
ZSBkZWZhdWx0IGZvbnQgaW5mbywgaW52b2tlIGFwcGx5UHJvcGVydHkgZm9yIGluaXRpYWxpemlu
ZyBmb250CisgICAgICAgIHByb3BlcnR5LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93
Qm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAg
ICAgICAgKE5vZGUpOgorICAgICAgICBBZGRlZCBhIG5ldyBtZXRob2Q6IHBhcmVudE5vZGVGb3JS
ZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91bmRhcnkKKyAgICAgICAgaW4gdGhlIHNhbWUgbWFu
bmVyIGFzIHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZS4KKyAgICAgICAgKiBkb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0Nv
bnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgTW9kaWZpZWQgdG8gQ2FsY3Vs
YXRlIHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91bmRhcnkKKyAgICAg
ICAgd2hpbGUgY2FsY3VsYXRpbmcgcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlLgorICAg
ICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoTm9kZVJlbmRlcmlu
Z0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnBhcmVu
dE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91bmRhcnkpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIEFkZGVkIHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hh
ZG93Qm91bmRhcnkgbWV0aG9kIGFuZCBtZW1iZXIKKyAgICAgICAgdmFyaWFibGU6IG1fcGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlQXRTaGFkb3dCb3VuZGFyeS4KKyAgICAgICAgKiBkb20v
U2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpzZXRSZXNldFN0
eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChT
aGFkb3dSb290KToKKyAgICAgICAgQWRkZWQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGdldHRlciBh
bmQgc2V0dGVyLgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmlkbDoKKyAgICAgICAgQWRkZWQg
YW4gYXR0cmlidXRlLCByZXNldFN0eWxlSW5oZXJpdGFuY2UuCisgICAgICAgICogZG9tL1RyZWVT
Y29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0
YW5jZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6Cisg
ICAgICAgIChUcmVlU2NvcGUpOgorICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2Un
cyBkZWZhdWx0IGdldHRlci4KKyAgICAgICAgVGhlIGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBi
eSBjbGFzcyBTaGFkb3dSb290J3MgZ2V0dGVyLgorCiAyMDEyLTA1LTE0ICBBbGV4YW5kcmUgRWxp
YXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFByZXZlbnQgS2V5
Q29kZUNvbnZlcnNpb25BbmRyb2lkIGZyb20gYnJlYWtpbmcgb24gbmV4dCBOREsgcm9sbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDQ2ZDhlNWQ0NWNiMDU5NmE4ZDA3Njc3
YTc3ZDdiMjI4NzkwMmM4N2QuLjEwYjEzNDc3ZjdlNGE0MjBlYjNjM2MzZGE2MThkNzQ1YTBkZDhj
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAK
ICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlUG9v
bC5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1
ZS5oIgogI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgiCkBAIC0xNjM4LDggKzE2MzksOSBAQCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxlbWVu
dCogZWxlbWVudCwgUmVuZGVyUwogICAgIH0KIAogICAgIG1fc3R5bGUgPSBSZW5kZXJTdHlsZTo6
Y3JlYXRlKCk7CisgICAgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBlbGVtZW50ICYmIGVs
ZW1lbnQtPnRyZWVTY29wZSgpLT5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKSAmJiBlbGVtZW50LT5w
YXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGVBdFNoYWRvd0JvdW5kYXJ5KCk7CiAKLSAgICBp
ZiAobV9wYXJlbnRTdHlsZSkKKyAgICBpZiAobV9wYXJlbnRTdHlsZSAmJiAhcmVzZXRTdHlsZUlu
aGVyaXRhbmNlKQogICAgICAgICBtX3N0eWxlLT5pbmhlcml0RnJvbShtX3BhcmVudFN0eWxlKTsK
ICAgICBlbHNlIHsKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IHN0eWxlKCk7CkBAIC0xNjY2LDYg
KzE2NjgsMTEgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVG
b3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlclMKIAogICAgIGFwcGx5TWF0Y2hlZFBy
b3BlcnRpZXMobWF0Y2hSZXN1bHQpOwogCisgICAgaWYgKHJlc2V0U3R5bGVJbmhlcml0YW5jZSkg
eworICAgICAgICBhcHBseVByb3BlcnR5KENTU1Byb3BlcnR5Rm9udCwgY3NzVmFsdWVQb29sKCku
Y3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKS5nZXQoKSk7CisgICAgICAgIG1fc3R5bGUtPmZv
bnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKCkpOworICAgIH0KKwogICAgIC8vIENsZWFuIHVwIG91
ciBzdHlsZSBvYmplY3QncyBkaXNwbGF5IGFuZCB0ZXh0IGRlY29yYXRpb25zIChhbW9uZyBvdGhl
ciBmaXh1cHMpLgogICAgIGFkanVzdFJlbmRlclN0eWxlKHN0eWxlKCksIG1fcGFyZW50U3R5bGUs
IGVsZW1lbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggY2QzZjM2MTZjODZlOGE2NjBlYmZhOWYy
NGViZDJmNDM4YmM1NThmZi4uYjIwZTI3OTljYjEwNmQ2NGExMjEzNTRlZjlmNWFhMjE2OTc1OWEy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTQzMyw2ICsxNDMzLDExIEBAIENvbnRhaW5lck5vZGUq
IE5vZGU6OnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpCiAgICAgcmV0dXJuIE5vZGVS
ZW5kZXJpbmdDb250ZXh0KHRoaXMpLnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOwog
fQogCitib29sIE5vZGU6OnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91
bmRhcnkoKQoreworICAgIHJldHVybiBOb2RlUmVuZGVyaW5nQ29udGV4dCh0aGlzKS5wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGVBdFNoYWRvd0JvdW5kYXJ5KCk7Cit9CisKIHZvaWQgTm9k
ZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiB7CiAgICAgTm9kZVJlbmRlcmVyRmFjdG9yeSh0
aGlzKS5jcmVhdGVSZW5kZXJlcklmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA1NzQ1NDUwZDk5
OTI5NjBmOTY2MzgxNDRiZjc2MTRmZmFlZWM4ZjVhLi4xNTRjMDg3MGZiZTBjMmRiZDlhMDQ4ZjFm
MTE2YjcyM2ExZTE5N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTUwNyw2ICs1MDcsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJl
bmRlcmluZ0NvbnRleHQmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAg
ICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICBi
b29sIHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91bmRhcnkoKTsKICAg
ICAKICAgICAvLyBXcmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciwg
YnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9uRWxlbWVudCkuCiAgICAg
UmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAzZDk4YTZmNmE1ZWI3ZjFhNWRhZmQ5NGNlNmY5
ODA5NDY2YzRlY2QzLi40ODhlNDA2OWYwMDAyZDBiOWU4NjY3NDg4MmQ5YmEyOWI2MjE3MTlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTU1LDYg
KzU1LDcgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUq
IG5vZGUpCiAgICAgOiBtX3BoYXNlKEF0dGFjaGluZ05vdEluVHJlZSkKICAgICAsIG1fbm9kZShu
b2RlKQogICAgICwgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoMCkKKyAgICAsIG1f
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlQXRTaGFkb3dCb3VuZGFyeSgwKQogICAgICwg
bV92aXN1YWxQYXJlbnRTaGFkb3coMCkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnQoMCkKICAgICAs
IG1fc3R5bGUoMCkKQEAgLTY3LDYgKzY4LDcgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVS
ZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgaWYgKHBhcmVudC0+aXNTaGFkb3dSb290
KCkgJiYgdG9TaGFkb3dSb290KHBhcmVudCktPmlzWW91bmdlc3QoKSkgewogICAgICAgICBtX3Bo
YXNlID0gQXR0YWNoaW5nU2hhZG93Q2hpbGQ7CiAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRl
cmluZ0FuZFN0eWxlID0gcGFyZW50LT5zaGFkb3dIb3N0KCk7CisgICAgICAgIG1fcGFyZW50Tm9k
ZUZvclJlbmRlcmluZ0FuZFN0eWxlQXRTaGFkb3dCb3VuZGFyeSA9IHRydWU7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTgxLDEyICs4MywxNCBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICBpZiAodG9T
aGFkb3dSb290KG1faW5zZXJ0aW9uUG9pbnQtPnNoYWRvd1RyZWVSb290Tm9kZSgpKS0+aXNVc2Vk
Rm9yUmVuZGVyaW5nKCkpIHsKICAgICAgICAgICAgICAgICAgICAgbV9waGFzZSA9IEF0dGFjaGlu
Z0Rpc3RyaWJ1dGVkOwogICAgICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJp
bmdBbmRTdHlsZSA9IE5vZGVSZW5kZXJpbmdDb250ZXh0KG1faW5zZXJ0aW9uUG9pbnQpLnBhcmVu
dE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOworICAgICAgICAgICAgICAgICAgICBtX3BhcmVu
dE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91bmRhcnkgPSBOb2RlUmVuZGVyaW5n
Q29udGV4dChtX2luc2VydGlvblBvaW50KS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGVB
dFNoYWRvd0JvdW5kYXJ5KCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hp
bmdOb3REaXN0cmlidXRlZDsKICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0Fu
ZFN0eWxlID0gcGFyZW50OworICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5k
U3R5bGVBdFNoYWRvd0JvdW5kYXJ5ID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIApAQCAtOTQsNiArOTgsNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRl
cmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGlmICghdG9TaGFkb3dSb290KHBh
cmVudC0+c2hhZG93VHJlZVJvb3ROb2RlKCkpLT5pc1VzZWRGb3JSZW5kZXJpbmcoKSkgewogICAg
ICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdOb3REaXN0cmlidXRlZDsKICAgICAgICAg
ICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBhcmVudDsKKyAgICAg
ICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91bmRh
cnkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKQEAg
LTEwMiwyMiArMTA3LDI3IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29u
dGV4dChOb2RlKiBub2RlKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fcGhh
c2UgPSBBdHRhY2hpbmdGYWxsYmFja2VkOwogCi0gICAgICAgICAgICBpZiAodG9JbnNlcnRpb25Q
b2ludChwYXJlbnQpLT5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgaWYgKHRvSW5zZXJ0aW9uUG9p
bnQocGFyZW50KS0+aXNBY3RpdmUoKSkgewogICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZv
clJlbmRlcmluZ0FuZFN0eWxlID0gTm9kZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91bmRhcnkgPSBO
b2RlUmVuZGVyaW5nQ29udGV4dChwYXJlbnQpLnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZUF0U2hhZG93Qm91bmRhcnkoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnQ7CisgICAgICAgICAg
ICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGVBdFNoYWRvd0JvdW5kYXJ5ID0g
ZmFsc2U7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICB9CiAKICAgICBtX3BoYXNlID0gQXR0YWNoaW5nU3RyYWlnaHQ7CiAgICAgbV9wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnQ7CisgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVy
aW5nQW5kU3R5bGVBdFNoYWRvd0JvdW5kYXJ5ID0gZmFsc2U7CiB9CiAKIE5vZGVSZW5kZXJpbmdD
b250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlLCBSZW5kZXJTdHlsZSogc3R5
bGUpCiAgICAgOiBtX3BoYXNlKENhbGN1bGF0aW5nKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAg
LCBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgwKQorICAgICwgbV9wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGVBdFNoYWRvd0JvdW5kYXJ5KDApCiAgICAgLCBtX3Zpc3VhbFBh
cmVudFNoYWRvdygwKQogICAgICwgbV9pbnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZShz
dHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggMWQz
ZGFmM2ZjNTQyNjdkM2I0N2NkYTFiYjkxNzFlMmFhMjFhMzlhNi4uZWVlYmU4NDQxMWY4ZDExN2Ni
NWI5NTNkYzA3Zjg0ZGE5YWIwNTc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgTm9kZSogbm9kZSgp
IGNvbnN0OwogICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZSgpIGNvbnN0OworICAgIGJvb2wgcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlQXRTaGFk
b3dCb3VuZGFyeSgpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIoKSBj
b25zdDsKICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRl
ck9iamVjdCogcHJldmlvdXNSZW5kZXJlcigpIGNvbnN0OwpAQCAtODMsNiArODQsNyBAQCBwcml2
YXRlOgogICAgIEF0dGFjaGluZ1BoYXNlIG1fcGhhc2U7CiAgICAgTm9kZSogbV9ub2RlOwogICAg
IENvbnRhaW5lck5vZGUqIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlOworICAgIGJv
b2wgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGVBdFNoYWRvd0JvdW5kYXJ5IDogMTsK
ICAgICBFbGVtZW50U2hhZG93KiBtX3Zpc3VhbFBhcmVudFNoYWRvdzsKICAgICBJbnNlcnRpb25Q
b2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fc3R5bGU7
CkBAIC0xMDEsNiArMTAzLDEyIEBAIGlubGluZSBDb250YWluZXJOb2RlKiBOb2RlUmVuZGVyaW5n
Q29udGV4dDo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uCiAgICAgcmV0dXJu
IG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlOwogfQogCitpbmxpbmUgYm9vbCBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlQXRTaGFkb3dC
b3VuZGFyeSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcGhhc2UgIT0gQ2FsY3VsYXRpbmcpOwor
ICAgIHJldHVybiBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZUF0U2hhZG93Qm91bmRh
cnk7Cit9CisKIGlubGluZSBSZW5kZXJTdHlsZSogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnN0eWxl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zdHlsZS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcAppbmRleCAzMmRkYjM4MzM0ZmVjZGJmZmIyNDNmYjg0MDE4NDAwYjYzMGU5ZmYzLi42
ZjIzNGZhMGJkZTkzOWZlN2FlNjUxMzBlYWQ1MzFhYzBiMTFkYjMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwCkBAIC01MCw2ICs1MCw3IEBAIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9j
dW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25leHQoMCkKICAgICAs
IG1fYXBwbHlBdXRob3JTdHlsZXMoZmFsc2UpCisgICAgLCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5j
ZShmYWxzZSkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvKDApCiB7CiAgICAgQVNT
RVJUKGRvY3VtZW50KTsKQEAgLTE5OCw2ICsxOTksMjAgQEAgdm9pZCBTaGFkb3dSb290OjpzZXRB
cHBseUF1dGhvclN0eWxlcyhib29sIHZhbHVlKQogICAgIG1fYXBwbHlBdXRob3JTdHlsZXMgPSB2
YWx1ZTsKIH0KIAorYm9vbCBTaGFkb3dSb290OjpyZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25z
dAoreworICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZTsKK30KKwordm9pZCBTaGFk
b3dSb290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAo
dmFsdWUgIT0gbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UpIHsKKyAgICAgICAgbV9yZXNldFN0eWxl
SW5oZXJpdGFuY2UgPSB2YWx1ZTsKKyAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgb3duZXIoKSkK
KyAgICAgICAgICAgIG93bmVyKCktPnNldE5lZWRzUmVkaXN0cmlidXRpbmcoKTsKKyAgICB9Cit9
CisKIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkKIHsKICAgICBTdHlsZVJlc29sdmVyKiBzdHls
ZVJlc29sdmVyID0gZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmgKaW5kZXggZDJhZDBkZmJjNmMzZGNmZTQ0Mjc0NGU5OGQ1MDg0ZWVlYzdiZGQ0Ny4uMGM0
ODBjNDkzNjgyZjdhMzA0ZDEzOTFjZGYxNTIwMTRlM2NhY2IyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBs
eUF1dGhvclN0eWxlcygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZvaWQgc2V0QXBwbHlBdXRob3JT
dHlsZXMoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZvaWQgc2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKGJvb2wpOwog
CiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNoYWRvd0hvc3QoKTsgfQogICAg
IEVsZW1lbnRTaGFkb3cqIG93bmVyKCkgY29uc3Q7CkBAIC0xMDMsNiArMTA1LDcgQEAgcHJpdmF0
ZToKICAgICBTaGFkb3dSb290KiBtX3ByZXY7CiAgICAgU2hhZG93Um9vdCogbV9uZXh0OwogICAg
IGJvb2wgbV9hcHBseUF1dGhvclN0eWxlcyA6IDE7CisgICAgYm9vbCBtX3Jlc2V0U3R5bGVJbmhl
cml0YW5jZSA6IDE7CiAgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25l
ZFRvOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCmluZGV4IDU1MDU3YjY4MDZkNTNi
M2MyZDUxYzk3M2ZmNDVhMGNmOWVmOGFiYTcuLjg0YWE0YzViOWRkNTI0Yjg1NmE2YzBlZWUxZWUx
YzUzNmY3YzYwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKQEAgLTM2LDYgKzM2LDcg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBhY3Rp
dmVFbGVtZW50OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2VsZWN0aW9uIHNlbGVj
dGlvbjsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CisgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5jZTsKIAogICAgICAgICBh
dHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKICAg
ICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZS5jcHAKaW5kZXggYzJlZmMzOTZmNjAzYTMwN2Y5MGE1NTExMDhhOTJjYzFiZjc5OWZiNy4uNDE0
YTQzYmZkNDY0OWYxM2Y3MDJlZWUwMGM2MjBlNjc5NTY4NGY2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVT
Y29wZS5jcHAKQEAgLTE2Myw2ICsxNjMsMTEgQEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9y
U3R5bGVzKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUcmVlU2NvcGU6OnJl
c2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2
b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCh0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCA5OTIwOTMyNjk2ZDIyYzE0OGFlYTg3Mjkz
YTAwNDY1NGI5NGFhYTExLi4yMWE4NzdhYWZhNGQzOWJmMjM0MzdjYzI2MWRjZjUwNTAzYjA5YzVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC03Myw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICBF
bGVtZW50KiBmaW5kQW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2aXJ0dWFsIGJv
b2wgYXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHls
ZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0
YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVl
ZGVkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAyMzkzYTBhNTFmMjgwYmI3MTE2ZGM5Mjg4MmZhYjZmZTUwM2I4
ZmVjLi5lY2Y3ODA4ZDE5MzJhMWM1NzZiNjViYzA0ZmIzNjUxMzJiMzg3MTI4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTItMDUtMTQgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFNoYWRvd1Jvb3QgbmVlZHMgcmVzZXRTdHlsZUluaGVyaXRhbmNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA0OAorCisg
ICAgICAgIEFkZGVkIGxheW91dCB0ZXN0cyBmb3IgY2hlY2tpbmcgd2hldGhlciByZXNldFN0eWxl
SW5oZXJpdGFuY2Ugd29ya3MgY29ycmVjdGx5IG9yIG5vdC4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9v
dC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
CiAyMDEyLTA1LTE0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIGZhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJsLWluLWVtYmVkLmh0bWwgaXMgZmFpbGluZyBh
ZnRlciByMTE1NjQ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZlZjZjODViYWE5Yzc4YjYyYTE3MGI2MGVmMDEwYjJiMDkw
ZTc5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQ3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXYucmVzZXRU
ZXN0IHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjsKKyAgYm9yZGVyOiBzb2xpZDsKKyAgbWFy
Z2luOiA0cHg7CisgIHBhZGRpbmc6IDE2cHg7CisgIGNvbG9yOiAjZmVlOworICBmb250LWZhbWls
eTogU2VyaWY7CisgIGZvbnQtc2l6ZTogMjRweDsKKyAgZm9udC1zdHlsZTogaXRhbGljOworICBm
b250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBsZXR0ZXIt
c3BhY2luZzogMnB4OworICBsaW5lLWhlaWdodDogMjAwJTsKKyAgdGV4dC1hbGlnbjogc3RhcnQ7
CisgIHRleHQtaW5kZW50OiA1MHB4OworICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOworICB3
aGl0ZS1zcGFjZTogbm93cmFwOworICB3b3JkLXNwYWNpbmc6IDMwcHg7Cit9CitkaXYuaW5pdGlh
bFZhbHVlcyB7CisgIGNvbG9yOiBpbml0aWFsOworICBmb250LWZhbWlseTogaW5pdGlhbDsKKyAg
Zm9udC1zaXplOiBpbml0aWFsOworICBmb250LXN0eWxlOiBpbml0aWFsOworICBmb250LXZhcmlh
bnQ6IGluaXRpYWw7CisgIGZvbnQtd2VpZ2h0OiBpbml0aWFsOworICBsZXR0ZXItc3BhY2luZzog
aW5pdGlhbDsKKyAgbGluZS1oZWlnaHQ6IGluaXRpYWw7CisgIHRleHQtYWxpZ246IGluaXRpYWw7
CisgIHRleHQtaW5kZW50OiBpbml0aWFsOworICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDsKKyAg
d2hpdGUtc3BhY2U6IGluaXRpYWw7CisgIHdvcmQtc3BhY2luZzogaW5pdGlhbDsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNs
YXNzPSJpbml0aWFsVmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xh
c3M9InJlc2V0VGVzdCI+PGRpdj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xh
c3M9InJlc2V0VGVzdCI+PGRpdj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xh
c3M9InJlc2V0VGVzdCI+PGRpdiBjbGFzcz0iaW5pdGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM3OGY4ZTUyNDc4ZjEzZTAyNjBiNWU4ZmYyNmM1OTgyMDM0NWY3MjUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Rpdi5yZXNldFRlc3QgeworICBiYWNr
Z3JvdW5kLWNvbG9yOiAjZWVmOworICBib3JkZXI6IHNvbGlkOworICBtYXJnaW46IDRweDsKKyAg
cGFkZGluZzogMTZweDsKKyAgY29sb3I6ICNmZWU7CisgIGZvbnQtZmFtaWx5OiBTZXJpZjsKKyAg
Zm9udC1zaXplOiAyNHB4OworICBmb250LXN0eWxlOiBpdGFsaWM7CisgIGZvbnQtdmFyaWFudDog
c21hbGwtY2FwczsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGxldHRlci1zcGFjaW5nOiAycHg7
CisgIGxpbmUtaGVpZ2h0OiAyMDAlOworICB0ZXh0LWFsaWduOiBzdGFydDsKKyAgdGV4dC1pbmRl
bnQ6IDUwcHg7CisgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CisgIHdoaXRlLXNwYWNlOiBu
b3dyYXA7CisgIHdvcmQtc3BhY2luZzogMzBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gYXNzZXJ0VHJ1ZShpZCwgYWN0dWFsKSB7CisgICBpZiAoIWFjdHVhbCkgeworICAgICAg
IHRocm93ICJmYWlsdXJlOiIgKyBpZCArICI6IGFzc2VydFRydWUgZmFpbGVkIjsKKyAgIH0KK30K
KworZnVuY3Rpb24gYXNzZXJ0RmFsc2UoaWQsIGFjdHVhbCkgeworICAgaWYgKGFjdHVhbCkgewor
ICAgICAgIHRocm93ICJmYWlsdXJlOiIgKyBpZCArICAiOiBhc3NlcnRGYWxzZSBmYWlsZWQiOwor
ICAgfQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFu
Y2UiPjwvZGl2PgorPGRpdiBpZD0ibm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiPjwvZGl2Pgor
PGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZSI+PC9kaXY+Cis8
ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mYWxzZS10by10cnVlIj48L2Rpdj4KKwor
PHNjcmlwdD4KK2Z1bmN0aW9uIHJlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsK
KyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFy
Z2V0LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcg
V2ViS2l0U2hhZG93Um9vdCh0YXJnZXQpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0
U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+
JzsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm8tcmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UnKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRo
UmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisK
KyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRhcmdldCk7CisgICAg
YXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxz
ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJl
c2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAn
PGRpdj50ZXh0PC9kaXY+JzsKKyAgICBhc3NlcnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ug
c2hvdWxkIGJlIHRydWUgYXMgZXhwbGljaXRseSBzZXQnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0
eWxlLWluaGVyaXRhbmNlJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKworZnVuY3Rpb24gcmVu
ZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbVRydWVUb0ZhbHNlKCkgewor
ICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJn
ZXQuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBX
ZWJLaXRTaGFkb3dSb290KHRhcmdldCk7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRT
dHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7
CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsKKyAgICBhc3Nl
cnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290
LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlLXRydWUtdG8tZmFsc2UnKS5hcHBlbmRDaGlsZCh0
YXJnZXQpOworICAgIHRhcmdldC5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHls
ZUluaGVyaXRhbmNlID0gZmFsc2U7CisgICAgYXNzZXJ0RmFsc2UoJ3Jlc2V0U3R5bGVJbmhlcml0
YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7
CisgICAgdGFyZ2V0Lm9mZnNldExlZnQ7Cit9CisKK2Z1bmN0aW9uIHJlbmRlcldpdGhDaGFuZ2lu
Z1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21GYWxzZVRvVHJ1ZSgpIHsKKyAgICB2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmNsYXNzTmFtZSA9
ICdyZXNldFRlc3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9v
dCh0YXJnZXQpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5j
ZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Cisg
ICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsKKyAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOworICAgIGFzc2VydEZhbHNlKCdkZWZh
dWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJl
c2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZhbHNlLXRvLXRydWUnKS5hcHBlbmRDaGlsZCh0YXJn
ZXQpOworICAgIHRhcmdldC5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBhc3NlcnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ug
c2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAg
dGFyZ2V0Lm9mZnNldExlZnQ7Cit9CisKK3JlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpOworcmVuZGVyV2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aENoYW5n
aW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbVRydWVUb0ZhbHNlKCk7CityZW5kZXJXaXRoQ2hh
bmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tRmFsc2VUb1RydWUoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142201</attachid>
            <date>2012-05-16 02:16:30 -0700</date>
            <delta_ts>2012-05-18 05:33:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120516181629.patch</filename>
            <type>text/plain</type>
            <size>19036</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExODA2YTJiNTU1MDcy
YWEzZmM2NjA3NzI4YmVmM2EzZWI3M2ZiNi4uY2ZmZmU2ODk1ZGUxNGNmODA1M2UzNDYyNzlmNmIy
MjkwOWRiNThkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA1LTE2ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToK
KyAgICAgICAgSWYgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGlzIHRydWUgYW5kIHBhcmVudCBpcyBw
bGFjZWQgaW4gYW5vdGhlciB0cmVlLAorICAgICAgICB1c2UgZW1wdHkgc3R5bGUgaW5zdGVhZCBv
ZiBwYXJlbnRTdHlsZS4gSG93ZXZlciBhcyBkZWZhdWx0U3R5bGUgZG9lc24ndAorICAgICAgICBo
YXZlIGRlZmF1bHQgZm9udCBpbmZvLCBpbnZva2UgYXBwbHlQcm9wZXJ0eSBmb3IgaW5pdGlhbGl6
aW5nIGZvbnQKKyAgICAgICAgcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29s
dmVyOjppbml0Rm9yU3R5bGVSZXNvbHZlKToKKyAgICAgICAgSW5pdGlhbHplZCBtX3Jlc2V0U3R5
bGVJbmhlcml0YW5jZSB3aGVuIGNhbGN1bGF0aW5nIG1fcGFyZW50Tm9kZS4KKyAgICAgICAgKiBj
c3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAoU3R5bGVSZXNvbHZlcik6CisgICAgICAgIEFk
ZGVkIGEgbmV3IGJvb2xlYW4gbWVtYmVyIHZhcmlhYmxlOiBtX3Jlc2V0U3R5bGVJbmhlcml0YW5j
ZS4KKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KToKKyAgICAg
ICAgTW9kaWZpZWQgdG8gY2FsY3VsYXRlIG1fY3Jvc3NTaGFkb3dCb3VuZGFyeSBpbiBpdHMgY29u
c3RydWN0b3IuCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3Jvc3NTaGFkb3dCb3VuZGFyeSk6Cisg
ICAgICAgIEltcGxlbWVudGVkIGEgbmV3IG1ldGhvZCwganVzdCByZXR1cm5pbmcgbV9jcm9zc1No
YWRvd0JvdW5kYXJ5LgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1Jvb3Q6OnNldFJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgICog
ZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICBBZGRlZCBy
ZXNldFN0eWxlSW5oZXJpdGFuY2UgZ2V0dGVyIGFuZCBzZXR0ZXIuCisgICAgICAgICogZG9tL1No
YWRvd1Jvb3QuaWRsOgorICAgICAgICBBZGRlZCBhbiBhdHRyaWJ1dGUsIHJlc2V0U3R5bGVJbmhl
cml0YW5jZS4KKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRyZWVTY29wZTo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAg
IEFkZGVkIHJlc2V0U3R5bGVJbmhlcml0YW5jZSdzIGRlZmF1bHQgZ2V0dGVyLgorICAgICAgICBU
aGUgZ2V0dGVyIHdpbGwgYmUgb3ZlcnJpZGVkIGJ5IGNsYXNzIFNoYWRvd1Jvb3QncyBnZXR0ZXIu
CisKIDIwMTItMDUtMTYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTcwNTAuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggZTFiMDBmZmM0ZjdkM2E5NDhkMTllZDM4ZDZlMzRm
YWJmMjlhYWZiMi4uM2M2ZjMyMjczNGY3YmI0MTllMDRlYjEwNTMyMWYyMDJiNDAxMDRiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1
ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWxjdWxhdGlvblZhbHVlLmgiCiAj
aW5jbHVkZSAiQ29udGVudERhdGEuaCIKQEAgLTc3LDYgKzc4LDcgQEAKICNpbmNsdWRlICJNZWRp
YUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiTm9k
ZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpA
QCAtMTE1OCw3ICsxMTYwLDE0IEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JT
dHlsZVJlc29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0CiB7CiAgICAgbV9j
aGVja2VyLnNldFBzZXVkb1N0eWxlKHBzZXVkb0lEKTsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUg
PyBlLT5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7CisgICAgaWYgKGUpIHsK
KyAgICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQoZSk7CisgICAgICBtX3BhcmVudE5v
ZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOworICAgICAgbV9y
ZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBlLT50cmVlU2NvcGUoKS0+cmVzZXRTdHlsZUluaGVyaXRh
bmNlKCkgJiYgY29udGV4dC5jcm9zc1NoYWRvd0JvdW5kYXJ5KCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgIG1fcGFyZW50Tm9kZSA9IDA7CisgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZh
bHNlOworICAgIH0KIAogICAgIGlmIChwYXJlbnRTdHlsZSkKICAgICAgICAgbV9wYXJlbnRTdHls
ZSA9IHBhcmVudFN0eWxlOwpAQCAtMTY0MCw3ICsxNjQ5LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJl
bmRlclMKIAogICAgIG1fc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CiAKLSAgICBpZiAo
bV9wYXJlbnRTdHlsZSkKKyAgICBpZiAobV9wYXJlbnRTdHlsZSAmJiAhbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2UpCiAgICAgICAgIG1fc3R5bGUtPmluaGVyaXRGcm9tKG1fcGFyZW50U3R5bGUpOwog
ICAgIGVsc2UgewogICAgICAgICBtX3BhcmVudFN0eWxlID0gc3R5bGUoKTsKQEAgLTE2NjcsNiAr
MTY3NiwxMSBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZv
ckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyUwogCiAgICAgYXBwbHlNYXRjaGVkUHJv
cGVydGllcyhtYXRjaFJlc3VsdCk7CiAKKyAgICBpZiAobV9yZXNldFN0eWxlSW5oZXJpdGFuY2Up
IHsKKyAgICAgICAgYXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnQsIGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCkuZ2V0KCkpOworICAgICAgICBtX3N0eWxlLT5m
b250KCkudXBkYXRlKGZvbnRTZWxlY3RvcigpKTsKKyAgICB9CisKICAgICAvLyBDbGVhbiB1cCBv
dXIgc3R5bGUgb2JqZWN0J3MgZGlzcGxheSBhbmQgdGV4dCBkZWNvcmF0aW9ucyAoYW1vbmcgb3Ro
ZXIgZml4dXBzKS4KICAgICBhZGp1c3RSZW5kZXJTdHlsZShzdHlsZSgpLCBtX3BhcmVudFN0eWxl
LCBlbGVtZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggMzc3YWRkMjli
NzBmNzAyY2M5MzBiNGI2NWU3ODIzZDYxOTExOTBmNC4uZmYwMWU1NDljMzUyNjhmODYwNTNkMjhi
ZGM1NDM4OTI2NjNkY2VjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC00OTQs
NiArNDk0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9udERpcnR5OwogICAgIGJvb2wgbV9t
YXRjaEF1dGhvckFuZFVzZXJTdHlsZXM7CiAgICAgYm9vbCBtX3NhbWVPcmlnaW5Pbmx5OworICAg
IGJvb2wgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2U7CiAKICAgICBSZWZQdHI8Q1NTRm9udFNlbGVj
dG9yPiBtX2ZvbnRTZWxlY3RvcjsKICAgICBWZWN0b3I8T3duUHRyPE1lZGlhUXVlcnlSZXN1bHQ+
ID4gbV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggYzY3OWJjOGM0MTkxNjFkNDQzYmUw
ZWMyMjJhZDI3ZjFhYjgyYjNiZi4uNDdmY2EzNTE4MDA4YjgxMWY2OTliYTRlZmUzODk0MGVmMDk4
OTY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBA
IC01NSw2ICs1NSw3IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4
dChOb2RlKiBub2RlKQogICAgIDogbV9waGFzZShBdHRhY2hpbmdOb3RJblRyZWUpCiAgICAgLCBt
X25vZGUobm9kZSkKICAgICAsIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKDApCisg
ICAgLCBtX2Nyb3NzU2hhZG93Qm91bmRhcnkoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFBhcmVudFNo
YWRvdygwKQogICAgICwgbV9pbnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZSgwKQpAQCAt
NjcsNiArNjgsNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQo
Tm9kZSogbm9kZSkKICAgICBpZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSAmJiB0b1NoYWRvd1Jv
b3QocGFyZW50KS0+aXNZb3VuZ2VzdCgpKSB7CiAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdT
aGFkb3dDaGlsZDsKICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBw
YXJlbnQtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgbV9jcm9zc1NoYWRvd0JvdW5kYXJ5ID0gdHJ1
ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODAsNyArODIsOSBAQCBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IGlmICgobV9pbnNlcnRpb25Qb2ludCA9IG1fdmlzdWFsUGFyZW50U2hhZG93LT5pbnNlcnRpb25Q
b2ludEZvcihtX25vZGUpKSkgewogICAgICAgICAgICAgICAgIGlmIChtX2luc2VydGlvblBvaW50
LT5zaGFkb3dSb290KCktPmlzVXNlZEZvclJlbmRlcmluZygpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdEaXN0cmlidXRlZDsKLSAgICAgICAgICAgICAgICAgICAg
bV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dCht
X2luc2VydGlvblBvaW50KS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgaW5zZXJ0aW9uUG9pbnRDb250ZXh0
KG1faW5zZXJ0aW9uUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JS
ZW5kZXJpbmdBbmRTdHlsZSA9IGluc2VydGlvblBvaW50Q29udGV4dC5wYXJlbnROb2RlRm9yUmVu
ZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jcm9zc1NoYWRvd0JvdW5k
YXJ5ID0gaW5zZXJ0aW9uUG9pbnRDb250ZXh0LmNyb3NzU2hhZG93Qm91bmRhcnkoKTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
QEAgLTEwMiw5ICsxMDYsMTEgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdD
b250ZXh0KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9w
aGFzZSA9IEF0dGFjaGluZ0ZhbGxiYWNrZWQ7CiAKLSAgICAgICAgICAgIGlmICh0b0luc2VydGlv
blBvaW50KHBhcmVudCktPmlzQWN0aXZlKCkpCi0gICAgICAgICAgICAgICAgbV9wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChwYXJlbnQpLnBhcmVu
dE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgaWYgKHRvSW5zZXJ0aW9uUG9pbnQocGFyZW50KS0+aXNBY3RpdmUoKSkgeworICAgICAgICAg
ICAgICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IHBhcmVudENvbnRleHQocGFyZW50KTsKKyAgICAg
ICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBhcmVudENvbnRl
eHQucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgbV9j
cm9zc1NoYWRvd0JvdW5kYXJ5ID0gcGFyZW50Q29udGV4dC5jcm9zc1NoYWRvd0JvdW5kYXJ5KCk7
CisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5k
ZXJpbmdBbmRTdHlsZSA9IHBhcmVudDsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpA
QCAtMTE4LDYgKzEyNCw3IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29u
dGV4dChOb2RlKiBub2RlLCBSZW5kZXJTdHlsZSogc3R5bGUpCiAgICAgOiBtX3BoYXNlKENhbGN1
bGF0aW5nKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3BhcmVudE5vZGVGb3JSZW5kZXJp
bmdBbmRTdHlsZSgwKQorICAgICwgbV9jcm9zc1NoYWRvd0JvdW5kYXJ5KGZhbHNlKQogICAgICwg
bV92aXN1YWxQYXJlbnRTaGFkb3coMCkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnQoMCkKICAgICAs
IG1fc3R5bGUoc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5o
CmluZGV4IDFkM2RhZjNmYzU0MjY3ZDNiNDdjZGExYmI5MTcxZTJhYTIxYTM5YTYuLjk4MGU3OWJk
NTIyMjI1NjFmNjQwMzZkNTJjMmY2YTY5ZTM2Zjc1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIE5v
ZGUqIG5vZGUoKSBjb25zdDsKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVy
aW5nQW5kU3R5bGUoKSBjb25zdDsKKyAgICBib29sIGNyb3NzU2hhZG93Qm91bmRhcnkoKSBjb25z
dDsKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVy
T2JqZWN0KiBuZXh0UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIHByZXZpb3Vz
UmVuZGVyZXIoKSBjb25zdDsKQEAgLTgzLDYgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBBdHRhY2hp
bmdQaGFzZSBtX3BoYXNlOwogICAgIE5vZGUqIG1fbm9kZTsKICAgICBDb250YWluZXJOb2RlKiBt
X3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsKKyAgICBib29sIG1fY3Jvc3NTaGFkb3dC
b3VuZGFyeTsKICAgICBFbGVtZW50U2hhZG93KiBtX3Zpc3VhbFBhcmVudFNoYWRvdzsKICAgICBJ
bnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG1fc3R5bGU7CkBAIC0xMDEsNiArMTAzLDEyIEBAIGlubGluZSBDb250YWluZXJOb2RlKiBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uCiAg
ICAgcmV0dXJuIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlOwogfQogCitpbmxpbmUg
Ym9vbCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3Jvc3NTaGFkb3dCb3VuZGFyeSgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1fcGhhc2UgIT0gQ2FsY3VsYXRpbmcpOworICAgIHJldHVybiBtX2Nyb3Nz
U2hhZG93Qm91bmRhcnk7Cit9CisKIGlubGluZSBSZW5kZXJTdHlsZSogTm9kZVJlbmRlcmluZ0Nv
bnRleHQ6OnN0eWxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zdHlsZS5nZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcAppbmRleCAzMmRkYjM4MzM0ZmVjZGJmZmIyNDNmYjg0MDE4NDAw
YjYzMGU5ZmYzLi42ZjIzNGZhMGJkZTkzOWZlN2FlNjUxMzBlYWQ1MzFhYzBiMTFkYjMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC01MCw2ICs1MCw3IEBAIFNoYWRvd1Jvb3Q6OlNo
YWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25l
eHQoMCkKICAgICAsIG1fYXBwbHlBdXRob3JTdHlsZXMoZmFsc2UpCisgICAgLCBtX3Jlc2V0U3R5
bGVJbmhlcml0YW5jZShmYWxzZSkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvKDAp
CiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKQEAgLTE5OCw2ICsxOTksMjAgQEAgdm9pZCBTaGFk
b3dSb290OjpzZXRBcHBseUF1dGhvclN0eWxlcyhib29sIHZhbHVlKQogICAgIG1fYXBwbHlBdXRo
b3JTdHlsZXMgPSB2YWx1ZTsKIH0KIAorYm9vbCBTaGFkb3dSb290OjpyZXNldFN0eWxlSW5oZXJp
dGFuY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZTsKK30K
Kwordm9pZCBTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCB2YWx1ZSkK
K3sKKyAgICBpZiAodmFsdWUgIT0gbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UpIHsKKyAgICAgICAg
bV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB2YWx1ZTsKKyAgICAgICAgaWYgKGF0dGFjaGVkKCkg
JiYgb3duZXIoKSkKKyAgICAgICAgICAgIG93bmVyKCktPnNldE5lZWRzUmVkaXN0cmlidXRpbmco
KTsKKyAgICB9Cit9CisKIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkKIHsKICAgICBTdHlsZVJl
c29sdmVyKiBzdHlsZVJlc29sdmVyID0gZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmgKaW5kZXggZDJhZDBkZmJjNmMzZGNmZTQ0Mjc0NGU5OGQ1MDg0ZWVl
YzdiZGQ0Ny4uMGM0ODBjNDkzNjgyZjdhMzA0ZDEzOTFjZGYxNTIwMTRlM2NhY2IyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCBhcHBseUF1dGhvclN0eWxlcygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZvaWQgc2V0
QXBwbHlBdXRob3JTdHlsZXMoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHJlc2V0U3R5bGVJbmhl
cml0YW5jZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZvaWQgc2V0UmVzZXRTdHlsZUluaGVyaXRh
bmNlKGJvb2wpOwogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNoYWRvd0hv
c3QoKTsgfQogICAgIEVsZW1lbnRTaGFkb3cqIG93bmVyKCkgY29uc3Q7CkBAIC0xMDMsNiArMTA1
LDcgQEAgcHJpdmF0ZToKICAgICBTaGFkb3dSb290KiBtX3ByZXY7CiAgICAgU2hhZG93Um9vdCog
bV9uZXh0OwogICAgIGJvb2wgbV9hcHBseUF1dGhvclN0eWxlcyA6IDE7CisgICAgYm9vbCBtX3Jl
c2V0U3R5bGVJbmhlcml0YW5jZSA6IDE7CiAgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9u
UG9pbnRBc3NpZ25lZFRvOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCmluZGV4IDU1
MDU3YjY4MDZkNTNiM2MyZDUxYzk3M2ZmNDVhMGNmOWVmOGFiYTcuLjg0YWE0YzViOWRkNTI0Yjg1
NmE2YzBlZWUxZWUxYzUzNmY3YzYwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKQEAg
LTM2LDYgKzM2LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RWxlbWVudCBhY3RpdmVFbGVtZW50OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2Vs
ZWN0aW9uIHNlbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JT
dHlsZXM7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5jZTsK
IAogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBp
bm5lckhUTUwKICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggYjk3N2IwMjAxMWZlN2ExODc1MTQ5YmZmZjRhMDY1Njlm
OTZhZmQwYy4uMTlmOTZlYjBlNTUzYTRmMjA1OWMxYzcyOTUzZTFhZTdlMDEzZjJjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTE2Miw2ICsxNjIsMTEgQEAgYm9vbCBUcmVlU2NvcGU6
OmFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBU
cmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB2b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQogewog
ICAgIEFTU0VSVCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCA5OTIwOTMyNjk2ZDIy
YzE0OGFlYTg3MjkzYTAwNDY1NGI5NGFhYTExLi4yMWE4NzdhYWZhNGQzOWJmMjM0MzdjYzI2MWRj
ZjUwNTAzYjA5YzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC03Myw2ICs3Myw3IEBAIHB1
YmxpYzoKICAgICBFbGVtZW50KiBmaW5kQW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBi
YXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9p
ZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMjBjZWRiYTI4MDY3MDAxYTZjZjJlZDU2
NTgxYjY5YTQ4Yzg2MzZmLi42MmNjODQ2MGMyZmY3ZDZhZWViYWQ1MzY0YzhjMTRlZjU0ZDU4NTI1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTYgIFRha2FzaGkgU2FrYW1vdG8gIDx0
YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvd1Jvb3QgbmVlZHMgcmVzZXRTdHlsZUlu
aGVyaXRhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NDA0OAorCisgICAgICAgIEFkZGVkIGxheW91dCB0ZXN0cyBmb3IgY2hlY2tpbmcgd2hldGhl
ciByZXNldFN0eWxlSW5oZXJpdGFuY2Ugd29ya3MgY29ycmVjdGx5IG9yIG5vdC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0xNiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnpp
bW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBTVkcgVFJlZi9Vc2UgTlVMTCBwdHIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxl
SW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZmVmNmM4NWJhYTljNzhiNjJhMTcwYjYwZWYwMTBiMmIwOTBlNzk0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJ
bmhlcml0YW5jZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Rpdi5yZXNldFRlc3QgeworICBiYWNrZ3JvdW5k
LWNvbG9yOiAjZWVmOworICBib3JkZXI6IHNvbGlkOworICBtYXJnaW46IDRweDsKKyAgcGFkZGlu
ZzogMTZweDsKKyAgY29sb3I6ICNmZWU7CisgIGZvbnQtZmFtaWx5OiBTZXJpZjsKKyAgZm9udC1z
aXplOiAyNHB4OworICBmb250LXN0eWxlOiBpdGFsaWM7CisgIGZvbnQtdmFyaWFudDogc21hbGwt
Y2FwczsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGxldHRlci1zcGFjaW5nOiAycHg7CisgIGxp
bmUtaGVpZ2h0OiAyMDAlOworICB0ZXh0LWFsaWduOiBzdGFydDsKKyAgdGV4dC1pbmRlbnQ6IDUw
cHg7CisgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7
CisgIHdvcmQtc3BhY2luZzogMzBweDsKK30KK2Rpdi5pbml0aWFsVmFsdWVzIHsKKyAgY29sb3I6
IGluaXRpYWw7CisgIGZvbnQtZmFtaWx5OiBpbml0aWFsOworICBmb250LXNpemU6IGluaXRpYWw7
CisgIGZvbnQtc3R5bGU6IGluaXRpYWw7CisgIGZvbnQtdmFyaWFudDogaW5pdGlhbDsKKyAgZm9u
dC13ZWlnaHQ6IGluaXRpYWw7CisgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsOworICBsaW5lLWhl
aWdodDogaW5pdGlhbDsKKyAgdGV4dC1hbGlnbjogaW5pdGlhbDsKKyAgdGV4dC1pbmRlbnQ6IGlu
aXRpYWw7CisgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsOworICB3aGl0ZS1zcGFjZTogaW5pdGlh
bDsKKyAgd29yZC1zcGFjaW5nOiBpbml0aWFsOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMi
PnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2
PnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2
PnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2
IGNsYXNzPSJpbml0aWFsVmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc4
ZjhlNTI0NzhmMTNlMDI2MGI1ZThmZjI2YzU5ODIwMzQ1ZjcyNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJp
dGFuY2UuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorZGl2LnJlc2V0VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7
CisgIGJvcmRlcjogc29saWQ7CisgIG1hcmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBj
b2xvcjogI2ZlZTsKKyAgZm9udC1mYW1pbHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7Cisg
IGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250
LXdlaWdodDogYm9sZDsKKyAgbGV0dGVyLXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIw
MCU7CisgIHRleHQtYWxpZ246IHN0YXJ0OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10
cmFuc2Zvcm06IHVwcGVyY2FzZTsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFj
aW5nOiAzMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBhc3NlcnRUcnVlKGlk
LCBhY3R1YWwpIHsKKyAgIGlmICghYWN0dWFsKSB7CisgICAgICAgdGhyb3cgImZhaWx1cmU6IiAr
IGlkICsgIjogYXNzZXJ0VHJ1ZSBmYWlsZWQiOworICAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRG
YWxzZShpZCwgYWN0dWFsKSB7CisgICBpZiAoYWN0dWFsKSB7CisgICAgICAgdGhyb3cgImZhaWx1
cmU6IiArIGlkICsgICI6IGFzc2VydEZhbHNlIGZhaWxlZCI7CisgICB9Cit9Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZSI+PC9kaXY+Cis8ZGl2IGlk
PSJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1zdHls
ZS1pbmhlcml0YW5jZS10cnVlLXRvLWZhbHNlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0eWxl
LWluaGVyaXRhbmNlLWZhbHNlLXRvLXRydWUiPjwvZGl2PgorCis8c2NyaXB0PgorZnVuY3Rpb24g
cmVuZGVyV2l0aE5vUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZhciB0YXJnZXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ3Jl
c2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRh
cmdldCk7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNo
b3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBz
aGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOworICAgIAorICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZScpLmFwcGVuZENo
aWxkKHRhcmdldCk7Cit9CisKK2Z1bmN0aW9uIHJlbmRlcldpdGhSZXNldFN0eWxlSW5oZXJpdGFu
Y2UoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgIHRhcmdldC5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QodGFyZ2V0KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVs
dCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNl
dFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNl
ID0gdHJ1ZTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOwor
ICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZSBhcyBl
eHBsaWNpdGx5IHNldCcsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKS5h
cHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNl
dFN0eWxlSW5oZXJpdGFuY2VGcm9tVHJ1ZVRvRmFsc2UoKSB7CisgICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5jbGFzc05hbWUgPSAncmVz
ZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QodGFy
Z2V0KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hv
dWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNo
YWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBzaGFkb3dSb290Lmlu
bmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJ
bmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRh
bmNlKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UtdHJ1ZS10by1mYWxzZScpLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAgdGFyZ2V0
Lm9mZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxz
ZTsKKyAgICBhc3NlcnRGYWxzZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxz
ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICB0YXJnZXQub2Zmc2V0
TGVmdDsKK30KKworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRh
bmNlRnJvbUZhbHNlVG9UcnVlKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAg
ICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHRhcmdldCk7CisgICAgYXNz
ZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScs
IHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJlc2V0
U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxk
aXY+dGV4dDwvZGl2Pic7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVy
aXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNl
KTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJp
dGFuY2UtZmFsc2UtdG8tdHJ1ZScpLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAgdGFyZ2V0Lm9m
ZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwor
ICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZScsIHNo
YWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICB0YXJnZXQub2Zmc2V0TGVmdDsK
K30KKworcmVuZGVyV2l0aE5vUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CityZW5kZXJXaXRoUmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCk7CityZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJp
dGFuY2VGcm9tVHJ1ZVRvRmFsc2UoKTsKK3JlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhl
cml0YW5jZUZyb21GYWxzZVRvVHJ1ZSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142694</attachid>
            <date>2012-05-18 05:33:37 -0700</date>
            <delta_ts>2012-05-28 20:40:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120518213335.patch</filename>
            <type>text/plain</type>
            <size>22228</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODM3OGZkOTkzZTc3M2Ey
ZTVkNWUwNWE5ZTBjNDA0Y2E1MTFiMzUyZi4uMzQ3OGU5MGJmYjE3YWE4ZmQ3OTk5YmIxODI0MDEw
NTM0NjlhYmE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA1LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToK
KyAgICAgICAgSWYgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGlzIHRydWUgYW5kIHBhcmVudCBpcyBw
bGFjZWQgaW4gYW5vdGhlciB0cmVlLAorICAgICAgICB1c2UgZW1wdHkgc3R5bGUgaW5zdGVhZCBv
ZiBwYXJlbnRTdHlsZS4gSG93ZXZlciBhcyBkZWZhdWx0U3R5bGUgZG9lc24ndAorICAgICAgICBo
YXZlIGRlZmF1bHQgZm9udCBpbmZvLCBpbnZva2UgYXBwbHlQcm9wZXJ0eSBmb3IgaW5pdGlhbGl6
aW5nIGZvbnQKKyAgICAgICAgcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29s
dmVyOjppbml0Rm9yU3R5bGVSZXNvbHZlKToKKyAgICAgICAgSW5pdGlhbGl6ZWQgbV9yZXNldFN0
eWxlSW5oZXJpdGFuY2Ugd2hlbiBjYWxjdWxhdGluZyBtX3BhcmVudE5vZGUuCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKToKKyAgICAgICAgSW5pdGlhbGl6
ZWQgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2Ugd2l0aCBkZWZhdWx0IHZhbHVlLCBpLmUuIGZhbHNl
LgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgIChTdHlsZVJlc29sdmVy
KToKKyAgICAgICAgQWRkZWQgYSBuZXcgYm9vbGVhbiBtZW1iZXIgdmFyaWFibGU6IG1fcmVzZXRT
dHlsZUluaGVyaXRhbmNlLgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0Nv
bnRleHQpOgorICAgICAgICBNb2RpZmllZCB0byBjYWxjdWxhdGUgbV9yZXNldFN0eWxlSW5oZXJp
dGFuY2UgaW4gaXRzIGNvbnN0cnVjdG9yLgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlc2V0U3R5
bGVJbmhlcml0YW5jZSk6CisgICAgICAgIEltcGxlbWVudGVkIGEgbmV3IG1ldGhvZCwganVzdCBy
ZXR1cm5pbmcgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UuCisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVy
aXRhbmNlKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9v
dCk6CisgICAgICAgIEFkZGVkIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBnZXR0ZXIgYW5kIHNldHRl
ci4KKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5pZGw6CisgICAgICAgIEFkZGVkIGFuIGF0dHJp
YnV0ZSwgcmVzZXRTdHlsZUluaGVyaXRhbmNlLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpyZXNldFN0eWxlSW5oZXJpdGFuY2UpOgor
ICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAg
IEFkZGVkIHJlc2V0U3R5bGVJbmhlcml0YW5jZSdzIGRlZmF1bHQgZ2V0dGVyLgorICAgICAgICBU
aGUgZ2V0dGVyIHdpbGwgYmUgb3ZlcnJpZGVkIGJ5IGNsYXNzIFNoYWRvd1Jvb3QncyBnZXR0ZXIu
CisKIDIwMTItMDUtMTggIE1PUklUQSBIYWppbWUgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGF0dGVtcHQgdG8gZml4IGJ1aWxkIGJyZWFrYWdlIG9uIHIxMTc1NzIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAxZDk0NjkxMmEwZDQ2MDA2MTIx
YjNlODBkMDMwMjhmYWZmZDFkNGYzLi5lOTc2M2QwMzJjZWQ0ZmMwMGE0MTMyM2IzYjFkNDNmNDkw
NjM5NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC00OSw2ICs0OSw3
IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNTU1RpbWluZ0Z1bmN0
aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJDU1NWYWx1
ZVBvb2wuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbGN1bGF0aW9u
VmFsdWUuaCIKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgpAQCAtNzcsNiArNzgsNyBAQAogI2lu
Y2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNp
bmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRl
ICJQYWlyLmgiCkBAIC0zNTYsNiArMzU4LDcgQEAgU3R5bGVSZXNvbHZlcjo6U3R5bGVSZXNvbHZl
cihEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzKQogICAg
ICwgbV9mb250RGlydHkoZmFsc2UpCiAgICAgLCBtX21hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyht
YXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCiAgICAgLCBtX3NhbWVPcmlnaW5Pbmx5KGZhbHNlKQor
ICAgICwgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX2ZvbnRTZWxlY3Rv
cihDU1NGb250U2VsZWN0b3I6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAgLCBtX2FwcGx5UHJvcGVy
dHlUb1JlZ3VsYXJTdHlsZSh0cnVlKQogICAgICwgbV9hcHBseVByb3BlcnR5VG9WaXNpdGVkTGlu
a1N0eWxlKGZhbHNlKQpAQCAtMTE1OCw3ICsxMTYxLDE0IEBAIGlubGluZSB2b2lkIFN0eWxlUmVz
b2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVu
dFN0CiB7CiAgICAgbV9jaGVja2VyLnNldFBzZXVkb1N0eWxlKHBzZXVkb0lEKTsKIAotICAgIG1f
cGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7
CisgICAgaWYgKGUpIHsKKyAgICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQoZSk7Cisg
ICAgICBtX3BhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZSgpOworICAgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBjb250ZXh0LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSgpOworICAgIH0gZWxzZSB7CisgICAgICBtX3BhcmVudE5vZGUgPSAwOworICAg
ICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsKKyAgICB9CiAKICAgICBpZiAocGFy
ZW50U3R5bGUpCiAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBwYXJlbnRTdHlsZTsKQEAgLTE2NDAs
NyArMTY1MCw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxl
Rm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJTCiAKICAgICBtX3N0eWxlID0gUmVu
ZGVyU3R5bGU6OmNyZWF0ZSgpOwogCi0gICAgaWYgKG1fcGFyZW50U3R5bGUpCisgICAgaWYgKG1f
cGFyZW50U3R5bGUgJiYgIW1fcmVzZXRTdHlsZUluaGVyaXRhbmNlKQogICAgICAgICBtX3N0eWxl
LT5pbmhlcml0RnJvbShtX3BhcmVudFN0eWxlKTsKICAgICBlbHNlIHsKICAgICAgICAgbV9wYXJl
bnRTdHlsZSA9IHN0eWxlKCk7CkBAIC0xNjY3LDYgKzE2NzcsMTEgQEAgUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQs
IFJlbmRlclMKIAogICAgIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMobWF0Y2hSZXN1bHQpOwogCisg
ICAgaWYgKG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlKSB7CisgICAgICAgIGFwcGx5UHJvcGVydHko
Q1NTUHJvcGVydHlGb250LCBjc3NWYWx1ZVBvb2woKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1
ZSgpLmdldCgpKTsKKyAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3Io
KSk7CisgICAgfQorCiAgICAgLy8gQ2xlYW4gdXAgb3VyIHN0eWxlIG9iamVjdCdzIGRpc3BsYXkg
YW5kIHRleHQgZGVjb3JhdGlvbnMgKGFtb25nIG90aGVyIGZpeHVwcykuCiAgICAgYWRqdXN0UmVu
ZGVyU3R5bGUoc3R5bGUoKSwgbV9wYXJlbnRTdHlsZSwgZWxlbWVudCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5oCmluZGV4IDM3N2FkZDI5YjcwZjcwMmNjOTMwYjRiNjVlNzgyM2Q2MTkx
MTkwZjQuLmZmMDFlNTQ5YzM1MjY4Zjg2MDUzZDI4YmRjNTQzODkyNjYzZGNlYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtNDk0LDYgKzQ5NCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2ZvbnREaXJ0eTsKICAgICBib29sIG1fbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzOwog
ICAgIGJvb2wgbV9zYW1lT3JpZ2luT25seTsKKyAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRh
bmNlOwogCiAgICAgUmVmUHRyPENTU0ZvbnRTZWxlY3Rvcj4gbV9mb250U2VsZWN0b3I7CiAgICAg
VmVjdG9yPE93blB0cjxNZWRpYVF1ZXJ5UmVzdWx0PiA+IG1fdmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwCmluZGV4IGM2NzliYzhjNDE5MTYxZDQ0M2JlMGVjMjIyYWQyN2YxYWI4MmIzYmYuLjAyNDA3
ZmM5ZTMzNGI4NTg4ZjQ5OWZjZThhY2YyYTlmYzNhOWEyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNTUsNiArNTUsNyBAQCBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICA6IG1fcGhh
c2UoQXR0YWNoaW5nTm90SW5UcmVlKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3BhcmVu
dE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgwKQorICAgICwgbV9yZXNldFN0eWxlSW5oZXJpdGFu
Y2UoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFBhcmVudFNoYWRvdygwKQogICAgICwgbV9pbnNlcnRp
b25Qb2ludCgwKQogICAgICwgbV9zdHlsZSgwKQpAQCAtNjcsNiArNjgsNyBAQCBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICBpZiAocGFy
ZW50LT5pc1NoYWRvd1Jvb3QoKSAmJiB0b1NoYWRvd1Jvb3QocGFyZW50KS0+aXNZb3VuZ2VzdCgp
KSB7CiAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdTaGFkb3dDaGlsZDsKICAgICAgICAgbV9w
YXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnQtPnNoYWRvd0hvc3QoKTsKKyAg
ICAgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0b1NoYWRvd1Jvb3QocGFyZW50KS0+cmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgwLDcg
KzgyLDkgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICBpZiAoKG1faW5zZXJ0aW9uUG9pbnQgPSBtX3Zpc3VhbFBhcmVu
dFNoYWRvdy0+aW5zZXJ0aW9uUG9pbnRGb3IobV9ub2RlKSkpIHsKICAgICAgICAgICAgICAgICBp
ZiAobV9pbnNlcnRpb25Qb2ludC0+c2hhZG93Um9vdCgpLT5pc1VzZWRGb3JSZW5kZXJpbmcoKSkg
ewogICAgICAgICAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoaW5nRGlzdHJpYnV0ZWQ7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gTm9k
ZVJlbmRlcmluZ0NvbnRleHQobV9pbnNlcnRpb25Qb2ludCkucGFyZW50Tm9kZUZvclJlbmRlcmlu
Z0FuZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGlu
c2VydGlvblBvaW50Q29udGV4dChtX2luc2VydGlvblBvaW50KTsKKyAgICAgICAgICAgICAgICAg
ICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBpbnNlcnRpb25Qb2ludENvbnRl
eHQucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAg
IG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gaW5zZXJ0aW9uUG9pbnRDb250ZXh0LnJlc2V0U3R5
bGVJbmhlcml0YW5jZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTAyLDkgKzEwNiwxMSBAQCBOb2RlUmVuZGVyaW5n
Q29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoaW5nRmFsbGJhY2tlZDsKIAotICAg
ICAgICAgICAgaWYgKHRvSW5zZXJ0aW9uUG9pbnQocGFyZW50KS0+aXNBY3RpdmUoKSkKLSAgICAg
ICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IE5vZGVSZW5kZXJp
bmdDb250ZXh0KHBhcmVudCkucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7Ci0gICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAodG9JbnNlcnRpb25Qb2ludChwYXJlbnQpLT5p
c0FjdGl2ZSgpKSB7CisgICAgICAgICAgICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgcGFyZW50
Q29udGV4dChwYXJlbnQpOworICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmlu
Z0FuZFN0eWxlID0gcGFyZW50Q29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KTsKKyAgICAgICAgICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHBhcmVudENvbnRl
eHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBhcmVudDsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTE4LDYgKzEyNCw3IEBAIE5vZGVSZW5kZXJp
bmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlLCBSZW5kZXJTdHlsZSog
c3R5bGUpCiAgICAgOiBtX3BoYXNlKENhbGN1bGF0aW5nKQogICAgICwgbV9ub2RlKG5vZGUpCiAg
ICAgLCBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgwKQorICAgICwgbV9yZXNldFN0
eWxlSW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFBhcmVudFNoYWRvdygwKQogICAg
ICwgbV9pbnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZShzdHlsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggMWQzZGFmM2ZjNTQyNjdkM2I0N2Nk
YTFiYjkxNzFlMmFhMjFhMzlhNi4uODFlMWM1NWY1YzczMTU4NTZhNTY1NWNjOWI0MjdiZTMwOTYw
OGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTQ5
LDYgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgTm9kZSogbm9kZSgpIGNvbnN0OwogICAgIENvbnRh
aW5lck5vZGUqIHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpIGNvbnN0OworICAgIGJv
b2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBwYXJl
bnRSZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyKCkgY29u
c3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyKCkgY29uc3Q7CkBAIC04Myw2
ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgQXR0YWNoaW5nUGhhc2UgbV9waGFzZTsKICAgICBOb2Rl
KiBtX25vZGU7CiAgICAgQ29udGFpbmVyTm9kZSogbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5k
U3R5bGU7CisgICAgYm9vbCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZTsKICAgICBFbGVtZW50U2hh
ZG93KiBtX3Zpc3VhbFBhcmVudFNoYWRvdzsKICAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRp
b25Qb2ludDsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fc3R5bGU7CkBAIC0xMDEsNiArMTAz
LDEyIEBAIGlubGluZSBDb250YWluZXJOb2RlKiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uCiAgICAgcmV0dXJuIG1fcGFyZW50Tm9kZUZv
clJlbmRlcmluZ0FuZFN0eWxlOwogfQogCitpbmxpbmUgYm9vbCBOb2RlUmVuZGVyaW5nQ29udGV4
dDo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9waGFzZSAh
PSBDYWxjdWxhdGluZyk7CisgICAgcmV0dXJuIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlOworfQor
CiBpbmxpbmUgUmVuZGVyU3R5bGUqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpzdHlsZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAK
aW5kZXggNDY0YmVhZTQ4YzZlZTg2Zjc5ZGZkYjdhOTJjYjEwMzE0NDZhZWE2Zi4uODdjY2I0NTM4
ZjUzYzk3M2M3NDM5NjNkMjg3MTIzNmI3NDUyYjJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmNwcApAQCAtNTAsNiArNTAsNyBAQCBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBk
b2N1bWVudCkKICAgICAsIG1fcHJldigwKQogICAgICwgbV9uZXh0KDApCiAgICAgLCBtX2FwcGx5
QXV0aG9yU3R5bGVzKGZhbHNlKQorICAgICwgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UoZmFsc2Up
CiAgICAgLCBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbygwKQogewogICAgIEFTU0VSVChkb2N1
bWVudCk7CkBAIC0xOTEsNiArMTkyLDIwIEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0QXBwbHlBdXRo
b3JTdHlsZXMoYm9vbCB2YWx1ZSkKICAgICBtX2FwcGx5QXV0aG9yU3R5bGVzID0gdmFsdWU7CiB9
CiAKK2Jvb2wgU2hhZG93Um9vdDo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9yZXNldFN0eWxlSW5oZXJpdGFuY2U7Cit9CisKK3ZvaWQgU2hhZG93Um9vdDo6
c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlICE9
IG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlKSB7CisgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRh
bmNlID0gdmFsdWU7CisgICAgICAgIGlmIChhdHRhY2hlZCgpICYmIG93bmVyKCkpCisgICAgICAg
ICAgICBvd25lcigpLT5zZXROZWVkc1JlZGlzdHJpYnV0aW5nKCk7CisgICAgfQorfQorCiB2b2lk
IFNoYWRvd1Jvb3Q6OmF0dGFjaCgpCiB7CiAgICAgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZl
ciA9IGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmlu
ZGV4IDIzODY3ZTczYjk5NDBhYTU5NTkwMzk0ODE5M2RjYmExNWM0NDU5OGMuLjliOWU4ZTA0YzYy
ZmIwYWZkZmEwNTE1NDI2Y2ViMjdjYjAyOGM0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApA
QCAtNjcsNiArNjcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JT
dHlsZXMoKSBjb25zdCBPVkVSUklERTsKICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU3R5bGVzKGJv
b2wpOworICAgIHZpcnR1YWwgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdCBPVkVS
UklERTsKKyAgICB2b2lkIHNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sKTsKIAogICAgIEVs
ZW1lbnQqIGhvc3QoKSBjb25zdCB7IHJldHVybiBzaGFkb3dIb3N0KCk7IH0KICAgICBFbGVtZW50
U2hhZG93KiBvd25lcigpIGNvbnN0OwpAQCAtMTAxLDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAg
U2hhZG93Um9vdCogbV9wcmV2OwogICAgIFNoYWRvd1Jvb3QqIG1fbmV4dDsKICAgICBib29sIG1f
YXBwbHlBdXRob3JTdHlsZXMgOiAxOworICAgIGJvb2wgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2Ug
OiAxOwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRleCBhOTMzMzNiYzEwZDE2ZDRmNjQyMjFm
M2ZhZmE1N2E0ZTg3YTIwZTA2Li45MTk4NzFlY2RiYzcyYjlmMjgxOTQwMjQxZjEyZTNmYzcxYjlh
ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNSw2ICszNSw3IEBAIG1vZHVs
ZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAgICAgYXR0
cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CisgICAgICAgIGF0dHJpYnV0ZSBib29s
ZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5jZTsKIAogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKICAgICAgICAgICAgIHNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggMDc0MDlm
MDY2ZGExNmE5NDk5OTMyNWM3YzVlNmJlZjMxMTlhMmQxYy4uMjA4MDAzYzNkOTYyOWUzZjRhMzgw
YzllYjJiOGRmZmNmZGIxNDBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVT
Y29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTE4OSw2
ICsxODksMTEgQEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFRyZWVTY29wZTo6YWRv
cHRJZk5lZWRlZChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCh0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuaAppbmRleCBlNGM0ZWYzYjJiODQ4ZjI0NWVmZDg3NzM0OTRhM2YzNDhlZWM4MTVlLi5j
ZGZmYWExYjVkZDIxOTUzZTMyN2Y2N2M1MGIwZDQ5MjIxMzRmZWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVT
Y29wZS5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBmaW5kQW5jaG9y
KGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTdHls
ZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29u
c3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5n
LiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3ZmEyYWI2YTJiYzg4N2ZiODdkY2Y5YTMxYTE5NzUwMzY1NTJlNTc1Li44ZGRhMmFkNDVjNDBj
NDg5NGRiZmI4YWEwZTQwYzFhZGVhYjQwZGNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTIt
MDUtMTggIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFNo
YWRvd1Jvb3QgbmVlZHMgcmVzZXRTdHlsZUluaGVyaXRhbmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA0OAorCisgICAgICAgIEFkZGVkIGxheW91
dCB0ZXN0cyBmb3IgY2hlY2tpbmcgd2hldGhlciByZXNldFN0eWxlSW5oZXJpdGFuY2Ugd29ya3Mg
Y29ycmVjdGx5IG9yIG5vdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJp
dGFuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0x
OCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1b
V0syXSBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLW91dC1vZi12aWV3
LWFuZC1zY3JvbGwuaHRtbCBjcmFzaGVzIHJlZ3VsYXJseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0
U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZGViNjU0MzhjNGI1
ZjFkMTRmOWU2MDFiMDFiN2FjNjA5YzJjYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorZGl2LnJlc2V0VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7Cisg
IGJvcmRlcjogc29saWQ7CisgIG1hcmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xv
cjogI2ZlZTsKKyAgZm9udC1mYW1pbHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZv
bnQtc3R5bGU6IGl0YWxpYzsKKyAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdl
aWdodDogYm9sZDsKKyAgbGV0dGVyLXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7
CisgIHRleHQtYWxpZ246IHN0YXJ0OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFu
c2Zvcm06IHVwcGVyY2FzZTsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5n
OiAzMHB4OworfQorZGl2LmluaXRpYWxWYWx1ZXMgeworICBjb2xvcjogaW5pdGlhbDsKKyAgZm9u
dC1mYW1pbHk6IGluaXRpYWw7CisgIGZvbnQtc2l6ZTogaW5pdGlhbDsKKyAgZm9udC1zdHlsZTog
aW5pdGlhbDsKKyAgZm9udC12YXJpYW50OiBpbml0aWFsOworICBmb250LXdlaWdodDogaW5pdGlh
bDsKKyAgbGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7CisgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOwor
ICB0ZXh0LWFsaWduOiBpbml0aWFsOworICB0ZXh0LWluZGVudDogaW5pdGlhbDsKKyAgdGV4dC10
cmFuc2Zvcm06IGluaXRpYWw7CisgIHdoaXRlLXNwYWNlOiBpbml0aWFsOworICB3b3JkLXNwYWNp
bmc6IGluaXRpYWw7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PjxkaXYgY2xh
c3M9InJlc2V0VGVzdCI+PGRpdiBjbGFzcz0iaW5pdGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2
PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2
PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2
PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxW
YWx1ZXMiPnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0
Ij48ZGl2IGNsYXNzPSJpbml0aWFsVmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2
PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzFiOGQyNmE4Mjc1NWQyOWMyMGJjMDJiZmM5YThiMDA3OTg3NmJmNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxl
SW5oZXJpdGFuY2UuaHRtbApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LnJlc2V0VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6
ICNlZWY7CisgIGJvcmRlcjogc29saWQ7CisgIG1hcmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4
OworICBjb2xvcjogI2ZlZTsKKyAgZm9udC1mYW1pbHk6IFNlcmlmOworICBmb250LXNpemU6IDI0
cHg7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOwor
ICBmb250LXdlaWdodDogYm9sZDsKKyAgbGV0dGVyLXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWln
aHQ6IDIwMCU7CisgIHRleHQtYWxpZ246IHN0YXJ0OworICB0ZXh0LWluZGVudDogNTBweDsKKyAg
dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29y
ZC1zcGFjaW5nOiAzMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBhc3NlcnRU
cnVlKGlkLCBhY3R1YWwpIHsKKyAgICBpZiAoIWFjdHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1
cmU6IiArIGlkICsgIjogYXNzZXJ0VHJ1ZSBmYWlsZWQiOworfQorCitmdW5jdGlvbiBhc3NlcnRG
YWxzZShpZCwgYWN0dWFsKSB7CisgICAgaWYgKGFjdHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1
cmU6IiArIGlkICsgICI6IGFzc2VydEZhbHNlIGZhaWxlZCI7Cit9CisKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGEsIGIpCit7CisgICAgaWYgKGEgIT0gYikKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiAr
IGEgKyAiOiBzaG91bGQgYmUgIiArIGI7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdEJlKGEsIGIp
Cit7CisgICAgaWYgKGEgPT0gYikKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBz
aG91bGQgbm90IGJlICIgKyBiOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0icmVzZXQt
c3R5bGUtaW5oZXJpdGFuY2UiPjwvZGl2PgorPGRpdiBpZD0ibm8tcmVzZXQtc3R5bGUtaW5oZXJp
dGFuY2UiPjwvZGl2PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1m
YWxzZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mYWxzZS10by10
cnVlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50
Ij48L2Rpdj4KKzxkaXYgaWQ9Im5vLXJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50
Ij48L2Rpdj4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHJlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhl
cml0YW5jZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3Qg
PSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJl
c2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5
bGVJbmhlcml0YW5jZSk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9k
aXY+JzsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm8tcmVzZXQtc3R5bGUt
aW5oZXJpdGFuY2UnKS5hcHBlbmRDaGlsZChkaXYpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRo
UmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2
YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFs
c2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRv
d1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSA9IHRydWU7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0
PC9kaXY+JzsKKyAgICBhc3NlcnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJl
IHRydWUgYXMgZXhwbGljaXRseSBzZXQnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5j
ZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVy
aXRhbmNlJykuYXBwZW5kQ2hpbGQoZGl2KTsKK30KKworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5n
aW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbVRydWVUb0ZhbHNlKCkgeworICAgIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jl
c2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRp
dik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3Vs
ZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFk
b3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAnPGRpdiBpZD0idGVzdDEiPnRleHQ8L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jl
c2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHls
ZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQt
c3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZScpLmFwcGVuZENoaWxkKGRpdik7CisgICAg
ZGl2Lm9mZnNldExlZnQ7CisgICAgdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QxJyk7CisgICAgc2hvdWxkTm90QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFy
Z2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKKyAgICBzaG91
bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUo
J2xpbmUtaGVpZ2h0JyksICc0OHB4Jyk7CisKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhl
cml0YW5jZSA9IGZhbHNlOworICAgIGFzc2VydEZhbHNlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ug
c2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAg
IGRpdi5vZmZzZXRMZWZ0OworICAgIHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRh
cmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hv
dWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCds
aW5lLWhlaWdodCcpLCAnNDhweCcpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdS
ZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tRmFsc2VUb1RydWUoKSB7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRU
ZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsK
KyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJl
IGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jv
b3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFsc2U7CisgICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPGRpdiBpZD0idGVzdDIiPnRleHQ8L2Rpdj4nOworICAgIGFzc2VydEZhbHNlKCdkZWZh
dWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJl
c2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZhbHNlLXRvLXRydWUnKS5hcHBlbmRDaGlsZChkaXYp
OworICAgIGRpdi5vZmZzZXRMZWZ0OworICAgIHZhciB0YXJnZXQgPSBzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0MicpOworICAgIHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAg
c2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVl
KCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOworCisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5o
ZXJpdGFuY2UgPSB0cnVlOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBz
aG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBk
aXYub2Zmc2V0TGVmdDsKKyAgICBzaG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JyksICdzZXJpZicpOworICAgIHNo
b3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1
ZSgnbGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsKK30KKworZnVuY3Rpb24gY3JlYXRlRGl2V2l0aFRl
eHQodGV4dCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOworICAg
IHJldHVybiBkaXY7Cit9CisKK2Z1bmN0aW9uIHJlbmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZv
ckNvbnRlbnQoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKyAgICBkaXYuYXBwZW5kQ2hpbGQo
Y3JlYXRlRGl2V2l0aFRleHQoJ3RleHQnKSk7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBX
ZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSJkaXYiPjwvY29udGVudD4nOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBhc3NlcnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ug
c2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250
ZW50JykuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBkaXYub2Zmc2V0TGVmdDsKK30KKworZnVuY3Rp
b24gcmVuZGVyTm9SZXNldFN0eWxlSW5oZXJpdGFuY2VGb3JDb250ZW50KCkgeworICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0g
J3Jlc2V0VGVzdCc7CisgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZURpdldpdGhUZXh0KCd0ZXh0
JykpOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOwor
ICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRl
bnQ+JzsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAg
IGFzc2VydEZhbHNlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hh
ZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mb3ItY29udGVudCcpLmFwcGVuZENoaWxk
KGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7Cit9CisKK3JlbmRlcldpdGhOb1Jlc2V0U3R5bGVJ
bmhlcml0YW5jZSgpOworcmVuZGVyV2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVy
V2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbVRydWVUb0ZhbHNlKCk7CityZW5k
ZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tRmFsc2VUb1RydWUoKTsKK3Jl
bmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKTsKK3JlbmRlck5vUmVzZXRTdHls
ZUluaGVyaXRhbmNlRm9yQ29udGVudCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144435</attachid>
            <date>2012-05-28 20:40:50 -0700</date>
            <delta_ts>2012-05-29 22:48:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120529124049.patch</filename>
            <type>text/plain</type>
            <size>21084</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVlOGFiNzhkYmFiYWM5
Y2JiZjk0MDNlY2RjYTFmNGNmZmZiYjNmYy4uOWZkODNmYzYyNGIxMGQxYzIyN2NjYzI3YTczODFj
NmI1MjNmNjI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA1LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUpOgorICAgICAgICBT
ZXQgbV9wYXJlbnRTdHlsZSB0byBOVUxMIHdoZW4gcmVzZXRTdHlsZUluaGVyaXRhbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAg
TW9kaWZpZWQgZGVmYXVsdCBwYXJlbnQgc3lsdGUgaWYgbV9wYXJlbnRTdHlsZSBpcyBOVUxMLiBB
cyBmb250IGRlc2NyaXB0b3IgZGVwZW5kcyBvbgorICAgICAgICBkb2N1bWVudCgpLT5zZXR0aW5n
cygpLCBpZiBkb2N1bWVudCgpLT5zZXR0aW5ncygpIGlzIGF2YWlsYWJsZSwgaS5lLiBkb2N1bWVu
dCBoYXMgYW55IGZyYW1lCisgICAgICAgIGFuZCBwYWdlLCBpbml0aWFsaXplIHBhcmVudCBzdHls
ZSdzIGZvbnQgd2l0aCBkZWZhdWx0IGZvbnQgZGVzY3JpcHRpb24uCisgICAgICAgIE90aGVyd2lz
ZSwgZG8gdGhlIHNhbWUgaW5pdGlhbGl6YXRpb24gYXMgdGhlIHByZXZpb3VzIGNvZGUgZGlkLgor
CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAg
IE1vZGlmaWVkIHRvIGNhbGN1bGF0ZSBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBpbiBpdHMgY29u
c3RydWN0b3IuCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKToK
KyAgICAgICAgSW1wbGVtZW50ZWQgYSBuZXcgbWV0aG9kLCBqdXN0IHJldHVybmluZyBtX3Jlc2V0
U3R5bGVJbmhlcml0YW5jZS4KKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAg
ICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgQWRk
ZWQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGdldHRlciBhbmQgc2V0dGVyLgorICAgICAgICAqIGRv
bS9TaGFkb3dSb290LmlkbDoKKyAgICAgICAgQWRkZWQgYW4gYXR0cmlidXRlLCByZXNldFN0eWxl
SW5oZXJpdGFuY2UuCisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgICogZG9tL1Ry
ZWVTY29wZS5oOgorICAgICAgICAoVHJlZVNjb3BlKToKKyAgICAgICAgQWRkZWQgcmVzZXRTdHls
ZUluaGVyaXRhbmNlJ3MgZGVmYXVsdCBnZXR0ZXIuCisgICAgICAgIFRoZSBnZXR0ZXIgd2lsbCBi
ZSBvdmVycmlkZWQgYnkgY2xhc3MgU2hhZG93Um9vdCdzIGdldHRlci4KKwogMjAxMi0wNS0yOCAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZW5hbWUgRnJh
bWVMb2FkZXJDbGllbnQ6OnNoYWRvd0RPTUFsbG93ZWQoKSB0byBhbGxvd1NoYWRvd0RPTSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMDZiNDFhOGFjZTEzOTFkYWZlNzE2
M2Y2OTYxNzhmZmJhYzhkZWEyZC4uYzcwZDIzY2M1ZjJlZWM4YWZkMmMyMzA1ODFmNzNhYjE2ODc5
N2ZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNDksNiArNDksNyBA
QAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlv
blZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVQ
b29sLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWxjdWxhdGlvblZh
bHVlLmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKQEAgLTc4LDYgKzc5LDcgQEAKICNpbmNs
dWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5j
bHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAi
UGFpci5oIgpAQCAtMTE2MCw5ICsxMTYyLDE3IEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6
OmluaXRGb3JTdHlsZVJlc29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0CiB7
CiAgICAgbV9jaGVja2VyLnNldFBzZXVkb1N0eWxlKHBzZXVkb0lEKTsKIAotICAgIG1fcGFyZW50
Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7Ci0KLSAg
ICBpZiAocGFyZW50U3R5bGUpCisgICAgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxz
ZTsKKyAgICBpZiAoZSkgeworICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgY29udGV4dChlKTsK
KyAgICAgIG1fcGFyZW50Tm9kZSA9IGNvbnRleHQucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0
eWxlKCk7CisgICAgICByZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBjb250ZXh0LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSgpOworICAgIH0gZWxzZQorICAgICAgbV9wYXJlbnROb2RlID0gMDsKKworICAg
IGlmIChyZXNldFN0eWxlSW5oZXJpdGFuY2UpCisgICAgICAgIG1fcGFyZW50U3R5bGUgPSAwOwor
ICAgIGVsc2UgaWYgKHBhcmVudFN0eWxlKQogICAgICAgICBtX3BhcmVudFN0eWxlID0gcGFyZW50
U3R5bGU7CiAgICAgZWxzZQogICAgICAgICBtX3BhcmVudFN0eWxlID0gbV9wYXJlbnROb2RlID8g
bV9wYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpIDogMDsKQEAgLTE2NDcsNyArMTY1NywxMSBAQCBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCwgUmVuZGVyUwogICAgIGVsc2UgewogICAgICAgICBtX3BhcmVudFN0eWxl
ID0gc3R5bGUoKTsKICAgICAgICAgLy8gTWFrZSBzdXJlIG91ciBmb250cyBhcmUgaW5pdGlhbGl6
ZWQgaWYgd2UgZG9uJ3QgaW5oZXJpdCB0aGVtIGZyb20gb3VyIHBhcmVudCBzdHlsZS4KLSAgICAg
ICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKyAgICAgICAgaWYgKG1fY2hlY2tlci5kb2N1
bWVudCgpLT5zZXR0aW5ncygpKSB7CisgICAgICAgICAgICBhcHBseVByb3BlcnR5KENTU1Byb3Bl
cnR5Rm9udCwgY3NzVmFsdWVQb29sKCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKS5nZXQo
KSk7CisgICAgICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3RvcigpKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKDApOwog
ICAgIH0KIAogICAgIC8vIEV2ZW4gaWYgc3Vycm91bmRpbmcgY29udGVudCBpcyB1c2VyLWVkaXRh
YmxlLCBzaGFkb3cgRE9NIHNob3VsZCBhY3QgYXMgYSBzaW5nbGUgdW5pdCwgYW5kIG5vdCBuZWNl
c3NhcmlseSBiZSBlZGl0YWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
ZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHAKaW5kZXggY2JhYmE0ODM4ZTIwYjc5ZWZlNDgyNGU3NmI0ZDhiNTczODVkNTRiZS4u
ZmI5NTVjYmYxNjUzYTk0ODAxMjJhMTM1MjU0Nzc0ZTgyMDIxMjliMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC01NSw2ICs1NSw3IEBAIE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgIDog
bV9waGFzZShBdHRhY2hpbmdOb3RJblRyZWUpCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1f
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKDApCisgICAgLCBtX3Jlc2V0U3R5bGVJbmhl
cml0YW5jZShmYWxzZSkKICAgICAsIG1fdmlzdWFsUGFyZW50U2hhZG93KDApCiAgICAgLCBtX2lu
c2VydGlvblBvaW50KDApCiAgICAgLCBtX3N0eWxlKDApCkBAIC02Nyw2ICs2OCw3IEBAIE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgIGlm
IChwYXJlbnQtPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93Um9vdChwYXJlbnQpLT5pc1lvdW5n
ZXN0KCkpIHsKICAgICAgICAgbV9waGFzZSA9IEF0dGFjaGluZ1NoYWRvd0NoaWxkOwogICAgICAg
ICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHRvU2hhZG93Um9vdChwYXJlbnQp
LT5ob3N0KCk7CisgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdG9TaGFkb3dSb290
KHBhcmVudCktPnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC04MCw3ICs4Miw5IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5n
Q29udGV4dChOb2RlKiBub2RlKQogICAgICAgICAgICAgaWYgKChtX2luc2VydGlvblBvaW50ID0g
bV92aXN1YWxQYXJlbnRTaGFkb3ctPmluc2VydGlvblBvaW50Rm9yKG1fbm9kZSkpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKG1faW5zZXJ0aW9uUG9pbnQtPnNoYWRvd1Jvb3QoKS0+aXNVc2VkRm9y
UmVuZGVyaW5nKCkpIHsKICAgICAgICAgICAgICAgICAgICAgbV9waGFzZSA9IEF0dGFjaGluZ0Rp
c3RyaWJ1dGVkOwotICAgICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdB
bmRTdHlsZSA9IE5vZGVSZW5kZXJpbmdDb250ZXh0KG1faW5zZXJ0aW9uUG9pbnQpLnBhcmVudE5v
ZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOworICAgICAgICAgICAgICAgICAgICBOb2RlUmVuZGVy
aW5nQ29udGV4dCBpbnNlcnRpb25Qb2ludENvbnRleHQobV9pbnNlcnRpb25Qb2ludCk7CisgICAg
ICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gaW5zZXJ0
aW9uUG9pbnRDb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOworICAgICAg
ICAgICAgICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGluc2VydGlvblBvaW50Q29u
dGV4dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTEwMiw5ICsxMDYsMTEgQEAg
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9waGFzZSA9IEF0dGFjaGluZ0ZhbGxi
YWNrZWQ7CiAKLSAgICAgICAgICAgIGlmICh0b0luc2VydGlvblBvaW50KHBhcmVudCktPmlzQWN0
aXZlKCkpCi0gICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUg
PSBOb2RlUmVuZGVyaW5nQ29udGV4dChwYXJlbnQpLnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRT
dHlsZSgpOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKHRvSW5zZXJ0aW9uUG9p
bnQocGFyZW50KS0+aXNBY3RpdmUoKSkgeworICAgICAgICAgICAgICAgIE5vZGVSZW5kZXJpbmdD
b250ZXh0IHBhcmVudENvbnRleHQocGFyZW50KTsKKyAgICAgICAgICAgICAgICBtX3BhcmVudE5v
ZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBhcmVudENvbnRleHQucGFyZW50Tm9kZUZvclJlbmRl
cmluZ0FuZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2Ug
PSBwYXJlbnRDb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAgICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBw
YXJlbnQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTExOCw2ICsxMjQsNyBA
QCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSwg
UmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIDogbV9waGFzZShDYWxjdWxhdGluZykKICAgICAsIG1f
bm9kZShub2RlKQogICAgICwgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoMCkKKyAg
ICAsIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlKGZhbHNlKQogICAgICwgbV92aXN1YWxQYXJlbnRT
aGFkb3coMCkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnQoMCkKICAgICAsIG1fc3R5bGUoc3R5bGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDFkM2RhZjNm
YzU0MjY3ZDNiNDdjZGExYmI5MTcxZTJhYTIxYTM5YTYuLjgxZTFjNTVmNWM3MzE1ODU2YTU2NTVj
YzliNDI3YmUzMDk2MDhiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIE5vZGUqIG5vZGUoKSBjb25z
dDsKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSBj
b25zdDsKKyAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0OwogICAgIFJlbmRl
ck9iamVjdCogcGFyZW50UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIG5leHRS
ZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlcigpIGNv
bnN0OwpAQCAtODMsNiArODQsNyBAQCBwcml2YXRlOgogICAgIEF0dGFjaGluZ1BoYXNlIG1fcGhh
c2U7CiAgICAgTm9kZSogbV9ub2RlOwogICAgIENvbnRhaW5lck5vZGUqIG1fcGFyZW50Tm9kZUZv
clJlbmRlcmluZ0FuZFN0eWxlOworICAgIGJvb2wgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2U7CiAg
ICAgRWxlbWVudFNoYWRvdyogbV92aXN1YWxQYXJlbnRTaGFkb3c7CiAgICAgSW5zZXJ0aW9uUG9p
bnQqIG1faW5zZXJ0aW9uUG9pbnQ7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOwpA
QCAtMTAxLDYgKzEwMywxMiBAQCBpbmxpbmUgQ29udGFpbmVyTm9kZSogTm9kZVJlbmRlcmluZ0Nv
bnRleHQ6OnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpIGNvbgogICAgIHJldHVybiBt
X3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsKIH0KIAoraW5saW5lIGJvb2wgTm9kZVJl
bmRlcmluZ0NvbnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUKG1fcGhhc2UgIT0gQ2FsY3VsYXRpbmcpOworICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhl
cml0YW5jZTsKK30KKwogaW5saW5lIFJlbmRlclN0eWxlKiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
c3R5bGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0eWxlLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwCmluZGV4IDNlYmE4MTJmYzBmOGQzZGQ2OTc5YjhhOTM5MjYxZjA0YjE3ZGQ4
ODAuLjM5ZTE2MDY0YjNhODcyOTdlZWY3MjgwZDg3ODJiNmZlNmUyZWJmMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9v
dChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX3ByZXYoMCkKICAgICAsIG1fbmV4dCgwKQog
ICAgICwgbV9hcHBseUF1dGhvclN0eWxlcyhmYWxzZSkKKyAgICAsIG1fcmVzZXRTdHlsZUluaGVy
aXRhbmNlKGZhbHNlKQogICAgICwgbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8oMCkKIHsKICAg
ICBBU1NFUlQoZG9jdW1lbnQpOwpAQCAtMTk0LDYgKzE5NSwyMCBAQCB2b2lkIFNoYWRvd1Jvb3Q6
OnNldEFwcGx5QXV0aG9yU3R5bGVzKGJvb2wgdmFsdWUpCiAgICAgfQogfQogCitib29sIFNoYWRv
d1Jvb3Q6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVz
ZXRTdHlsZUluaGVyaXRhbmNlOworfQorCit2b2lkIFNoYWRvd1Jvb3Q6OnNldFJlc2V0U3R5bGVJ
bmhlcml0YW5jZShib29sIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSAhPSBtX3Jlc2V0U3R5bGVJ
bmhlcml0YW5jZSkgeworICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHZhbHVlOwor
ICAgICAgICBpZiAoYXR0YWNoZWQoKSAmJiBvd25lcigpKQorICAgICAgICAgICAgb3duZXIoKS0+
c2V0TmVlZHNSZWRpc3RyaWJ1dGluZygpOworICAgIH0KK30KKwogdm9pZCBTaGFkb3dSb290Ojph
dHRhY2goKQogewogICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSBkb2N1bWVudCgp
LT5zdHlsZVJlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCAxNDExZmE1MmFj
Y2ExMzZlYzNiNDMzN2JhNDk5NjM5MjM2ODE3OTUzLi41YTlhZjFmNjU5MDNjNzk4YmZjNWExMzQw
NmEyNmY0YjhhMzg0NWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTY0LDYgKzY0LDgg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclN0eWxlcyhib29sKTsKKyAgICB2aXJ0
dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdm9p
ZCBzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CiAKICAgICBFbGVtZW50KiBob3N0KCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRIb3N0KEVsZW1lbnQqKTsKQEAgLTk5LDYgKzEwMSw3IEBAIHBy
aXZhdGU6CiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAgIFNoYWRvd1Jvb3QqIG1fbmV4dDsK
ICAgICBib29sIG1fYXBwbHlBdXRob3JTdHlsZXMgOiAxOworICAgIGJvb2wgbV9yZXNldFN0eWxl
SW5oZXJpdGFuY2UgOiAxOwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNz
aWduZWRUbzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRleCA4MTEwYzFlMDhh
NzQzZDczZWMxMzQ1MmNhNmE0ZGI2YTM3NDc0MWMwLi4wMGY3Y2Q4M2E1MjRiMmI1NjE2N2UwMmM3
NDBmY2MyM2MxNjY5ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNCw2ICsz
NCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQg
aG9zdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsK
ICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CisgICAgICAgIGF0
dHJpYnV0ZSBib29sZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5jZTsKIAogICAgICAgICBhdHRyaWJ1
dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKICAgICAgICAg
ICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAK
aW5kZXggMmY2ZjhiZDllYTBhODg3Yzk4NWEwZWNlN2YxYTQ5NDc3NDkwZDE0Yi4uYWFiZjQxN2M0
NWZlOTlhMzZlNTExNWFhNGE0ZTJkODE4Yzk4NDlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5j
cHAKQEAgLTE5MCw2ICsxOTAsMTEgQEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9yU3R5bGVz
KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUcmVlU2NvcGU6OnJlc2V0U3R5
bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFRy
ZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCBlNGM0ZWYzYjJiODQ4ZjI0NWVmZDg3NzM0OTRhM2Yz
NDhlZWM4MTVlLi5jZGZmYWExYjVkZDIxOTUzZTMyN2Y2N2M1MGIwZDQ5MjIxMzRmZWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50
KiBmaW5kQW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBw
bHlBdXRob3JTdHlsZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVy
aXRhbmNlKCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24g
bWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5v
ZGUqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0NDI1YjBhOTVkYmE4OWE0MGNmMDU1YTUyMzJmNWJhZjc0MDc3NmZhLi5i
YmIwZmQ1N2VmMWNjMjMyMWNkOTA3ZDIyZGQ2ODEyMmVkNmQ4YmNhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTItMDUtMTggIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgor
CisgICAgICAgIFNoYWRvd1Jvb3QgbmVlZHMgcmVzZXRTdHlsZUluaGVyaXRhbmNlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA0OAorCisgICAgICAg
IEFkZGVkIGxheW91dCB0ZXN0cyBmb3IgY2hlY2tpbmcgd2hldGhlciByZXNldFN0eWxlSW5oZXJp
dGFuY2Ugd29ya3MgY29ycmVjdGx5IG9yIG5vdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNl
dFN0eWxlSW5oZXJpdGFuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KwogMjAxMi0wNS0yOCAgRGF2aWQgQmFydG9uICA8ZGJhcnRvbkBtYXRoc2NyaWJlLmNvbT4KIAog
ICAgICAgICBtYXRobWwvcHJlc2VudGF0aW9uL21vLXN0cmV0Y2guaHRtbCBhbmQgbXJvb3QtcHJl
Zi13aWR0aC5odG1sIHRlc3RzIGZhaWwgb24gTWFjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHls
ZUluaGVyaXRhbmNlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZkZWI2NTQzOGM0YjVmMWQx
NGY5ZTYwMWIwMWI3YWM2MDljMmNiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+CitkaXYucmVzZXRUZXN0IHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjsKKyAgYm9y
ZGVyOiBzb2xpZDsKKyAgbWFyZ2luOiA0cHg7CisgIHBhZGRpbmc6IDE2cHg7CisgIGNvbG9yOiAj
ZmVlOworICBmb250LWZhbWlseTogU2VyaWY7CisgIGZvbnQtc2l6ZTogMjRweDsKKyAgZm9udC1z
dHlsZTogaXRhbGljOworICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7CisgIGZvbnQtd2VpZ2h0
OiBib2xkOworICBsZXR0ZXItc3BhY2luZzogMnB4OworICBsaW5lLWhlaWdodDogMjAwJTsKKyAg
dGV4dC1hbGlnbjogc3RhcnQ7CisgIHRleHQtaW5kZW50OiA1MHB4OworICB0ZXh0LXRyYW5zZm9y
bTogdXBwZXJjYXNlOworICB3aGl0ZS1zcGFjZTogbm93cmFwOworICB3b3JkLXNwYWNpbmc6IDMw
cHg7Cit9CitkaXYuaW5pdGlhbFZhbHVlcyB7CisgIGNvbG9yOiBpbml0aWFsOworICBmb250LWZh
bWlseTogaW5pdGlhbDsKKyAgZm9udC1zaXplOiBpbml0aWFsOworICBmb250LXN0eWxlOiBpbml0
aWFsOworICBmb250LXZhcmlhbnQ6IGluaXRpYWw7CisgIGZvbnQtd2VpZ2h0OiBpbml0aWFsOwor
ICBsZXR0ZXItc3BhY2luZzogaW5pdGlhbDsKKyAgbGluZS1oZWlnaHQ6IGluaXRpYWw7CisgIHRl
eHQtYWxpZ246IGluaXRpYWw7CisgIHRleHQtaW5kZW50OiBpbml0aWFsOworICB0ZXh0LXRyYW5z
Zm9ybTogaW5pdGlhbDsKKyAgd2hpdGUtc3BhY2U6IGluaXRpYWw7CisgIHdvcmQtc3BhY2luZzog
aW5pdGlhbDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+PGRpdiBjbGFzcz0i
cmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0aWFsVmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9k
aXY+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdj50ZXh0PC9kaXY+PC9kaXY+PC9k
aXY+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdj50ZXh0PC9kaXY+PC9kaXY+PC9k
aXY+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdiBjbGFzcz0iaW5pdGlhbFZhbHVl
cyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxk
aXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXY+PGRp
diBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MWI4ZDI2YTgyNzU1ZDI5YzIwYmMwMmJmYzlhOGIwMDc5ODc2YmY1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhl
cml0YW5jZS5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CitkaXYucmVzZXRUZXN0IHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2Vl
ZjsKKyAgYm9yZGVyOiBzb2xpZDsKKyAgbWFyZ2luOiA0cHg7CisgIHBhZGRpbmc6IDE2cHg7Cisg
IGNvbG9yOiAjZmVlOworICBmb250LWZhbWlseTogU2VyaWY7CisgIGZvbnQtc2l6ZTogMjRweDsK
KyAgZm9udC1zdHlsZTogaXRhbGljOworICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7CisgIGZv
bnQtd2VpZ2h0OiBib2xkOworICBsZXR0ZXItc3BhY2luZzogMnB4OworICBsaW5lLWhlaWdodDog
MjAwJTsKKyAgdGV4dC1hbGlnbjogc3RhcnQ7CisgIHRleHQtaW5kZW50OiA1MHB4OworICB0ZXh0
LXRyYW5zZm9ybTogdXBwZXJjYXNlOworICB3aGl0ZS1zcGFjZTogbm93cmFwOworICB3b3JkLXNw
YWNpbmc6IDMwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGFzc2VydFRydWUo
aWQsIGFjdHVhbCkgeworICAgIGlmICghYWN0dWFsKQorICAgICAgICB0aHJvdyAiZmFpbHVyZToi
ICsgaWQgKyAiOiBhc3NlcnRUcnVlIGZhaWxlZCI7Cit9CisKK2Z1bmN0aW9uIGFzc2VydEZhbHNl
KGlkLCBhY3R1YWwpIHsKKyAgICBpZiAoYWN0dWFsKQorICAgICAgICB0aHJvdyAiZmFpbHVyZToi
ICsgaWQgKyAgIjogYXNzZXJ0RmFsc2UgZmFpbGVkIjsKK30KKworZnVuY3Rpb24gc2hvdWxkQmUo
YSwgYikKK3sKKyAgICBpZiAoYSAhPSBiKQorICAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgYSAr
ICI6IHNob3VsZCBiZSAiICsgYjsKK30KKworZnVuY3Rpb24gc2hvdWxkTm90QmUoYSwgYikKK3sK
KyAgICBpZiAoYSA9PSBiKQorICAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgYSArICI6IHNob3Vs
ZCBub3QgYmUgIiArIGI7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJyZXNldC1zdHls
ZS1pbmhlcml0YW5jZSI+PC9kaXY+Cis8ZGl2IGlkPSJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5j
ZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS10cnVlLXRvLWZhbHNl
Ij48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZhbHNlLXRvLXRydWUi
PjwvZGl2PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQiPjwv
ZGl2PgorPGRpdiBpZD0ibm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQiPjwv
ZGl2PgorCis8c2NyaXB0PgorZnVuY3Rpb24gcmVuZGVyV2l0aE5vUmVzZXRTdHlsZUluaGVyaXRh
bmNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
ICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5l
dyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRT
dHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4n
OworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhl
cml0YW5jZScpLmFwcGVuZENoaWxkKGRpdik7Cit9CisKK2Z1bmN0aW9uIHJlbmRlcldpdGhSZXNl
dFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBz
aGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBhc3NlcnRGYWxzZSgn
ZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9v
dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVy
aXRhbmNlID0gdHJ1ZTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rp
dj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1
ZSBhcyBleHBsaWNpdGx5IHNldCcsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsK
KyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFu
Y2UnKS5hcHBlbmRDaGlsZChkaXYpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdS
ZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tVHJ1ZVRvRmFsc2UoKSB7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRU
ZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsK
KyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJl
IGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jv
b3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICc8ZGl2IGlkPSJ0ZXN0MSI+dGV4dDwvZGl2Pic7CisgICAgYXNzZXJ0VHJ1ZSgncmVzZXRT
dHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSB0cnVlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5o
ZXJpdGFuY2UpOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHls
ZS1pbmhlcml0YW5jZS10cnVlLXRvLWZhbHNlJykuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBkaXYu
b2Zmc2V0TGVmdDsKKyAgICB2YXIgdGFyZ2V0ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgn
dGVzdDEnKTsKKyAgICBzaG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQp
LmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JyksICdzZXJpZicpOworICAgIHNob3VsZE5v
dEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnbGlu
ZS1oZWlnaHQnKSwgJzQ4cHgnKTsKKworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRh
bmNlID0gZmFsc2U7CisgICAgYXNzZXJ0RmFsc2UoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91
bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgZGl2
Lm9mZnNldExlZnQ7CisgICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0
KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKKyAgICBzaG91bGRC
ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUt
aGVpZ2h0JyksICc0OHB4Jyk7Cit9CisKK2Z1bmN0aW9uIHJlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0
U3R5bGVJbmhlcml0YW5jZUZyb21GYWxzZVRvVHJ1ZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRlc3Qn
OworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAg
IGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFs
c2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgc2hhZG93Um9vdC5y
ZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9
ICc8ZGl2IGlkPSJ0ZXN0MiI+dGV4dDwvZGl2Pic7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQg
cmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVz
ZXQtc3R5bGUtaW5oZXJpdGFuY2UtZmFsc2UtdG8tdHJ1ZScpLmFwcGVuZENoaWxkKGRpdik7Cisg
ICAgZGl2Lm9mZnNldExlZnQ7CisgICAgdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QyJyk7CisgICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFy
Z2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKKyAgICBzaG91
bGRCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xp
bmUtaGVpZ2h0JyksICc0OHB4Jyk7CisKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0
YW5jZSA9IHRydWU7CisgICAgYXNzZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3Vs
ZCBiZSB0cnVlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIGRpdi5v
ZmZzZXRMZWZ0OworICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdl
dCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxk
Tm90QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCds
aW5lLWhlaWdodCcpLCAnNDhweCcpOworfQorCitmdW5jdGlvbiBjcmVhdGVEaXZXaXRoVGV4dCh0
ZXh0KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7CisgICAgcmV0
dXJuIGRpdjsKK30KKworZnVuY3Rpb24gcmVuZGVyUmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29u
dGVudCgpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOworICAgIGRpdi5hcHBlbmRDaGlsZChjcmVh
dGVEaXZXaXRoVGV4dCgndGV4dCcpKTsKKworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBz
ZWxlY3Q9ImRpdiI+PC9jb250ZW50Pic7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJp
dGFuY2UgPSB0cnVlOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91
bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQn
KS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRpdi5vZmZzZXRMZWZ0OworfQorCitmdW5jdGlvbiBy
ZW5kZXJOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKSB7CisgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVz
ZXRUZXN0JzsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2V2l0aFRleHQoJ3RleHQnKSk7
CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXYiPjwvY29udGVudD4n
OworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFsc2U7CisgICAgYXNz
ZXJ0RmFsc2UoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dS
b290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J25vLXJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50JykuYXBwZW5kQ2hpbGQoZGl2
KTsKKyAgICBkaXYub2Zmc2V0TGVmdDsKK30KKworcmVuZGVyV2l0aE5vUmVzZXRTdHlsZUluaGVy
aXRhbmNlKCk7CityZW5kZXJXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CityZW5kZXJXaXRo
Q2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tVHJ1ZVRvRmFsc2UoKTsKK3JlbmRlcldp
dGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21GYWxzZVRvVHJ1ZSgpOworcmVuZGVy
UmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgpOworcmVuZGVyTm9SZXNldFN0eWxlSW5o
ZXJpdGFuY2VGb3JDb250ZW50KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144706</attachid>
            <date>2012-05-29 22:48:49 -0700</date>
            <delta_ts>2012-05-30 22:16:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120530144848.patch</filename>
            <type>text/plain</type>
            <size>21773</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI3Y2IzMTM0MDVhMTY1
MDI3NjRjNzVhMzQ5YThlZWNhMWMyMjAwZS4uZThiMWI2NWUzMjMxNjQ0NjNlNDhmNTVmOGY1MjY5
YjM5Y2Y3OGUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA1LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUpOgorICAgICAgICBT
ZXQgbV9wYXJlbnRTdHlsZSB0byBOVUxMIHdoZW4gcmVzZXRTdHlsZUluaGVyaXRhbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAg
TW9kaWZpZWQgZGVmYXVsdCBwYXJlbnQgc3lsdGUgaWYgbV9wYXJlbnRTdHlsZSBpcyBOVUxMLiBB
cyBmb250IGRlc2NyaXB0b3IgZGVwZW5kcyBvbgorICAgICAgICBkb2N1bWVudCgpLT5zZXR0aW5n
cygpLCBpZiBkb2N1bWVudCgpLT5zZXR0aW5ncygpIGlzIGF2YWlsYWJsZSwgaS5lLiBkb2N1bWVu
dCBoYXMgYW55IGZyYW1lCisgICAgICAgIGFuZCBwYWdlLCBpbml0aWFsaXplIHBhcmVudCBzdHls
ZSdzIGZvbnQgd2l0aCBkZWZhdWx0IGZvbnQgZGVzY3JpcHRpb24uCisgICAgICAgIE90aGVyd2lz
ZSwgZG8gdGhlIHNhbWUgaW5pdGlhbGl6YXRpb24gYXMgdGhlIHByZXZpb3VzIGNvZGUgZGlkLgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICBN
b2RpZmllZCB0byBjYWxjdWxhdGUgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgaW4gaXRzIGNvbnN0
cnVjdG9yLgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6Cisg
ICAgICAgIEltcGxlbWVudGVkIGEgbmV3IG1ldGhvZCwganVzdCByZXR1cm5pbmcgbV9yZXNldFN0
eWxlSW5oZXJpdGFuY2UuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAg
KiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgIEFkZGVk
IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBnZXR0ZXIgYW5kIHNldHRlci4KKyAgICAgICAgKiBkb20v
U2hhZG93Um9vdC5pZGw6CisgICAgICAgIEFkZGVkIGFuIGF0dHJpYnV0ZSwgcmVzZXRTdHlsZUlu
aGVyaXRhbmNlLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlOjpyZXNldFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICAqIGRvbS9UcmVl
U2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAgIEFkZGVkIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSdzIGRlZmF1bHQgZ2V0dGVyLgorICAgICAgICBUaGUgZ2V0dGVyIHdpbGwgYmUg
b3ZlcnJpZGVkIGJ5IGNsYXNzIFNoYWRvd1Jvb3QncyBnZXR0ZXIuCisKIDIwMTItMDUtMjkgIE1h
cmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0g
TW92ZSBmaWxlRXhpc3RzIHRvIFBsYXRmb3JtLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAppbmRleCA0OWE1ZTFjZGM1NWFhNmI4YmMzNWVkYTliODdjOTE2ZjBiNjlmNDJmLi4xNGRi
ZTcxNGUzNjQ2YmM0ZjYzNDc3NTg5YjYwOWUyMTczOTg0MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVl
dC5oIgogI2luY2x1ZGUgIkNTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NW
YWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYWNoZWRJ
bWFnZS5oIgogI2luY2x1ZGUgIkNhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDb250ZW50
RGF0YS5oIgpAQCAtNzgsNiArNzksNyBAQAogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1
ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIK
KyNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWlyLmgiCkBAIC0xMTYwLDEyICsxMTYy
LDIwIEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxl
bWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0CiB7CiAgICAgbV9jaGVja2VyLnNldFBzZXVk
b1N0eWxlKHBzZXVkb0lEKTsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7CisgICAgaWYgKGUpIHsKKyAgICAgICAgTm9kZVJl
bmRlcmluZ0NvbnRleHQgY29udGV4dChlKTsKKyAgICAgICAgbV9wYXJlbnROb2RlID0gY29udGV4
dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKIAotICAgIGlmIChwYXJlbnRTdHls
ZSkKKyAgICAgICAgaWYgKGNvbnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCkpCisgICAgICAg
ICAgICBtX3BhcmVudFN0eWxlID0gMDsKKyAgICAgICAgZWxzZSBpZiAocGFyZW50U3R5bGUpCisg
ICAgICAgICAgICBtX3BhcmVudFN0eWxlID0gcGFyZW50U3R5bGU7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJl
bmRlclN0eWxlKCkgOiAwOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fcGFyZW50Tm9kZSA9IDA7
CiAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBwYXJlbnRTdHlsZTsKLSAgICBlbHNlCi0gICAgICAg
IG1fcGFyZW50U3R5bGUgPSBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxl
KCkgOiAwOworICAgIH0KIAogICAgIE5vZGUqIGRvY0VsZW1lbnQgPSBlID8gZS0+ZG9jdW1lbnQo
KS0+ZG9jdW1lbnRFbGVtZW50KCkgOiAwOwogICAgIFJlbmRlclN0eWxlKiBkb2NTdHlsZSA9IG1f
Y2hlY2tlci5kb2N1bWVudCgpLT5yZW5kZXJTdHlsZSgpOwpAQCAtMTYxOSw2ICsxNjI5LDE0IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc0F0U2hhZG93Qm91bmRhcnkoRWxlbWVudCogZWxlbWVudCkK
ICAgICByZXR1cm4gcGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLT5pc1NoYWRvd1Jvb3QoKTsKIH0K
IAorc3RhdGljIGlubGluZSBib29sIGlzRm9udERlc2NyaXB0aW9uQXZhaWxhYmxlKERvY3VtZW50
KiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgcmV0dXJuIGZyYW1l
ICYmIGZyYW1lLT5wYWdlKCk7Cit9CisKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVz
b2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJTdHlsZSogZGVm
YXVsdFBhcmVudCwKICAgICBTdHlsZVNoYXJpbmdCZWhhdmlvciBzaGFyaW5nQmVoYXZpb3IsIFJ1
bGVNYXRjaGluZ0JlaGF2aW9yIG1hdGNoaW5nQmVoYXZpb3IsIFJlbmRlclJlZ2lvbiogcmVnaW9u
Rm9yU3R5bGluZykKIHsKQEAgLTE2NTAsNyArMTY2OCwxMSBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVu
ZGVyUwogICAgIGVsc2UgewogICAgICAgICBtX3BhcmVudFN0eWxlID0gc3R5bGUoKTsKICAgICAg
ICAgLy8gTWFrZSBzdXJlIG91ciBmb250cyBhcmUgaW5pdGlhbGl6ZWQgaWYgd2UgZG9uJ3QgaW5o
ZXJpdCB0aGVtIGZyb20gb3VyIHBhcmVudCBzdHlsZS4KLSAgICAgICAgbV9zdHlsZS0+Zm9udCgp
LnVwZGF0ZSgwKTsKKyAgICAgICAgaWYgKGlzRm9udERlc2NyaXB0aW9uQXZhaWxhYmxlKG1fY2hl
Y2tlci5kb2N1bWVudCgpKSkgeworICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0
eUZvbnQsIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCkuZ2V0KCkp
OworICAgICAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKICAg
ICB9CiAKICAgICAvLyBFdmVuIGlmIHN1cnJvdW5kaW5nIGNvbnRlbnQgaXMgdXNlci1lZGl0YWJs
ZSwgc2hhZG93IERPTSBzaG91bGQgYWN0IGFzIGEgc2luZ2xlIHVuaXQsIGFuZCBub3QgbmVjZXNz
YXJpbHkgYmUgZWRpdGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuY3BwCmluZGV4IDdmNzBlN2MwZmYyMGMwMzRiODViNWFjOGFlMjY5M2ZhNjZmOTM1OGMuLmI0
ZDZkNDY4NmZkNjRmMDI0MjI4OWViYmMwN2JmMzU3NTI0NWNhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNTUsNiArNTUsNyBAQCBOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICA6IG1f
cGhhc2UoQXR0YWNoaW5nTm90SW5UcmVlKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3Bh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgwKQorICAgICwgbV9yZXNldFN0eWxlSW5oZXJp
dGFuY2UoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFBhcmVudFNoYWRvdygwKQogICAgICwgbV9pbnNl
cnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZSgwKQpAQCAtNjcsNiArNjgsNyBAQCBOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICBpZiAo
cGFyZW50LT5pc1NoYWRvd1Jvb3QoKSAmJiB0b1NoYWRvd1Jvb3QocGFyZW50KS0+aXNZb3VuZ2Vz
dCgpKSB7CiAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdTaGFkb3dDaGlsZDsKICAgICAgICAg
bV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSB0b1NoYWRvd1Jvb3QocGFyZW50KS0+
aG9zdCgpOworICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRvU2hhZG93Um9vdChw
YXJlbnQpLT5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtODIsNyArODQsOSBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0Nv
bnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGlmICgobV9pbnNlcnRpb25Qb2ludCA9IG1f
dmlzdWFsUGFyZW50U2hhZG93LT5pbnNlcnRpb25Qb2ludEZvcihtX25vZGUpKSkgewogICAgICAg
ICAgICAgICAgIGlmIChtX2luc2VydGlvblBvaW50LT5zaGFkb3dSb290KCktPmlzVXNlZEZvclJl
bmRlcmluZygpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdEaXN0
cmlidXRlZDsKLSAgICAgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5k
U3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChtX2luc2VydGlvblBvaW50KS5wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICAgICAgTm9kZVJlbmRlcmlu
Z0NvbnRleHQgaW5zZXJ0aW9uUG9pbnRDb250ZXh0KG1faW5zZXJ0aW9uUG9pbnQpOworICAgICAg
ICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IGluc2VydGlv
blBvaW50Q29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBpbnNlcnRpb25Qb2ludENvbnRl
eHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMDcsOSArMTExLDExIEBAIE5v
ZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdGYWxsYmFj
a2VkOwogCi0gICAgICAgICAgICBpZiAodG9JbnNlcnRpb25Qb2ludChwYXJlbnQpLT5pc0FjdGl2
ZSgpKQotICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0g
Tm9kZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmICh0b0luc2VydGlvblBvaW50
KHBhcmVudCktPmlzQWN0aXZlKCkpIHsKKyAgICAgICAgICAgICAgICBOb2RlUmVuZGVyaW5nQ29u
dGV4dCBwYXJlbnRDb250ZXh0KHBhcmVudCk7CisgICAgICAgICAgICAgICAgbV9wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnRDb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJp
bmdBbmRTdHlsZSgpOworICAgICAgICAgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0g
cGFyZW50Q29udGV4dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gcGFy
ZW50OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMjMsNiArMTI5LDcgQEAg
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUsIFJl
bmRlclN0eWxlKiBzdHlsZSkKICAgICA6IG1fcGhhc2UoQ2FsY3VsYXRpbmcpCiAgICAgLCBtX25v
ZGUobm9kZSkKICAgICAsIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKDApCisgICAg
LCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZShmYWxzZSkKICAgICAsIG1fdmlzdWFsUGFyZW50U2hh
ZG93KDApCiAgICAgLCBtX2luc2VydGlvblBvaW50KDApCiAgICAgLCBtX3N0eWxlKHN0eWxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA3YjE0ZTAzZWRk
OWYxMWY5YWUwYjRkMzA5NjJhNTQ1MjY5MWY5ZWZlLi42MDc5MmNiNDdmMGY0ZTJiZGMzYzVkYjlk
MWY1NWVkMTUxZTEzODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAKICAgICBOb2RlKiBub2RlKCkgY29uc3Q7
CiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29u
c3Q7CisgICAgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKICAgICBSZW5kZXJP
YmplY3QqIHBhcmVudFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVu
ZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIoKSBjb25z
dDsKQEAgLTgxLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBBdHRhY2hpbmdQaGFzZSBtX3BoYXNl
OwogICAgIE5vZGUqIG1fbm9kZTsKICAgICBDb250YWluZXJOb2RlKiBtX3BhcmVudE5vZGVGb3JS
ZW5kZXJpbmdBbmRTdHlsZTsKKyAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlOwogICAg
IEVsZW1lbnRTaGFkb3cqIG1fdmlzdWFsUGFyZW50U2hhZG93OwogICAgIEluc2VydGlvblBvaW50
KiBtX2luc2VydGlvblBvaW50OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKQEAg
LTk5LDYgKzEwMSwxMiBAQCBpbmxpbmUgQ29udGFpbmVyTm9kZSogTm9kZVJlbmRlcmluZ0NvbnRl
eHQ6OnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpIGNvbgogICAgIHJldHVybiBtX3Bh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsKIH0KIAoraW5saW5lIGJvb2wgTm9kZVJlbmRl
cmluZ0NvbnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KG1fcGhhc2UgIT0gQ2FsY3VsYXRpbmcpOworICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhlcml0
YW5jZTsKK30KKwogaW5saW5lIFJlbmRlclN0eWxlKiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6c3R5
bGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0eWxlLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCmluZGV4IDY3MjNhMGY2ZGQzMDk1ZGQxNmU5NTMzN2E5YmJjMmFiOTA1NjhiMWMu
LjU0YWNiZjhiZjIwNDk5ZmJlMjY1MThmMWNhNGQ5NjQ3ODNiYmRlYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9vdChE
b2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX3ByZXYoMCkKICAgICAsIG1fbmV4dCgwKQogICAg
ICwgbV9hcHBseUF1dGhvclN0eWxlcyhmYWxzZSkKKyAgICAsIG1fcmVzZXRTdHlsZUluaGVyaXRh
bmNlKGZhbHNlKQogICAgICwgbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8oMCkKIHsKICAgICBB
U1NFUlQoZG9jdW1lbnQpOwpAQCAtMTkzLDYgKzE5NCwyMCBAQCB2b2lkIFNoYWRvd1Jvb3Q6OnNl
dEFwcGx5QXV0aG9yU3R5bGVzKGJvb2wgdmFsdWUpCiAgICAgfQogfQogCitib29sIFNoYWRvd1Jv
b3Q6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzZXRT
dHlsZUluaGVyaXRhbmNlOworfQorCit2b2lkIFNoYWRvd1Jvb3Q6OnNldFJlc2V0U3R5bGVJbmhl
cml0YW5jZShib29sIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSAhPSBtX3Jlc2V0U3R5bGVJbmhl
cml0YW5jZSkgeworICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHZhbHVlOworICAg
ICAgICBpZiAoYXR0YWNoZWQoKSAmJiBvd25lcigpKQorICAgICAgICAgICAgb3duZXIoKS0+c2V0
TmVlZHNSZWRpc3RyaWJ1dGluZygpOworICAgIH0KK30KKwogdm9pZCBTaGFkb3dSb290OjphdHRh
Y2goKQogewogICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSBkb2N1bWVudCgpLT5z
dHlsZVJlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCAwYjdmZmE1ZjJkYThk
N2E1NDYwODM2MTk5NTM5MWM1OGNmODhkMzNlLi42YTc2ZTRmMjI0N2RhMTU5MjUxY2I5OTQzYmJh
N2Q0MDY1ZjYzNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTYzLDYgKzYzLDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclN0eWxlcyhib29sKTsKKyAgICB2aXJ0dWFs
IGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdm9pZCBz
ZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CiAKICAgICBFbGVtZW50KiBob3N0KCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRIb3N0KEVsZW1lbnQqKTsKQEAgLTk4LDYgKzEwMCw3IEBAIHByaXZh
dGU6CiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAgIFNoYWRvd1Jvb3QqIG1fbmV4dDsKICAg
ICBib29sIG1fYXBwbHlBdXRob3JTdHlsZXMgOiAxOworICAgIGJvb2wgbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2UgOiAxOwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWdu
ZWRUbzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRleCA4MTEwYzFlMDhhNzQz
ZDczZWMxMzQ1MmNhNmE0ZGI2YTM3NDc0MWMwLi4wMGY3Y2Q4M2E1MjRiMmI1NjE2N2UwMmM3NDBm
Y2MyM2MxNjY5ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNCw2ICszNCw3
IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgaG9z
dDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKICAg
ICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CisgICAgICAgIGF0dHJp
YnV0ZSBib29sZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5jZTsKIAogICAgICAgICBhdHRyaWJ1dGUg
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKICAgICAgICAgICAg
IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5k
ZXggMmY2ZjhiZDllYTBhODg3Yzk4NWEwZWNlN2YxYTQ5NDc3NDkwZDE0Yi4uYWFiZjQxN2M0NWZl
OTlhMzZlNTExNWFhNGE0ZTJkODE4Yzk4NDlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAK
QEAgLTE5MCw2ICsxOTAsMTEgQEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9yU3R5bGVzKCkg
Y29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUcmVlU2NvcGU6OnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFRyZWVT
Y29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCh0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlU2NvcGUuaAppbmRleCBlNGM0ZWYzYjJiODQ4ZjI0NWVmZDg3NzM0OTRhM2YzNDhl
ZWM4MTVlLi5jZGZmYWExYjVkZDIxOTUzZTMyN2Y2N2M1MGIwZDQ5MjIxMzRmZWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZS5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBm
aW5kQW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlB
dXRob3JTdHlsZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRh
bmNlKCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0
aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUq
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAzMDg4Mzk1NDFiZTA0YWY1YmE4MWRmODdmZGQ0ZGRjZWViNGJkMmUzLi4yNTVm
MDc5OTg1YWY3ZDc0Mzc4YmQ1ZjFiYjZhY2ViOTM2N2ZiNGYzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDUtMTggIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisg
ICAgICAgIFNoYWRvd1Jvb3QgbmVlZHMgcmVzZXRTdHlsZUluaGVyaXRhbmNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA0OAorCisgICAgICAgIEFk
ZGVkIGxheW91dCB0ZXN0cyBmb3IgY2hlY2tpbmcgd2hldGhlciByZXNldFN0eWxlSW5oZXJpdGFu
Y2Ugd29ya3MgY29ycmVjdGx5IG9yIG5vdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0
eWxlSW5oZXJpdGFuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKwog
MjAxMi0wNS0yOSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W0Nocm9taXVtXSBUZXN0IGV4cGVjdGF0aW9uIHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNl
dFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmRlYjY1NDM4YzRi
NWYxZDE0ZjllNjAxYjAxYjdhYzYwOWMyY2JlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK2Rpdi5yZXNldFRlc3QgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmOwor
ICBib3JkZXI6IHNvbGlkOworICBtYXJnaW46IDRweDsKKyAgcGFkZGluZzogMTZweDsKKyAgY29s
b3I6ICNmZWU7CisgIGZvbnQtZmFtaWx5OiBTZXJpZjsKKyAgZm9udC1zaXplOiAyNHB4OworICBm
b250LXN0eWxlOiBpdGFsaWM7CisgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsKKyAgZm9udC13
ZWlnaHQ6IGJvbGQ7CisgIGxldHRlci1zcGFjaW5nOiAycHg7CisgIGxpbmUtaGVpZ2h0OiAyMDAl
OworICB0ZXh0LWFsaWduOiBzdGFydDsKKyAgdGV4dC1pbmRlbnQ6IDUwcHg7CisgIHRleHQtdHJh
bnNmb3JtOiB1cHBlcmNhc2U7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgIHdvcmQtc3BhY2lu
ZzogMzBweDsKK30KK2Rpdi5pbml0aWFsVmFsdWVzIHsKKyAgY29sb3I6IGluaXRpYWw7CisgIGZv
bnQtZmFtaWx5OiBpbml0aWFsOworICBmb250LXNpemU6IGluaXRpYWw7CisgIGZvbnQtc3R5bGU6
IGluaXRpYWw7CisgIGZvbnQtdmFyaWFudDogaW5pdGlhbDsKKyAgZm9udC13ZWlnaHQ6IGluaXRp
YWw7CisgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsOworICBsaW5lLWhlaWdodDogaW5pdGlhbDsK
KyAgdGV4dC1hbGlnbjogaW5pdGlhbDsKKyAgdGV4dC1pbmRlbnQ6IGluaXRpYWw7CisgIHRleHQt
dHJhbnNmb3JtOiBpbml0aWFsOworICB3aGl0ZS1zcGFjZTogaW5pdGlhbDsKKyAgd29yZC1zcGFj
aW5nOiBpbml0aWFsOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj48ZGl2IGNs
YXNzPSJyZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48L2Rp
dj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48L2Rp
dj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48L2Rp
dj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0aWFs
VmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVz
dCI+PGRpdiBjbGFzcz0iaW5pdGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRp
dj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxYjhkMjZhODI3NTVkMjljMjBiYzAyYmZjOWE4YjAwNzk4NzZiZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHls
ZUluaGVyaXRhbmNlLmh0bWwKQEAgLTAsMCArMSwxNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Rpdi5yZXNldFRlc3QgeworICBiYWNrZ3JvdW5kLWNvbG9y
OiAjZWVmOworICBib3JkZXI6IHNvbGlkOworICBtYXJnaW46IDRweDsKKyAgcGFkZGluZzogMTZw
eDsKKyAgY29sb3I6ICNmZWU7CisgIGZvbnQtZmFtaWx5OiBTZXJpZjsKKyAgZm9udC1zaXplOiAy
NHB4OworICBmb250LXN0eWxlOiBpdGFsaWM7CisgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsK
KyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGxldHRlci1zcGFjaW5nOiAycHg7CisgIGxpbmUtaGVp
Z2h0OiAyMDAlOworICB0ZXh0LWFsaWduOiBzdGFydDsKKyAgdGV4dC1pbmRlbnQ6IDUwcHg7Cisg
IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgIHdv
cmQtc3BhY2luZzogMzBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gYXNzZXJ0
VHJ1ZShpZCwgYWN0dWFsKSB7CisgICAgaWYgKCFhY3R1YWwpCisgICAgICAgIHRocm93ICJmYWls
dXJlOiIgKyBpZCArICI6IGFzc2VydFRydWUgZmFpbGVkIjsKK30KKworZnVuY3Rpb24gYXNzZXJ0
RmFsc2UoaWQsIGFjdHVhbCkgeworICAgIGlmIChhY3R1YWwpCisgICAgICAgIHRocm93ICJmYWls
dXJlOiIgKyBpZCArICAiOiBhc3NlcnRGYWxzZSBmYWlsZWQiOworfQorCitmdW5jdGlvbiBzaG91
bGRCZShhLCBiKQoreworICAgIGlmIChhICE9IGIpCisgICAgICAgIHRocm93ICJmYWlsdXJlOiIg
KyBhICsgIjogc2hvdWxkIGJlICIgKyBiOworfQorCitmdW5jdGlvbiBzaG91bGROb3RCZShhLCBi
KQoreworICAgIGlmIChhID09IGIpCisgICAgICAgIHRocm93ICJmYWlsdXJlOiIgKyBhICsgIjog
c2hvdWxkIG5vdCBiZSAiICsgYjsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InJlc2V0
LXN0eWxlLWluaGVyaXRhbmNlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vLXJlc2V0LXN0eWxlLWluaGVy
aXRhbmNlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLXRydWUtdG8t
ZmFsc2UiPjwvZGl2PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZmFsc2UtdG8t
dHJ1ZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mb3ItY29udGVu
dCI+PC9kaXY+Cis8ZGl2IGlkPSJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mb3ItY29udGVu
dCI+PC9kaXY+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiByZW5kZXJXaXRoTm9SZXNldFN0eWxlSW5o
ZXJpdGFuY2UoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCBy
ZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0
eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+dGV4dDwv
ZGl2Pic7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vLXJlc2V0LXN0eWxl
LWluaGVyaXRhbmNlJykuYXBwZW5kQ2hpbGQoZGl2KTsKK30KKworZnVuY3Rpb24gcmVuZGVyV2l0
aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOworCisgICAg
dmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIGFzc2VydEZh
bHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFk
b3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxl
SW5oZXJpdGFuY2UgPSB0cnVlOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+dGV4
dDwvZGl2Pic7CisgICAgYXNzZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBi
ZSB0cnVlIGFzIGV4cGxpY2l0bHkgc2V0Jywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFu
Y2UpOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhl
cml0YW5jZScpLmFwcGVuZENoaWxkKGRpdik7Cit9CisKK2Z1bmN0aW9uIHJlbmRlcldpdGhDaGFu
Z2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21UcnVlVG9GYWxzZSgpIHsKKyAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9ICdy
ZXNldFRlc3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChk
aXYpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91
bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgc2hh
ZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIHNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gJzxkaXYgaWQ9InRlc3QxIj50ZXh0PC9kaXY+JzsKKyAgICBhc3NlcnRUcnVlKCdy
ZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LnJlc2V0U3R5
bGVJbmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0
LXN0eWxlLWluaGVyaXRhbmNlLXRydWUtdG8tZmFsc2UnKS5hcHBlbmRDaGlsZChkaXYpOworICAg
IGRpdi5vZmZzZXRMZWZ0OworICAgIHZhciB0YXJnZXQgPSBzaGFkb3dSb290LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MScpOworICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRh
cmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hv
dWxkTm90QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVl
KCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOworCisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5o
ZXJpdGFuY2UgPSBmYWxzZTsKKyAgICBhc3NlcnRGYWxzZSgncmVzZXRTdHlsZUluaGVyaXRhbmNl
IHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAg
ICBkaXYub2Zmc2V0TGVmdDsKKyAgICBzaG91bGRCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JyksICdzZXJpZicpOworICAgIHNo
b3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgn
bGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsKK30KKworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5naW5n
UmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbUZhbHNlVG9UcnVlKCkgeworICAgIHZhciBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0
VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7
CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBi
ZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dS
b290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIHNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0gJzxkaXYgaWQ9InRlc3QyIj50ZXh0PC9kaXY+JzsKKyAgICBhc3NlcnRGYWxzZSgnZGVm
YXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5y
ZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mYWxzZS10by10cnVlJykuYXBwZW5kQ2hpbGQoZGl2
KTsKKyAgICBkaXYub2Zmc2V0TGVmdDsKKyAgICB2YXIgdGFyZ2V0ID0gc2hhZG93Um9vdC5nZXRF
bGVtZW50QnlJZCgndGVzdDInKTsKKyAgICBzaG91bGRCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JyksICdzZXJpZicpOworICAg
IHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1
ZSgnbGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsKKworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBhc3NlcnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ug
c2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAg
ZGl2Lm9mZnNldExlZnQ7CisgICAgc2hvdWxkTm90QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUo
dGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKKyAgICBz
aG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFs
dWUoJ2xpbmUtaGVpZ2h0JyksICc0OHB4Jyk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZURpdldpdGhU
ZXh0KHRleHQpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CisgICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKKyAg
ICByZXR1cm4gZGl2OworfQorCitmdW5jdGlvbiByZW5kZXJSZXNldFN0eWxlSW5oZXJpdGFuY2VG
b3JDb250ZW50KCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisgICAgZGl2LmFwcGVuZENoaWxk
KGNyZWF0ZURpdldpdGhUZXh0KCd0ZXh0JykpOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcg
V2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250
ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JzsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSA9IHRydWU7CisgICAgYXNzZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVyaXRhbmNl
IHNob3VsZCBiZSB0cnVlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mb3ItY29u
dGVudCcpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7Cit9CisKK2Z1bmN0
aW9uIHJlbmRlck5vUmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgpIHsKKyAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9
ICdyZXNldFRlc3QnOworICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVEaXZXaXRoVGV4dCgndGV4
dCcpKTsKKworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsK
KyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdiI+PC9jb250
ZW50Pic7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsKKyAg
ICBhc3NlcnRGYWxzZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNo
YWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQnKS5hcHBlbmRDaGls
ZChkaXYpOworICAgIGRpdi5vZmZzZXRMZWZ0OworfQorCityZW5kZXJXaXRoTm9SZXNldFN0eWxl
SW5oZXJpdGFuY2UoKTsKK3JlbmRlcldpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKK3JlbmRl
cldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21UcnVlVG9GYWxzZSgpOworcmVu
ZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbUZhbHNlVG9UcnVlKCk7City
ZW5kZXJSZXNldFN0eWxlSW5oZXJpdGFuY2VGb3JDb250ZW50KCk7CityZW5kZXJOb1Jlc2V0U3R5
bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144986</attachid>
            <date>2012-05-30 22:16:33 -0700</date>
            <delta_ts>2012-06-01 00:22:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120531141631.patch</filename>
            <type>text/plain</type>
            <size>21890</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI3OTQwZjRlNmI1ZDMw
ZTIxY2U1MzU5MmYwMjg2OGU0NDMzYzQxMS4uYzBjOTRiMjg1NjA0MzVjODc2ODk2ZmUyYzJmYjlm
MjZmNDYzYTA2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA1LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUpOgorICAgICAgICBT
ZXQgbV9wYXJlbnRTdHlsZSB0byBOVUxMIHdoZW4gcmVzZXRTdHlsZUluaGVyaXRhbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAg
TW9kaWZpZWQgZGVmYXVsdCBwYXJlbnQgc3lsdGUgaWYgbV9wYXJlbnRTdHlsZSBpcyBOVUxMLiBB
cyBmb250CisgICAgICAgIGRlc2NyaXB0b3IgZGVwZW5kcyBvbiBkb2N1bWVudCgpLT5zZXR0aW5n
cygpLAorICAgICAgICBpZiBkb2N1bWVudCgpLT5zZXR0aW5ncygpIGlzIGF2YWlsYWJsZSwgaS5l
LiBkb2N1bWVudCBoYXMgYW55IGZyYW1lCisgICAgICAgIGFuZCBwYWdlLCBpbml0aWFsaXplIHBh
cmVudCBzdHlsZSdzIGZvbnQgd2l0aCBkZWZhdWx0IGZvbnQgZGVzY3JpcHRpb24uCisgICAgICAg
IE90aGVyd2lzZSwgZG8gdGhlIHNhbWUgaW5pdGlhbGl6YXRpb24gYXMgdGhlIHByZXZpb3VzIGNv
ZGUgZGlkLgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgor
ICAgICAgICBNb2RpZmllZCB0byBjYWxjdWxhdGUgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgaW4g
aXRzIGNvbnN0cnVjdG9yLgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0
YW5jZSk6CisgICAgICAgIEltcGxlbWVudGVkIGEgbmV3IG1ldGhvZCwganVzdCByZXR1cm5pbmcg
bV9yZXNldFN0eWxlSW5oZXJpdGFuY2UuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKToK
KyAgICAgICAgTW9kaWZpZWQgdG8gZm9yY2UgdG8gcmVjYWxjdWxhdGUgY2hpbGRyZW4ncyBzdHls
ZXMgaWYKKyAgICAgICAgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGlzIGNoYW5nZWQuCisgICAgICAg
ICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICBBZGRl
ZCByZXNldFN0eWxlSW5oZXJpdGFuY2UgZ2V0dGVyIGFuZCBzZXR0ZXIuCisgICAgICAgICogZG9t
L1NoYWRvd1Jvb3QuaWRsOgorICAgICAgICBBZGRlZCBhbiBhdHRyaWJ1dGUsIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZS4KKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZTo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAgKiBkb20vVHJl
ZVNjb3BlLmg6CisgICAgICAgIChUcmVlU2NvcGUpOgorICAgICAgICBBZGRlZCByZXNldFN0eWxl
SW5oZXJpdGFuY2UncyBkZWZhdWx0IGdldHRlci4KKyAgICAgICAgVGhlIGdldHRlciB3aWxsIGJl
IG92ZXJyaWRlZCBieSBjbGFzcyBTaGFkb3dSb290J3MgZ2V0dGVyLgorCiAyMDEyLTA1LTMwICBB
Ymhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ3Jhc2ggaW4g
Q29udGFpbmVyTm9kZTo6cGFyc2VyQWRkQ2hpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggNDlhNWUxY2RjNTVhYTZiOGJjMzVlZGE5Yjg3YzkxNmYwYjY5ZjQyZi4uMTRk
YmU3MTRlMzY0NmJjNGY2MzQ3NzU4OWI2MDllMjE3Mzk4NDM2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
VmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCiAjaW5jbHVkZSAiQ2FjaGVk
SW1hZ2UuaCIKICNpbmNsdWRlICJDYWxjdWxhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ29udGVu
dERhdGEuaCIKQEAgLTc4LDYgKzc5LDcgQEAKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNs
dWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgi
CisjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtMTE2MCwxMiArMTE2
MiwyMCBAQCBpbmxpbmUgdm9pZCBTdHlsZVJlc29sdmVyOjppbml0Rm9yU3R5bGVSZXNvbHZlKEVs
ZW1lbnQqIGUsIFJlbmRlclN0eWxlKiBwYXJlbnRTdAogewogICAgIG1fY2hlY2tlci5zZXRQc2V1
ZG9TdHlsZShwc2V1ZG9JRCk7CiAKLSAgICBtX3BhcmVudE5vZGUgPSBlID8gZS0+cGFyZW50Tm9k
ZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgOiAwOworICAgIGlmIChlKSB7CisgICAgICAgIE5vZGVS
ZW5kZXJpbmdDb250ZXh0IGNvbnRleHQoZSk7CisgICAgICAgIG1fcGFyZW50Tm9kZSA9IGNvbnRl
eHQucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7CiAKLSAgICBpZiAocGFyZW50U3R5
bGUpCisgICAgICAgIGlmIChjb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpKQorICAgICAg
ICAgICAgbV9wYXJlbnRTdHlsZSA9IDA7CisgICAgICAgIGVsc2UgaWYgKHBhcmVudFN0eWxlKQor
ICAgICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IHBhcmVudFN0eWxlOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBtX3BhcmVudFN0eWxlID0gbV9wYXJlbnROb2RlID8gbV9wYXJlbnROb2RlLT5y
ZW5kZXJTdHlsZSgpIDogMDsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3BhcmVudE5vZGUgPSAw
OwogICAgICAgICBtX3BhcmVudFN0eWxlID0gcGFyZW50U3R5bGU7Ci0gICAgZWxzZQotICAgICAg
ICBtX3BhcmVudFN0eWxlID0gbV9wYXJlbnROb2RlID8gbV9wYXJlbnROb2RlLT5yZW5kZXJTdHls
ZSgpIDogMDsKKyAgICB9CiAKICAgICBOb2RlKiBkb2NFbGVtZW50ID0gZSA/IGUtPmRvY3VtZW50
KCktPmRvY3VtZW50RWxlbWVudCgpIDogMDsKICAgICBSZW5kZXJTdHlsZSogZG9jU3R5bGUgPSBt
X2NoZWNrZXIuZG9jdW1lbnQoKS0+cmVuZGVyU3R5bGUoKTsKQEAgLTE2MTksNiArMTYyOSwxNCBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBdFNoYWRvd0JvdW5kYXJ5KEVsZW1lbnQqIGVsZW1lbnQp
CiAgICAgcmV0dXJuIHBhcmVudE5vZGUgJiYgcGFyZW50Tm9kZS0+aXNTaGFkb3dSb290KCk7CiB9
CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0ZvbnREZXNjcmlwdGlvbkF2YWlsYWJsZShEb2N1bWVu
dCogZG9jdW1lbnQpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIHJldHVybiBmcmFt
ZSAmJiBmcmFtZS0+cGFnZSgpOworfQorCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJl
c29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyU3R5bGUqIGRl
ZmF1bHRQYXJlbnQsCiAgICAgU3R5bGVTaGFyaW5nQmVoYXZpb3Igc2hhcmluZ0JlaGF2aW9yLCBS
dWxlTWF0Y2hpbmdCZWhhdmlvciBtYXRjaGluZ0JlaGF2aW9yLCBSZW5kZXJSZWdpb24qIHJlZ2lv
bkZvclN0eWxpbmcpCiB7CkBAIC0xNjUwLDcgKzE2NjgsMTEgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJl
bmRlclMKICAgICBlbHNlIHsKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IHN0eWxlKCk7CiAgICAg
ICAgIC8vIE1ha2Ugc3VyZSBvdXIgZm9udHMgYXJlIGluaXRpYWxpemVkIGlmIHdlIGRvbid0IGlu
aGVyaXQgdGhlbSBmcm9tIG91ciBwYXJlbnQgc3R5bGUuCi0gICAgICAgIG1fc3R5bGUtPmZvbnQo
KS51cGRhdGUoMCk7CisgICAgICAgIGlmIChpc0ZvbnREZXNjcmlwdGlvbkF2YWlsYWJsZShtX2No
ZWNrZXIuZG9jdW1lbnQoKSkpIHsKKyAgICAgICAgICAgIGFwcGx5UHJvcGVydHkoQ1NTUHJvcGVy
dHlGb250LCBjc3NWYWx1ZVBvb2woKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpLmdldCgp
KTsKKyAgICAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKCkpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CiAg
ICAgfQogCiAgICAgLy8gRXZlbiBpZiBzdXJyb3VuZGluZyBjb250ZW50IGlzIHVzZXItZWRpdGFi
bGUsIHNoYWRvdyBET00gc2hvdWxkIGFjdCBhcyBhIHNpbmdsZSB1bml0LCBhbmQgbm90IG5lY2Vz
c2FyaWx5IGJlIGVkaXRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250
ZXh0LmNwcAppbmRleCA3ZjcwZTdjMGZmMjBjMDM0Yjg1YjVhYzhhZTI2OTNmYTY2ZjkzNThjLi5i
NGQ2ZDQ2ODZmZDY0ZjAyNDIyODllYmJjMDdiZjM1NzUyNDVjYTBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAgTm9kZVJl
bmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgOiBt
X3BoYXNlKEF0dGFjaGluZ05vdEluVHJlZSkKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9w
YXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoMCkKKyAgICAsIG1fcmVzZXRTdHlsZUluaGVy
aXRhbmNlKGZhbHNlKQogICAgICwgbV92aXN1YWxQYXJlbnRTaGFkb3coMCkKICAgICAsIG1faW5z
ZXJ0aW9uUG9pbnQoMCkKICAgICAsIG1fc3R5bGUoMCkKQEAgLTY3LDYgKzY4LDcgQEAgTm9kZVJl
bmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgaWYg
KHBhcmVudC0+aXNTaGFkb3dSb290KCkgJiYgdG9TaGFkb3dSb290KHBhcmVudCktPmlzWW91bmdl
c3QoKSkgewogICAgICAgICBtX3BoYXNlID0gQXR0YWNoaW5nU2hhZG93Q2hpbGQ7CiAgICAgICAg
IG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gdG9TaGFkb3dSb290KHBhcmVudCkt
Pmhvc3QoKTsKKyAgICAgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0b1NoYWRvd1Jvb3Qo
cGFyZW50KS0+cmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTgyLDcgKzg0LDkgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdD
b250ZXh0KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBpZiAoKG1faW5zZXJ0aW9uUG9pbnQgPSBt
X3Zpc3VhbFBhcmVudFNoYWRvdy0+aW5zZXJ0aW9uUG9pbnRGb3IobV9ub2RlKSkpIHsKICAgICAg
ICAgICAgICAgICBpZiAobV9pbnNlcnRpb25Qb2ludC0+c2hhZG93Um9vdCgpLT5pc1VzZWRGb3JS
ZW5kZXJpbmcoKSkgewogICAgICAgICAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoaW5nRGlz
dHJpYnV0ZWQ7Ci0gICAgICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0Fu
ZFN0eWxlID0gTm9kZVJlbmRlcmluZ0NvbnRleHQobV9pbnNlcnRpb25Qb2ludCkucGFyZW50Tm9k
ZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgIE5vZGVSZW5kZXJp
bmdDb250ZXh0IGluc2VydGlvblBvaW50Q29udGV4dChtX2luc2VydGlvblBvaW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBpbnNlcnRp
b25Qb2ludENvbnRleHQucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7CisgICAgICAg
ICAgICAgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gaW5zZXJ0aW9uUG9pbnRDb250
ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTA3LDkgKzExMSwxMSBAQCBO
b2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoaW5nRmFsbGJh
Y2tlZDsKIAotICAgICAgICAgICAgaWYgKHRvSW5zZXJ0aW9uUG9pbnQocGFyZW50KS0+aXNBY3Rp
dmUoKSkKLSAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9
IE5vZGVSZW5kZXJpbmdDb250ZXh0KHBhcmVudCkucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0
eWxlKCk7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAodG9JbnNlcnRpb25Qb2lu
dChwYXJlbnQpLT5pc0FjdGl2ZSgpKSB7CisgICAgICAgICAgICAgICAgTm9kZVJlbmRlcmluZ0Nv
bnRleHQgcGFyZW50Q29udGV4dChwYXJlbnQpOworICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9k
ZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gcGFyZW50Q29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVy
aW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9
IHBhcmVudENvbnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CisgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBh
cmVudDsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTIzLDYgKzEyOSw3IEBA
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlLCBS
ZW5kZXJTdHlsZSogc3R5bGUpCiAgICAgOiBtX3BoYXNlKENhbGN1bGF0aW5nKQogICAgICwgbV9u
b2RlKG5vZGUpCiAgICAgLCBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgwKQorICAg
ICwgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFBhcmVudFNo
YWRvdygwKQogICAgICwgbV9pbnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZShzdHlsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggN2IxNGUwM2Vk
ZDlmMTFmOWFlMGI0ZDMwOTYyYTU0NTI2OTFmOWVmZS4uNjA3OTJjYjQ3ZjBmNGUyYmRjM2M1ZGI5
ZDFmNTVlZDE1MWUxMzg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250
ZXh0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgTm9kZSogbm9kZSgpIGNvbnN0
OwogICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpIGNv
bnN0OworICAgIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAgICAgUmVuZGVy
T2JqZWN0KiBwYXJlbnRSZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogbmV4dFJl
bmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyKCkgY29u
c3Q7CkBAIC04MSw2ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgQXR0YWNoaW5nUGhhc2UgbV9waGFz
ZTsKICAgICBOb2RlKiBtX25vZGU7CiAgICAgQ29udGFpbmVyTm9kZSogbV9wYXJlbnROb2RlRm9y
UmVuZGVyaW5nQW5kU3R5bGU7CisgICAgYm9vbCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZTsKICAg
ICBFbGVtZW50U2hhZG93KiBtX3Zpc3VhbFBhcmVudFNoYWRvdzsKICAgICBJbnNlcnRpb25Qb2lu
dCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fc3R5bGU7CkBA
IC05OSw2ICsxMDEsMTIgQEAgaW5saW5lIENvbnRhaW5lck5vZGUqIE5vZGVSZW5kZXJpbmdDb250
ZXh0OjpwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSBjb24KICAgICByZXR1cm4gbV9w
YXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGU7CiB9CiAKK2lubGluZSBib29sIE5vZGVSZW5k
ZXJpbmdDb250ZXh0OjpyZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdAoreworICAgIEFTU0VS
VChtX3BoYXNlICE9IENhbGN1bGF0aW5nKTsKKyAgICByZXR1cm4gbV9yZXNldFN0eWxlSW5oZXJp
dGFuY2U7Cit9CisKIGlubGluZSBSZW5kZXJTdHlsZSogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnN0
eWxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zdHlsZS5nZXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcAppbmRleCA2NzIzYTBmNmRkMzA5NWRkMTZlOTUzMzdhOWJiYzJhYjkwNTY4YjFj
Li4yYzU3NTYwYmYyNmYzMjc3MjIzYzQ4YmU0OTU3NGRlNDRmZDcyMDVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuY3BwCkBAIC01MCw2ICs1MCw3IEBAIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3Qo
RG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25leHQoMCkKICAg
ICAsIG1fYXBwbHlBdXRob3JTdHlsZXMoZmFsc2UpCisgICAgLCBtX3Jlc2V0U3R5bGVJbmhlcml0
YW5jZShmYWxzZSkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvKDApCiB7CiAgICAg
QVNTRVJUKGRvY3VtZW50KTsKQEAgLTE5Myw2ICsxOTQsMjAgQEAgdm9pZCBTaGFkb3dSb290Ojpz
ZXRBcHBseUF1dGhvclN0eWxlcyhib29sIHZhbHVlKQogICAgIH0KIH0KIAorYm9vbCBTaGFkb3dS
b290OjpyZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc2V0
U3R5bGVJbmhlcml0YW5jZTsKK30KKwordm9pZCBTaGFkb3dSb290OjpzZXRSZXNldFN0eWxlSW5o
ZXJpdGFuY2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgIT0gbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2UpIHsKKyAgICAgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB2YWx1ZTsKKyAg
ICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgb3duZXIoKSkKKyAgICAgICAgICAgIG93bmVyKCktPnJl
Y2FsY1N0eWxlKEZvcmNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkK
IHsKICAgICBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyID0gZG9jdW1lbnQoKS0+c3R5bGVS
ZXNvbHZlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggMGI3ZmZhNWYyZGE4ZDdhNTQ2
MDgzNjE5OTUzOTFjNThjZjg4ZDMzZS4uNmE3NmU0ZjIyNDdkYTE1OTI1MWNiOTk0M2JiYTdkNDA2
NWY2MzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC02Myw2ICs2Myw4IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclN0eWxlcygpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTdHlsZXMoYm9vbCk7CisgICAgdmlydHVhbCBib29s
IHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZvaWQgc2V0UmVz
ZXRTdHlsZUluaGVyaXRhbmNlKGJvb2wpOwogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0SG9zdChFbGVtZW50Kik7CkBAIC05OCw2ICsxMDAsNyBAQCBwcml2YXRlOgog
ICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsKICAgICBTaGFkb3dSb290KiBtX25leHQ7CiAgICAgYm9v
bCBtX2FwcGx5QXV0aG9yU3R5bGVzIDogMTsKKyAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRh
bmNlIDogMTsKICAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG87
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKaW5kZXggODExMGMxZTA4YTc0M2Q3M2Vj
MTM0NTJjYTZhNGRiNmEzNzQ3NDFjMC4uMDBmN2NkODNhNTI0YjJiNTYxNjdlMDJjNzQwZmNjMjNj
MTY2OWU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbApAQCAtMzQsNiArMzQsNyBAQCBt
b2R1bGUgY29yZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGFjdGl2ZUVsZW1lbnQ7CiAgICAgICAg
IGF0dHJpYnV0ZSBib29sZWFuIGFwcGx5QXV0aG9yU3R5bGVzOworICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiByZXNldFN0eWxlSW5oZXJpdGFuY2U7CiAKICAgICAgICAgYXR0cmlidXRlIFtUcmVh
dE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MCiAgICAgICAgICAgICBzZXR0
ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IGQ3
MGI5MDA1OWRiZGVlYmUxZDcwN2JiMzM0NjA3ZDM2OGFlMzdhMTIuLjgzMjJmY2IzOGFmNTk2MDg2
OTBkMTgyNzg2Y2M4OTc4ZTk2NjRhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0x
OTEsNiArMTkxLDExIEBAIGJvb2wgVHJlZVNjb3BlOjphcHBseUF1dGhvclN0eWxlcygpIGNvbnN0
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgVHJlZVNjb3BlOjpyZXNldFN0eWxlSW5oZXJp
dGFuY2UoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBUcmVlU2NvcGU6
OmFkb3B0SWZOZWVkZWQoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQodGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmgKaW5kZXggMGQxZGNlYjQzMzIxNjhlMjRlZjdkMjJjMTI0OTY3ZjNmYzAxZGQy
My4uNWVjYzAzOTJmMzcxNzBiZWUzMDUzOTkyMTQyNDk3Y2ZhYjdhY2IwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuaApAQCAtNzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCogZmluZEFu
Y2hvcihjb25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9y
U3R5bGVzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
IGNvbnN0OwogCiAgICAgLy8gVXNlZCBieSB0aGUgYmFzaWMgRE9NIG11dGF0aW9uIG1ldGhvZHMg
KGUuZy4sIGFwcGVuZENoaWxkKCkpLgogICAgIHZvaWQgYWRvcHRJZk5lZWRlZChOb2RlKik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMGE2N2UyODc3ZjQ0YWQwYjUyY2Q1YWYyZjg4ZTUwYTUxMjNiMjI1Ny4uZmI0Yjk5YmJh
NTQyOWY0NDcxNTE2NWRmNzViNjFmZjc2OTQ2ODc0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDEyLTA1LTE4ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBTaGFkb3dSb290IG5lZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCBs
YXlvdXQgdGVzdHMgZm9yIGNoZWNraW5nIHdoZXRoZXIgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHdv
cmtzIGNvcnJlY3RseSBvciBub3QuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUlu
aGVyaXRhbmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDUtMzAgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBD
cmFzaCBpbiBDb250YWluZXJOb2RlOjpwYXJzZXJBZGRDaGlsZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1y
ZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmRlYjY1NDM4
YzRiNWYxZDE0ZjllNjAxYjAxYjdhYzYwOWMyY2JlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK2Rpdi5yZXNldFRlc3QgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVm
OworICBib3JkZXI6IHNvbGlkOworICBtYXJnaW46IDRweDsKKyAgcGFkZGluZzogMTZweDsKKyAg
Y29sb3I6ICNmZWU7CisgIGZvbnQtZmFtaWx5OiBTZXJpZjsKKyAgZm9udC1zaXplOiAyNHB4Owor
ICBmb250LXN0eWxlOiBpdGFsaWM7CisgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsKKyAgZm9u
dC13ZWlnaHQ6IGJvbGQ7CisgIGxldHRlci1zcGFjaW5nOiAycHg7CisgIGxpbmUtaGVpZ2h0OiAy
MDAlOworICB0ZXh0LWFsaWduOiBzdGFydDsKKyAgdGV4dC1pbmRlbnQ6IDUwcHg7CisgIHRleHQt
dHJhbnNmb3JtOiB1cHBlcmNhc2U7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgIHdvcmQtc3Bh
Y2luZzogMzBweDsKK30KK2Rpdi5pbml0aWFsVmFsdWVzIHsKKyAgY29sb3I6IGluaXRpYWw7Cisg
IGZvbnQtZmFtaWx5OiBpbml0aWFsOworICBmb250LXNpemU6IGluaXRpYWw7CisgIGZvbnQtc3R5
bGU6IGluaXRpYWw7CisgIGZvbnQtdmFyaWFudDogaW5pdGlhbDsKKyAgZm9udC13ZWlnaHQ6IGlu
aXRpYWw7CisgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsOworICBsaW5lLWhlaWdodDogaW5pdGlh
bDsKKyAgdGV4dC1hbGlnbjogaW5pdGlhbDsKKyAgdGV4dC1pbmRlbnQ6IGluaXRpYWw7CisgIHRl
eHQtdHJhbnNmb3JtOiBpbml0aWFsOworICB3aGl0ZS1zcGFjZTogaW5pdGlhbDsKKyAgd29yZC1z
cGFjaW5nOiBpbml0aWFsOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj48ZGl2
IGNsYXNzPSJyZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48
L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48
L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48
L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0
aWFsVmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0
VGVzdCI+PGRpdiBjbGFzcz0iaW5pdGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2Pgor
PGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMxYjhkMjZhODI3NTVkMjljMjBiYzAyYmZjOWE4YjAwNzk4NzZiZjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRT
dHlsZUluaGVyaXRhbmNlLmh0bWwKQEAgLTAsMCArMSwxNjkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Rpdi5yZXNldFRlc3QgeworICBiYWNrZ3JvdW5kLWNv
bG9yOiAjZWVmOworICBib3JkZXI6IHNvbGlkOworICBtYXJnaW46IDRweDsKKyAgcGFkZGluZzog
MTZweDsKKyAgY29sb3I6ICNmZWU7CisgIGZvbnQtZmFtaWx5OiBTZXJpZjsKKyAgZm9udC1zaXpl
OiAyNHB4OworICBmb250LXN0eWxlOiBpdGFsaWM7CisgIGZvbnQtdmFyaWFudDogc21hbGwtY2Fw
czsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGxldHRlci1zcGFjaW5nOiAycHg7CisgIGxpbmUt
aGVpZ2h0OiAyMDAlOworICB0ZXh0LWFsaWduOiBzdGFydDsKKyAgdGV4dC1pbmRlbnQ6IDUwcHg7
CisgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cisg
IHdvcmQtc3BhY2luZzogMzBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gYXNz
ZXJ0VHJ1ZShpZCwgYWN0dWFsKSB7CisgICAgaWYgKCFhY3R1YWwpCisgICAgICAgIHRocm93ICJm
YWlsdXJlOiIgKyBpZCArICI6IGFzc2VydFRydWUgZmFpbGVkIjsKK30KKworZnVuY3Rpb24gYXNz
ZXJ0RmFsc2UoaWQsIGFjdHVhbCkgeworICAgIGlmIChhY3R1YWwpCisgICAgICAgIHRocm93ICJm
YWlsdXJlOiIgKyBpZCArICAiOiBhc3NlcnRGYWxzZSBmYWlsZWQiOworfQorCitmdW5jdGlvbiBz
aG91bGRCZShhLCBiKQoreworICAgIGlmIChhICE9IGIpCisgICAgICAgIHRocm93ICJmYWlsdXJl
OiIgKyBhICsgIjogc2hvdWxkIGJlICIgKyBiOworfQorCitmdW5jdGlvbiBzaG91bGROb3RCZShh
LCBiKQoreworICAgIGlmIChhID09IGIpCisgICAgICAgIHRocm93ICJmYWlsdXJlOiIgKyBhICsg
Ijogc2hvdWxkIG5vdCBiZSAiICsgYjsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InJl
c2V0LXN0eWxlLWluaGVyaXRhbmNlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vLXJlc2V0LXN0eWxlLWlu
aGVyaXRhbmNlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLXRydWUt
dG8tZmFsc2UiPjwvZGl2PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZmFsc2Ut
dG8tdHJ1ZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mb3ItY29u
dGVudCI+PC9kaXY+Cis8ZGl2IGlkPSJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mb3ItY29u
dGVudCI+PC9kaXY+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiByZW5kZXJXaXRoTm9SZXNldFN0eWxl
SW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dS
b290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVs
dCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNl
dFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+dGV4
dDwvZGl2Pic7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vLXJlc2V0LXN0
eWxlLWluaGVyaXRhbmNlJykuYXBwZW5kQ2hpbGQoZGl2KTsKK30KKworZnVuY3Rpb24gcmVuZGVy
V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOworCisg
ICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIGFzc2Vy
dEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBz
aGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgc2hhZG93Um9vdC5yZXNldFN0
eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+
dGV4dDwvZGl2Pic7CisgICAgYXNzZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3Vs
ZCBiZSB0cnVlIGFzIGV4cGxpY2l0bHkgc2V0Jywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJp
dGFuY2UpOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1p
bmhlcml0YW5jZScpLmFwcGVuZENoaWxkKGRpdik7Cit9CisKK2Z1bmN0aW9uIHJlbmRlcldpdGhD
aGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21UcnVlVG9GYWxzZSgpIHsKKyAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9
ICdyZXNldFRlc3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9v
dChkaXYpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBz
aG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAg
c2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIHNoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gJzxkaXYgaWQ9InRlc3QxIj50ZXh0PC9kaXY+JzsKKyAgICBhc3NlcnRUcnVl
KCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LnJlc2V0
U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
c2V0LXN0eWxlLWluaGVyaXRhbmNlLXRydWUtdG8tZmFsc2UnKS5hcHBlbmRDaGlsZChkaXYpOwor
ICAgIGRpdi5vZmZzZXRMZWZ0OworICAgIHZhciB0YXJnZXQgPSBzaGFkb3dSb290LmdldEVsZW1l
bnRCeUlkKCd0ZXN0MScpOworICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAg
c2hvdWxkTm90QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZh
bHVlKCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOworCisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxl
SW5oZXJpdGFuY2UgPSBmYWxzZTsKKyAgICBhc3NlcnRGYWxzZSgncmVzZXRTdHlsZUluaGVyaXRh
bmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsK
KyAgICBkaXYub2Zmc2V0TGVmdDsKKyAgICBzaG91bGRCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JyksICdzZXJpZicpOworICAg
IHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1
ZSgnbGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsKK30KKworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5n
aW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbUZhbHNlVG9UcnVlKCkgeworICAgIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jl
c2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRp
dik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3Vs
ZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFk
b3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIHNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gJzxkaXYgaWQ9InRlc3QyIj50ZXh0PC9kaXY+JzsKKyAgICBhc3NlcnRGYWxzZSgn
ZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9v
dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mYWxzZS10by10cnVlJykuYXBwZW5kQ2hpbGQo
ZGl2KTsKKyAgICBkaXYub2Zmc2V0TGVmdDsKKyAgICB2YXIgdGFyZ2V0ID0gc2hhZG93Um9vdC5n
ZXRFbGVtZW50QnlJZCgndGVzdDInKTsKKyAgICBzaG91bGRCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JyksICdzZXJpZicpOwor
ICAgIHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlW
YWx1ZSgnbGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsKKworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHls
ZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBhc3NlcnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFu
Y2Ugc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Cisg
ICAgZGl2Lm9mZnNldExlZnQ7CisgICAgc2hvdWxkTm90QmUod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKKyAg
ICBzaG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5
VmFsdWUoJ2xpbmUtaGVpZ2h0JyksICc0OHB4Jyk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZURpdldp
dGhUZXh0KHRleHQpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsK
KyAgICByZXR1cm4gZGl2OworfQorCitmdW5jdGlvbiByZW5kZXJSZXNldFN0eWxlSW5oZXJpdGFu
Y2VGb3JDb250ZW50KCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisgICAgZGl2LmFwcGVuZENo
aWxkKGNyZWF0ZURpdldpdGhUZXh0KCd0ZXh0JykpOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBu
ZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxj
b250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JzsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5
bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgYXNzZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVyaXRh
bmNlIHNob3VsZCBiZSB0cnVlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mb3It
Y29udGVudCcpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7Cit9CisKK2Z1
bmN0aW9uIHJlbmRlck5vUmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgpIHsKKyAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFt
ZSA9ICdyZXNldFRlc3QnOworICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVEaXZXaXRoVGV4dCgn
dGV4dCcpKTsKKworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2
KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdiI+PC9j
b250ZW50Pic7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsK
KyAgICBhc3NlcnRGYWxzZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScs
IHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQnKS5hcHBlbmRD
aGlsZChkaXYpOworICAgIGRpdi5vZmZzZXRMZWZ0OworfQorCityZW5kZXJXaXRoTm9SZXNldFN0
eWxlSW5oZXJpdGFuY2UoKTsKK3JlbmRlcldpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKK3Jl
bmRlcldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21UcnVlVG9GYWxzZSgpOwor
cmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbUZhbHNlVG9UcnVlKCk7
CityZW5kZXJSZXNldFN0eWxlSW5oZXJpdGFuY2VGb3JDb250ZW50KCk7CityZW5kZXJOb1Jlc2V0
U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145225</attachid>
            <date>2012-06-01 00:23:02 -0700</date>
            <delta_ts>2012-06-06 02:28:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120601162300.patch</filename>
            <type>text/plain</type>
            <size>24727</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q4NGJlNzkwYjVjYmIx
NzNlMzA3MTk5ZTA2MDYwOWI4NzgzMzI1NC4uMWVkMjg0OGRkMTM4OTMxMjNiZGNhZDJhY2MyNjRj
YzY0MzM0N2M2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA1LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUpOgorICAgICAgICBT
ZXQgbV9wYXJlbnRTdHlsZSB0byBOVUxMIHdoZW4gcmVzZXRTdHlsZUluaGVyaXRhbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSk6CisgICAg
ICAgIEluaXRpYWxpemUgbV9zdHlsZSBieSB1c2luZyBkb2N1bWVudCBzZXR0aW5ncy4gSXRzIGNv
ZGUgd2FzIG1vdmUKKyAgICAgICAgZnJvbSB0aGUgY29kZSBpbml0aWFsaXppbmcgZm9udCBzdHls
ZSBpbiBhcHBseVByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5
bGVGb3JFbGVtZW50KToKKyAgICAgICAgSW5pdGlhbGl6ZSBmb250IHN0eWxlIGlmIG1fcGFyZW50
U3R5bGUgaXMgTlVMTC4gVGhlIG9sZCBjb2RlIGp1c3QKKyAgICAgICAgdXNlZCBzdHlsZSgpIGFu
ZCBkb24ndCB0b3VjaCBmb250IHN0eWxlLiBUaGUgbmV3IGNvZGUgdXNlcyB0aGUgYWJvdmUKKyAg
ICAgICAgaW5pdGlhbGl6ZUZvbnRTdHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICBNb3ZlZCBhIGNvZGUgZm9yIGluaXRpYWxpemlu
ZyBmb250IHN0eWxlIGFzICJpbml0aWFsIiB0bworICAgICAgICBhIG5ldyBtZXRob2Q6IGluaXRp
YWxpemVGb250U3R5bGUgYW5kIG1vZGlmaWVkIHRvIHVzZSB0aGUgbWV0aG9kLgorICAgICAgICAq
IGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICBNb2RpZmllZCB0
byBjYWxjdWxhdGUgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgaW4gaXRzIGNvbnN0cnVjdG9yLgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgIElt
cGxlbWVudGVkIGEgbmV3IG1ldGhvZCwganVzdCByZXR1cm5pbmcgbV9yZXNldFN0eWxlSW5oZXJp
dGFuY2UuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93Um9vdDo6c2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAgTW9kaWZpZWQg
dG8gZm9yY2UgdG8gcmVjYWxjdWxhdGUgY2hpbGRyZW4ncyBzdHlsZXMgaWYKKyAgICAgICAgcmVz
ZXRTdHlsZUluaGVyaXRhbmNlIGlzIGNoYW5nZWQuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3Qu
aDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgZ2V0dGVyIGFuZCBzZXR0ZXIuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgor
ICAgICAgICBBZGRlZCBhbiBhdHRyaWJ1dGUsIHJlc2V0U3R5bGVJbmhlcml0YW5jZS4KKyAgICAg
ICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6cmVz
ZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAg
IChUcmVlU2NvcGUpOgorICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UncyBkZWZh
dWx0IGdldHRlci4KKyAgICAgICAgVGhlIGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBieSBjbGFz
cyBTaGFkb3dSb290J3MgZ2V0dGVyLgorCiAyMDEyLTA1LTMxICBEb21pbmljIENvb25leSAgPGRv
bWluaWNjQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIEV4cGFuZG8gcHJvcGVydGllcyBv
biBhdHRyaWJ1dGUgbm9kZXMgZGlzYXBwZWFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggMWYwMjNkMmJkNWEyNDlmYzE1NDdhZDllMWM5ZGI4M2EyZGZiOWQ2Yy4uYTQ4YTVj
NDU2ZjExNGNhYmE0OWJiNmNlMjYwZjkxMzQ1NGVlMmYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgog
I2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5
bGUuaCIKKyNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWlyLmgiCkBAIC0xMTYwLDEy
ICsxMTYxLDIwIEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29s
dmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0CiB7CiAgICAgbV9jaGVja2VyLnNl
dFBzZXVkb1N0eWxlKHBzZXVkb0lEKTsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7CisgICAgaWYgKGUpIHsKKyAgICAgICAg
Tm9kZVJlbmRlcmluZ0NvbnRleHQgY29udGV4dChlKTsKKyAgICAgICAgbV9wYXJlbnROb2RlID0g
Y29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKIAotICAgIGlmIChwYXJl
bnRTdHlsZSkKKyAgICAgICAgaWYgKGNvbnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCkpCisg
ICAgICAgICAgICBtX3BhcmVudFN0eWxlID0gMDsKKyAgICAgICAgZWxzZSBpZiAocGFyZW50U3R5
bGUpCisgICAgICAgICAgICBtX3BhcmVudFN0eWxlID0gcGFyZW50U3R5bGU7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5v
ZGUtPnJlbmRlclN0eWxlKCkgOiAwOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fcGFyZW50Tm9k
ZSA9IDA7CiAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBwYXJlbnRTdHlsZTsKLSAgICBlbHNlCi0g
ICAgICAgIG1fcGFyZW50U3R5bGUgPSBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRl
clN0eWxlKCkgOiAwOworICAgIH0KIAogICAgIE5vZGUqIGRvY0VsZW1lbnQgPSBlID8gZS0+ZG9j
dW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgOiAwOwogICAgIFJlbmRlclN0eWxlKiBkb2NTdHls
ZSA9IG1fY2hlY2tlci5kb2N1bWVudCgpLT5yZW5kZXJTdHlsZSgpOwpAQCAtMTY1MCw3ICsxNjU5
LDEwIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxl
bWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJTCiAgICAgZWxzZSB7CiAgICAgICAgIG1fcGFy
ZW50U3R5bGUgPSBzdHlsZSgpOwogICAgICAgICAvLyBNYWtlIHN1cmUgb3VyIGZvbnRzIGFyZSBp
bml0aWFsaXplZCBpZiB3ZSBkb24ndCBpbmhlcml0IHRoZW0gZnJvbSBvdXIgcGFyZW50IHN0eWxl
LgotICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKDApOworICAgICAgICBpZiAoaW5pdGlh
bGl6ZUZvbnRTdHlsZSgpKQorICAgICAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZShmb250
U2VsZWN0b3IoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51
cGRhdGUoMCk7CiAgICAgfQogCiAgICAgLy8gRXZlbiBpZiBzdXJyb3VuZGluZyBjb250ZW50IGlz
IHVzZXItZWRpdGFibGUsIHNoYWRvdyBET00gc2hvdWxkIGFjdCBhcyBhIHNpbmdsZSB1bml0LCBh
bmQgbm90IG5lY2Vzc2FyaWx5IGJlIGVkaXRhYmxlCkBAIC0zNDI4LDI0ICszNDQwLDcgQEAgdm9p
ZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVl
ICp2YWx1ZSkKICAgICAgICAgICAgIG1fbGluZUhlaWdodFZhbHVlID0gMDsKICAgICAgICAgICAg
IHNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwogICAgICAgICB9IGVsc2UgaWYg
KGlzSW5pdGlhbCkgewotICAgICAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9jaGVja2Vy
LmRvY3VtZW50KCktPnNldHRpbmdzKCk7Ci0gICAgICAgICAgICBBU1NFUlQoc2V0dGluZ3MpOyAv
LyBJZiB3ZSdyZSBkb2luZyBzdHlsZSByZXNvbHV0aW9uLCB0aGlzIGRvY3VtZW50IHNob3VsZCBh
bHdheXMgYmUgaW4gYSBmcmFtZSBhbmQgdGh1cyBoYXZlIHNldHRpbmdzCi0gICAgICAgICAgICBp
ZiAoIXNldHRpbmdzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEZvbnRE
ZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247Ci0gICAgICAgICAgICBmb250RGVzY3JpcHRpb24u
c2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246OlN0YW5kYXJkRmFtaWx5KTsKLSAgICAg
ICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250UmVu
ZGVyaW5nTW9kZSgpKTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQcmludGVy
Rm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSk7Ci0gICAgICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSA9IG1fY2hlY2tlci5kb2N1bWVudCgp
LT5zZXR0aW5ncygpLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKLSAgICAgICAgICAgIGlmICghc3Rh
bmRhcmRGb250RmFtaWx5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi5maXJzdEZhbWlseSgpLnNldEZhbWlseShzdGFuZGFyZEZvbnRGYW1pbHkpOwotICAgICAg
ICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLmFwcGVuZEZhbWlseSgwKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6
ZShDU1NWYWx1ZU1lZGl1bSAtIENTU1ZhbHVlWHhTbWFsbCArIDEpOwotICAgICAgICAgICAgc2V0
Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdvcmQobV9jaGVja2VyLmRv
Y3VtZW50KCksIENTU1ZhbHVlTWVkaXVtLCBmYWxzZSkpOwotICAgICAgICAgICAgbV9zdHlsZS0+
c2V0TGluZUhlaWdodChSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7Ci0gICAgICAg
ICAgICBtX2xpbmVIZWlnaHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICBzZXRGb250RGVzY3JpcHRp
b24oZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGluaXRpYWxpemVGb250U3R5bGUoKTsK
ICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZSkgewogICAgICAgICAgICAgbV9zdHls
ZS0+c2V0TGluZUhlaWdodChSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7CiAgICAg
ICAgICAgICBtX2xpbmVIZWlnaHRWYWx1ZSA9IDA7CkBAIC00OTIzLDYgKzQ5MTgsMjkgQEAgdm9p
ZCBTdHlsZVJlc29sdmVyOjpjaGVja0ZvckdlbmVyaWNGYW1pbHlDaGFuZ2UoUmVuZGVyU3R5bGUq
IHN0eWxlLCBSZW5kZXJTdHlsZSoKICAgICBzdHlsZS0+c2V0Rm9udERlc2NyaXB0aW9uKG5ld0Zv
bnREZXNjcmlwdGlvbik7CiB9CiAKK2Jvb2wgU3R5bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRT
dHlsZSgpCit7CisgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9jaGVja2VyLmRvY3VtZW50KCkt
PnNldHRpbmdzKCk7CisgICAgaWYgKCFzZXR0aW5ncykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsKKyAgICBmb250RGVzY3JpcHRp
b24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246OlN0YW5kYXJkRmFtaWx5KTsKKyAg
ICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmlu
Z01vZGUoKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFVzZVByaW50ZXJGb250KG1fY2hlY2tl
ci5kb2N1bWVudCgpLT5wcmludGluZygpKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YW5k
YXJkRm9udEZhbWlseSA9IG1fY2hlY2tlci5kb2N1bWVudCgpLT5zZXR0aW5ncygpLT5zdGFuZGFy
ZEZvbnRGYW1pbHkoKTsKKyAgICBpZiAoIXN0YW5kYXJkRm9udEZhbWlseS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgZm9udERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCkuc2V0RmFtaWx5KHN0YW5kYXJk
Rm9udEZhbWlseSk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLmFwcGVu
ZEZhbWlseSgwKTsKKyAgICB9CisgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplKENT
U1ZhbHVlTWVkaXVtIC0gQ1NTVmFsdWVYeFNtYWxsICsgMSk7CisgICAgc2V0Rm9udFNpemUoZm9u
dERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdvcmQobV9jaGVja2VyLmRvY3VtZW50KCksIENT
U1ZhbHVlTWVkaXVtLCBmYWxzZSkpOworICAgIG1fc3R5bGUtPnNldExpbmVIZWlnaHQoUmVuZGVy
U3R5bGU6OmluaXRpYWxMaW5lSGVpZ2h0KCkpOworICAgIG1fbGluZUhlaWdodFZhbHVlID0gMDsK
KyAgICBzZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogdm9pZCBTdHlsZVJlc29sdmVyOjpzZXRGb250U2l6ZShGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbiwgZmxvYXQgc2l6ZSkKIHsKICAgICBmb250RGVzY3JpcHRpb24uc2V0
U3BlY2lmaWVkU2l6ZShzaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IDUz
OWRkNjM1NmFlMDlmMWM2OGVmMjdmNjJjOWEzZjU4MTE2ZDE1YmYuLjA1NmM5MmQzYTg3MDU4YTgy
NmFjMGNkY2M5MDExMzM3M2ViYTE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApA
QCAtMjA4LDYgKzIwOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5UHJvcGVydHlUb0N1cnJl
bnRTdHlsZShDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSopOwogCiAgICAgdm9pZCB1cGRhdGVGb250
KCk7CisgICAgYm9vbCBpbml0aWFsaXplRm9udFN0eWxlKCk7CiAKICAgICBzdGF0aWMgZmxvYXQg
Z2V0Q29tcHV0ZWRTaXplRnJvbVNwZWNpZmllZFNpemUoRG9jdW1lbnQqLCBmbG9hdCB6b29tRmFj
dG9yLCBib29sIGlzQWJzb2x1dGVTaXplLCBmbG9hdCBzcGVjaWZpZWRTaXplLCBFU21hcnRNaW5p
bXVtRm9yRm9udFNpemUgPSBVc2VTbWFydE1pbmltdW1Gb3JGb250Rml6ZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDdmNzBlN2MwZmYyMGMw
MzRiODViNWFjOGFlMjY5M2ZhNjZmOTM1OGMuLmI0ZDZkNDY4NmZkNjRmMDI0MjI4OWViYmMwN2Jm
MzU3NTI0NWNhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcApAQCAtNTUsNiArNTUsNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQoTm9kZSogbm9kZSkKICAgICA6IG1fcGhhc2UoQXR0YWNoaW5nTm90SW5UcmVlKQog
ICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZSgwKQorICAgICwgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX3Zpc3Vh
bFBhcmVudFNoYWRvdygwKQogICAgICwgbV9pbnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHls
ZSgwKQpAQCAtNjcsNiArNjgsNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQoTm9kZSogbm9kZSkKICAgICBpZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSAmJiB0
b1NoYWRvd1Jvb3QocGFyZW50KS0+aXNZb3VuZ2VzdCgpKSB7CiAgICAgICAgIG1fcGhhc2UgPSBB
dHRhY2hpbmdTaGFkb3dDaGlsZDsKICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5k
U3R5bGUgPSB0b1NoYWRvd1Jvb3QocGFyZW50KS0+aG9zdCgpOworICAgICAgICBtX3Jlc2V0U3R5
bGVJbmhlcml0YW5jZSA9IHRvU2hhZG93Um9vdChwYXJlbnQpLT5yZXNldFN0eWxlSW5oZXJpdGFu
Y2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODIsNyArODQsOSBAQCBOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAgICAg
ICAgIGlmICgobV9pbnNlcnRpb25Qb2ludCA9IG1fdmlzdWFsUGFyZW50U2hhZG93LT5pbnNlcnRp
b25Qb2ludEZvcihtX25vZGUpKSkgewogICAgICAgICAgICAgICAgIGlmIChtX2luc2VydGlvblBv
aW50LT5zaGFkb3dSb290KCktPmlzVXNlZEZvclJlbmRlcmluZygpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdEaXN0cmlidXRlZDsKLSAgICAgICAgICAgICAgICAg
ICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4
dChtX2luc2VydGlvblBvaW50KS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgaW5zZXJ0aW9uUG9pbnRDb250
ZXh0KG1faW5zZXJ0aW9uUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVG
b3JSZW5kZXJpbmdBbmRTdHlsZSA9IGluc2VydGlvblBvaW50Q29udGV4dC5wYXJlbnROb2RlRm9y
UmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2UgPSBpbnNlcnRpb25Qb2ludENvbnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CkBAIC0xMDcsOSArMTExLDExIEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVu
ZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdGYWxsYmFja2VkOwogCi0gICAgICAgICAgICBpZiAodG9J
bnNlcnRpb25Qb2ludChwYXJlbnQpLT5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgICAgIG1fcGFy
ZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gTm9kZVJlbmRlcmluZ0NvbnRleHQocGFyZW50
KS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKLSAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGlmICh0b0luc2VydGlvblBvaW50KHBhcmVudCktPmlzQWN0aXZlKCkpIHsKKyAg
ICAgICAgICAgICAgICBOb2RlUmVuZGVyaW5nQ29udGV4dCBwYXJlbnRDb250ZXh0KHBhcmVudCk7
CisgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJl
bnRDb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOworICAgICAgICAgICAg
ICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gcGFyZW50Q29udGV4dC5yZXNldFN0eWxlSW5o
ZXJpdGFuY2UoKTsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG1fcGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gcGFyZW50OwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CkBAIC0xMjMsNiArMTI5LDcgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVS
ZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUsIFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICA6IG1f
cGhhc2UoQ2FsY3VsYXRpbmcpCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fcGFyZW50Tm9k
ZUZvclJlbmRlcmluZ0FuZFN0eWxlKDApCisgICAgLCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZShm
YWxzZSkKICAgICAsIG1fdmlzdWFsUGFyZW50U2hhZG93KDApCiAgICAgLCBtX2luc2VydGlvblBv
aW50KDApCiAgICAgLCBtX3N0eWxlKHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuaAppbmRleCA3YjE0ZTAzZWRkOWYxMWY5YWUwYjRkMzA5NjJhNTQ1MjY5MWY5
ZWZlLi42MDc5MmNiNDdmMGY0ZTJiZGMzYzVkYjlkMWY1NWVkMTUxZTEzODdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaApAQCAtNDksNiArNDksNyBAQCBwdWJs
aWM6CiAKICAgICBOb2RlKiBub2RlKCkgY29uc3Q7CiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uc3Q7CisgICAgYm9vbCByZXNldFN0eWxlSW5o
ZXJpdGFuY2UoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyKCkgY29u
c3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJP
YmplY3QqIHByZXZpb3VzUmVuZGVyZXIoKSBjb25zdDsKQEAgLTgxLDYgKzgyLDcgQEAgcHJpdmF0
ZToKICAgICBBdHRhY2hpbmdQaGFzZSBtX3BoYXNlOwogICAgIE5vZGUqIG1fbm9kZTsKICAgICBD
b250YWluZXJOb2RlKiBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsKKyAgICBib29s
IG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlOwogICAgIEVsZW1lbnRTaGFkb3cqIG1fdmlzdWFsUGFy
ZW50U2hhZG93OwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50OwogICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKQEAgLTk5LDYgKzEwMSwxMiBAQCBpbmxpbmUgQ29u
dGFpbmVyTm9kZSogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnBhcmVudE5vZGVGb3JSZW5kZXJpbmdB
bmRTdHlsZSgpIGNvbgogICAgIHJldHVybiBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZTsKIH0KIAoraW5saW5lIGJvb2wgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlc2V0U3R5bGVJbmhl
cml0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcGhhc2UgIT0gQ2FsY3VsYXRpbmcpOwor
ICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZTsKK30KKwogaW5saW5lIFJlbmRlclN0
eWxlKiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6c3R5bGUoKSBjb25zdAogewogICAgIHJldHVybiBt
X3N0eWxlLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDY3MjNhMGY2ZGQz
MDk1ZGQxNmU5NTMzN2E5YmJjMmFiOTA1NjhiMWMuLjJjNTc1NjBiZjI2ZjMyNzcyMjNjNDhiZTQ5
NTc0ZGU0NGZkNzIwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTUwLDYgKzUw
LDcgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBt
X3ByZXYoMCkKICAgICAsIG1fbmV4dCgwKQogICAgICwgbV9hcHBseUF1dGhvclN0eWxlcyhmYWxz
ZSkKKyAgICAsIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlKGZhbHNlKQogICAgICwgbV9pbnNlcnRp
b25Qb2ludEFzc2lnbmVkVG8oMCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwpAQCAtMTkzLDYg
KzE5NCwyMCBAQCB2b2lkIFNoYWRvd1Jvb3Q6OnNldEFwcGx5QXV0aG9yU3R5bGVzKGJvb2wgdmFs
dWUpCiAgICAgfQogfQogCitib29sIFNoYWRvd1Jvb3Q6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlOworfQorCit2b2lk
IFNoYWRvd1Jvb3Q6OnNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sIHZhbHVlKQoreworICAg
IGlmICh2YWx1ZSAhPSBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSkgeworICAgICAgICBtX3Jlc2V0
U3R5bGVJbmhlcml0YW5jZSA9IHZhbHVlOworICAgICAgICBpZiAoYXR0YWNoZWQoKSAmJiBvd25l
cigpKQorICAgICAgICAgICAgb3duZXIoKS0+cmVjYWxjU3R5bGUoRm9yY2UpOworICAgIH0KK30K
Kwogdm9pZCBTaGFkb3dSb290OjphdHRhY2goKQogewogICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxl
UmVzb2x2ZXIgPSBkb2N1bWVudCgpLT5zdHlsZVJlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaAppbmRleCAwYjdmZmE1ZjJkYThkN2E1NDYwODM2MTk5NTM5MWM1OGNmODhkMzNlLi42YTc2
ZTRmMjI0N2RhMTU5MjUxY2I5OTQzYmJhN2Q0MDY1ZjYzNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmgKQEAgLTYzLDYgKzYzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5
QXV0aG9yU3R5bGVzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclN0
eWxlcyhib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdm9pZCBzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CiAK
ICAgICBFbGVtZW50KiBob3N0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRIb3N0KEVsZW1lbnQqKTsK
QEAgLTk4LDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAg
IFNoYWRvd1Jvb3QqIG1fbmV4dDsKICAgICBib29sIG1fYXBwbHlBdXRob3JTdHlsZXMgOiAxOwor
ICAgIGJvb2wgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgOiAxOwogICAgIEluc2VydGlvblBvaW50
KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmlkbAppbmRleCA4MTEwYzFlMDhhNzQzZDczZWMxMzQ1MmNhNmE0ZGI2YTM3NDc0MWMwLi4wMGY3
Y2Q4M2E1MjRiMmI1NjE2N2UwMmM3NDBmY2MyM2MxNjY5ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaWRsCkBAIC0zNCw2ICszNCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVs
ZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRo
b3JTdHlsZXM7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5j
ZTsKIAogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBpbm5lckhUTUwKICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggZDcwYjkwMDU5ZGJkZWViZTFkNzA3YmIzMzQ2MDdk
MzY4YWUzN2ExMi4uODMyMmZjYjM4YWY1OTYwODY5MGQxODI3ODZjYzg5NzhlOTY2NGFkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTE5MSw2ICsxOTEsMTEgQEAgYm9vbCBUcmVlU2Nv
cGU6OmFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9v
bCBUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiB2b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQog
ewogICAgIEFTU0VSVCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCAwZDFkY2ViNDMz
MjE2OGUyNGVmN2QyMmMxMjQ5NjdmM2ZjMDFkZDIzLi41ZWNjMDM5MmYzNzE3MGJlZTMwNTM5OTIx
NDI0OTdjZmFiN2FjYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC03NSw2ICs3NSw3IEBA
IHB1YmxpYzoKICAgICBFbGVtZW50KiBmaW5kQW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRo
ZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAg
dm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNTQ3OGU0ZGUzZGE4OTEyNjA2ODRm
YTM4NTdmNDU3ZGIxN2JmMzljLi5lZDNiNDhlNzM1OGFjM2Q2MGM5OGU2MzJjMjA1YWE2N2M5ZGYz
MmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTggIFRha2FzaGkgU2FrYW1vdG8g
IDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvd1Jvb3QgbmVlZHMgcmVzZXRTdHls
ZUluaGVyaXRhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDA0OAorCisgICAgICAgIEFkZGVkIGxheW91dCB0ZXN0cyBmb3IgY2hlY2tpbmcgd2hl
dGhlciByZXNldFN0eWxlSW5oZXJpdGFuY2Ugd29ya3MgY29ycmVjdGx5IG9yIG5vdC4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0zMSAgRG9taW5pYyBDb29uZXkgIDxkb21p
bmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBFeHBhbmRvIHByb3BlcnRpZXMgb24g
YXR0cmlidXRlIG5vZGVzIGRpc2FwcGVhcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhl
cml0YW5jZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZGViNjU0MzhjNGI1ZjFkMTRmOWU2
MDFiMDFiN2FjNjA5YzJjYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorZGl2LnJlc2V0VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjog
c29saWQ7CisgIG1hcmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsK
KyAgZm9udC1mYW1pbHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6
IGl0YWxpYzsKKyAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9s
ZDsKKyAgbGV0dGVyLXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQt
YWxpZ246IHN0YXJ0OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZTsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4Owor
fQorZGl2LmluaXRpYWxWYWx1ZXMgeworICBjb2xvcjogaW5pdGlhbDsKKyAgZm9udC1mYW1pbHk6
IGluaXRpYWw7CisgIGZvbnQtc2l6ZTogaW5pdGlhbDsKKyAgZm9udC1zdHlsZTogaW5pdGlhbDsK
KyAgZm9udC12YXJpYW50OiBpbml0aWFsOworICBmb250LXdlaWdodDogaW5pdGlhbDsKKyAgbGV0
dGVyLXNwYWNpbmc6IGluaXRpYWw7CisgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOworICB0ZXh0LWFs
aWduOiBpbml0aWFsOworICB0ZXh0LWluZGVudDogaW5pdGlhbDsKKyAgdGV4dC10cmFuc2Zvcm06
IGluaXRpYWw7CisgIHdoaXRlLXNwYWNlOiBpbml0aWFsOworICB3b3JkLXNwYWNpbmc6IGluaXRp
YWw7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0
VGVzdCI+PGRpdiBjbGFzcz0iaW5pdGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2Pgor
PGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2Pgor
PGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2Pgor
PGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRl
eHQ8L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNs
YXNzPSJpbml0aWFsVmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xh
c3M9InJlc2V0VGVzdCI+PGRpdj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
cmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiOGQy
NmE4Mjc1NWQyOWMyMGJjMDJiZmM5YThiMDA3OTg3NmJmNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFu
Y2UuaHRtbApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorZGl2LnJlc2V0VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7Cisg
IGJvcmRlcjogc29saWQ7CisgIG1hcmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xv
cjogI2ZlZTsKKyAgZm9udC1mYW1pbHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZv
bnQtc3R5bGU6IGl0YWxpYzsKKyAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdl
aWdodDogYm9sZDsKKyAgbGV0dGVyLXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7
CisgIHRleHQtYWxpZ246IHN0YXJ0OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFu
c2Zvcm06IHVwcGVyY2FzZTsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5n
OiAzMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBhc3NlcnRUcnVlKGlkLCBh
Y3R1YWwpIHsKKyAgICBpZiAoIWFjdHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlk
ICsgIjogYXNzZXJ0VHJ1ZSBmYWlsZWQiOworfQorCitmdW5jdGlvbiBhc3NlcnRGYWxzZShpZCwg
YWN0dWFsKSB7CisgICAgaWYgKGFjdHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlk
ICsgICI6IGFzc2VydEZhbHNlIGZhaWxlZCI7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKGEsIGIp
Cit7CisgICAgaWYgKGEgIT0gYikKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBz
aG91bGQgYmUgIiArIGI7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdEJlKGEsIGIpCit7CisgICAg
aWYgKGEgPT0gYikKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBzaG91bGQgbm90
IGJlICIgKyBiOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxs
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UiPjwvZGl2PgorPGRpdiBpZD0ibm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiPjwv
ZGl2PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZSI+PC9k
aXY+Cis8ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mYWxzZS10by10cnVlIj48L2Rp
dj4KKzxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50Ij48L2Rpdj4K
KzxkaXYgaWQ9Im5vLXJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50Ij48L2Rpdj4K
KworPHNjcmlwdD4KK2Z1bmN0aW9uIHJlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgp
IHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2
LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2Vi
S2l0U2hhZG93Um9vdChkaXYpOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0
YW5jZSk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsKKyAg
ICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFu
Y2UnKS5hcHBlbmRDaGlsZChkaXYpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoUmVzZXRTdHls
ZUluaGVyaXRhbmNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93
Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1
bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVz
ZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5j
ZSA9IHRydWU7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsK
KyAgICBhc3NlcnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUgYXMg
ZXhwbGljaXRseSBzZXQnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAg
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlJyku
YXBwZW5kQ2hpbGQoZGl2KTsKK30KKworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5naW5nUmVzZXRT
dHlsZUluaGVyaXRhbmNlRnJvbVRydWVUb0ZhbHNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7
CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAg
YXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxz
ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJl
c2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAn
PGRpdiBpZD0idGVzdDEiPnRleHQ8L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJ
bmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRh
bmNlKTsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UtdHJ1ZS10by1mYWxzZScpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNl
dExlZnQ7CisgICAgdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qx
Jyk7CisgICAgc2hvdWxkTm90QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQ
cm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKKyAgICBzaG91bGROb3RCZSh3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVp
Z2h0JyksICc0OHB4Jyk7CisKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9
IGZhbHNlOworICAgIGFzc2VydEZhbHNlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJl
IGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIGRpdi5vZmZz
ZXRMZWZ0OworICAgIHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0
UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxkQmUod2lu
ZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdo
dCcpLCAnNDhweCcpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxl
SW5oZXJpdGFuY2VGcm9tRmFsc2VUb1RydWUoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKwor
ICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBhc3Nl
cnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywg
c2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlID0gZmFsc2U7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRp
diBpZD0idGVzdDIiPnRleHQ8L2Rpdj4nOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0
U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0
eWxlLWluaGVyaXRhbmNlLWZhbHNlLXRvLXRydWUnKS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRp
di5vZmZzZXRMZWZ0OworICAgIHZhciB0YXJnZXQgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MicpOworICAgIHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCku
Z2V0UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxkQmUo
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhl
aWdodCcpLCAnNDhweCcpOworCisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2Ug
PSB0cnVlOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUg
dHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBkaXYub2Zmc2V0
TGVmdDsKKyAgICBzaG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdl
dFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JyksICdzZXJpZicpOworICAgIHNob3VsZE5vdEJl
KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1o
ZWlnaHQnKSwgJzQ4cHgnKTsKK30KKworZnVuY3Rpb24gY3JlYXRlRGl2V2l0aFRleHQodGV4dCkg
eworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOworICAgIHJldHVybiBk
aXY7Cit9CisKK2Z1bmN0aW9uIHJlbmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQo
KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRp
di5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2
V2l0aFRleHQoJ3RleHQnKSk7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFk
b3dSb290KGRpdik7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0
PSJkaXYiPjwvY29udGVudD4nOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNl
ID0gdHJ1ZTsKKyAgICBhc3NlcnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJl
IHRydWUnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50JykuYXBw
ZW5kQ2hpbGQoZGl2KTsKKyAgICBkaXYub2Zmc2V0TGVmdDsKK30KKworZnVuY3Rpb24gcmVuZGVy
Tm9SZXNldFN0eWxlSW5oZXJpdGFuY2VGb3JDb250ZW50KCkgeworICAgIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVz
dCc7CisgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZURpdldpdGhUZXh0KCd0ZXh0JykpOworCisg
ICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIHNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JzsKKyAg
ICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIGFzc2VydEZh
bHNlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5y
ZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduby1y
ZXNldC1zdHlsZS1pbmhlcml0YW5jZS1mb3ItY29udGVudCcpLmFwcGVuZENoaWxkKGRpdik7Cisg
ICAgZGl2Lm9mZnNldExlZnQ7Cit9CisKK3JlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpOworcmVuZGVyV2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aENoYW5n
aW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbVRydWVUb0ZhbHNlKCk7CityZW5kZXJXaXRoQ2hh
bmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tRmFsc2VUb1RydWUoKTsKK3JlbmRlclJlc2V0
U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKTsKK3JlbmRlck5vUmVzZXRTdHlsZUluaGVyaXRh
bmNlRm9yQ29udGVudCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145967</attachid>
            <date>2012-06-06 02:28:20 -0700</date>
            <delta_ts>2012-06-06 03:09:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120606182819.patch</filename>
            <type>text/plain</type>
            <size>27331</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjlmMjZiNTU4MjJkYWIx
MDljZmU3ZTQxOGYxMjA2YWQ3NTdhNDQ3Ny4uYTI0MGViNDA5ZGUzMWFhMDU0MjA3MGE0MDhiYzMy
MGQ4MWVmNTY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA1LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckVsZW1lbnQgdG8KKyAgICAg
ICAgdXNlIGVtcHR5IHN0eWxlIGluc3RlYWQgb2YgcGFyZW50IHN0eWxlIGlmIHJlc2V0U3R5bGVJ
bmhlcml0YW5jZSBpcworICAgICAgICB0cnVlLCBhbmQgYSBub2RlIGFuZCBpdHMgcGFyZW50IG5v
ZGUgYXJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgc2hhZG93CisgICAgICAgIHRyZWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAorICAgICAgICAg
ICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4
cGVjdGVkLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUpOgorICAgICAgICBT
ZXQgbV9wYXJlbnRTdHlsZSB0byBOVUxMIHdoZW4gcmVzZXRTdHlsZUluaGVyaXRhbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZG9jdW1lbnRTZXR0aW5ncyk6CisgICAgICAg
IEFkZGVkIGEgbmV3IG1ldGhvZCB0byBvYnRhaW4gY3VycmVudCBkb2N1bWVudCdzIHNldHRpbmdz
LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSk6
CisgICAgICAgIEluaXRpYWxpemUgbV9zdHlsZSBieSB1c2luZyBkb2N1bWVudCBzZXR0aW5ncy4g
SXRzIGNvZGUgd2FzIG1vdmUKKyAgICAgICAgZnJvbSB0aGUgY29kZSBpbml0aWFsaXppbmcgZm9u
dCBzdHlsZSBpbiBhcHBseVByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAgSW5pdGlhbGl6ZSBmb250IHN0eWxlIGlmIG1f
cGFyZW50U3R5bGUgaXMgTlVMTC4gVGhlIG9sZCBjb2RlIGp1c3QKKyAgICAgICAgdXNlZCBzdHls
ZSgpIGFuZCBkb24ndCB0b3VjaCBmb250IHN0eWxlLiBUaGUgbmV3IGNvZGUgdXNlcyB0aGUgYWJv
dmUKKyAgICAgICAgaW5pdGlhbGl6ZUZvbnRTdHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICBNb3ZlZCBhIGNvZGUgZm9yIGluaXRp
YWxpemluZyBmb250IHN0eWxlIGFzICJpbml0aWFsIiB0bworICAgICAgICBhIG5ldyBtZXRob2Q6
IGluaXRpYWxpemVGb250U3R5bGUgYW5kIG1vZGlmaWVkIHRvIHVzZSB0aGUgbWV0aG9kLgorICAg
ICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29s
dmVyOjpkb2N1bWVudFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmluaXRpYWxpemVGb250U3R5bGUpOgorICAgICAgICBBZGRlZCB0d28gbmV3IG1ldGhvZHMgdG8g
Y2xhc3MgU3R5bGVSZXNvbHZlci4KKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJp
bmdDb250ZXh0KToKKyAgICAgICAgTW9kaWZpZWQgdG8gY2FsY3VsYXRlIG1fcmVzZXRTdHlsZUlu
aGVyaXRhbmNlIGluIGl0cyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpyZXNl
dFN0eWxlSW5oZXJpdGFuY2UpOgorICAgICAgICBJbXBsZW1lbnRlZCBhIG5ldyBtZXRob2QsIGp1
c3QgcmV0dXJuaW5nIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlLgorICAgICAgICAqIGRvbS9TaGFk
b3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnNldFJlc2V0U3R5bGVJ
bmhlcml0YW5jZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIGZvcmNlIHRvIHJlY2FsY3VsYXRlIGNo
aWxkcmVuJ3Mgc3R5bGVzIGlmCisgICAgICAgIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBpcyBjaGFu
Z2VkLgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToK
KyAgICAgICAgQWRkZWQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGdldHRlciBhbmQgc2V0dGVyLgor
ICAgICAgICAqIGRvbS9TaGFkb3dSb290LmlkbDoKKyAgICAgICAgQWRkZWQgYW4gYXR0cmlidXRl
LCByZXNldFN0eWxlSW5oZXJpdGFuY2UuCisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAg
ICAgICogZG9tL1RyZWVTY29wZS5oOgorICAgICAgICAoVHJlZVNjb3BlKToKKyAgICAgICAgQWRk
ZWQgcmVzZXRTdHlsZUluaGVyaXRhbmNlJ3MgZGVmYXVsdCBnZXR0ZXIuCisgICAgICAgIFRoZSBn
ZXR0ZXIgd2lsbCBiZSBvdmVycmlkZWQgYnkgY2xhc3MgU2hhZG93Um9vdCdzIGdldHRlci4KKwog
MjAxMi0wNi0wNiAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBbV2ViR0xdIEFkZCBXZWJHTCBpbnN0cnVtZW50YXRpb24gc3Vw
cG9ydCBvbiB0aGUgYmFja2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4
IDNlZjBhZGQ4ZDg5OTY3OWUwNjVjNzg4NWFjNzE5NTgxZGRjZTNhYTAuLjVjMTBjOTUxNWIzMzIx
NmY0ZDU0MjM5ZDIyMTdiNGU5NjU2ZWU3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisj
aW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtMTE2MiwxMiArMTE2Mywx
NiBAQCBpbmxpbmUgdm9pZCBTdHlsZVJlc29sdmVyOjppbml0Rm9yU3R5bGVSZXNvbHZlKEVsZW1l
bnQqIGUsIFJlbmRlclN0eWxlKiBwYXJlbnRTdAogewogICAgIG1fY2hlY2tlci5zZXRQc2V1ZG9T
dHlsZShwc2V1ZG9JRCk7CiAKLSAgICBtX3BhcmVudE5vZGUgPSBlID8gZS0+cGFyZW50Tm9kZUZv
clJlbmRlcmluZ0FuZFN0eWxlKCkgOiAwOwotCi0gICAgaWYgKHBhcmVudFN0eWxlKQorICAgIGlm
IChlKSB7CisgICAgICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQoZSk7CisgICAgICAg
IG1fcGFyZW50Tm9kZSA9IGNvbnRleHQucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7
CisgICAgICAgIG1fcGFyZW50U3R5bGUgPSBjb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
PyAwIDoKKyAgICAgICAgICAgIHBhcmVudFN0eWxlID8gcGFyZW50U3R5bGUgOgorICAgICAgICAg
ICAgbV9wYXJlbnROb2RlID8gbV9wYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpIDogMDsKKyAgICB9
IGVsc2UgeworICAgICAgICBtX3BhcmVudE5vZGUgPSAwOwogICAgICAgICBtX3BhcmVudFN0eWxl
ID0gcGFyZW50U3R5bGU7Ci0gICAgZWxzZQotICAgICAgICBtX3BhcmVudFN0eWxlID0gbV9wYXJl
bnROb2RlID8gbV9wYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpIDogMDsKKyAgICB9CiAKICAgICBO
b2RlKiBkb2NFbGVtZW50ID0gZSA/IGUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpIDog
MDsKICAgICBSZW5kZXJTdHlsZSogZG9jU3R5bGUgPSBtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cmVu
ZGVyU3R5bGUoKTsKQEAgLTE2NTIsNyArMTY1NywxMSBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVy
UwogICAgIGVsc2UgewogICAgICAgICBtX3BhcmVudFN0eWxlID0gc3R5bGUoKTsKICAgICAgICAg
Ly8gTWFrZSBzdXJlIG91ciBmb250cyBhcmUgaW5pdGlhbGl6ZWQgaWYgd2UgZG9uJ3QgaW5oZXJp
dCB0aGVtIGZyb20gb3VyIHBhcmVudCBzdHlsZS4KLSAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVw
ZGF0ZSgwKTsKKyAgICAgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50U2V0dGlu
Z3MoKSkgeworICAgICAgICAgICAgaW5pdGlhbGl6ZUZvbnRTdHlsZShzZXR0aW5ncyk7CisgICAg
ICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3RvcigpKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKDApOwogICAgIH0KIAog
ICAgIC8vIEV2ZW4gaWYgc3Vycm91bmRpbmcgY29udGVudCBpcyB1c2VyLWVkaXRhYmxlLCBzaGFk
b3cgRE9NIHNob3VsZCBhY3QgYXMgYSBzaW5nbGUgdW5pdCwgYW5kIG5vdCBuZWNlc3NhcmlseSBi
ZSBlZGl0YWJsZQpAQCAtMzM0Niw3ICszMzU1LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBs
eVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBjb250ZW50VmFs
dWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwogICAgICAgICAgICAg
QXRvbWljU3RyaW5nIGZhY2U7Ci0gICAgICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2No
ZWNrZXIuZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKKyAgICAgICAgICAgIFNldHRpbmdzKiBzZXR0
aW5ncyA9IGRvY3VtZW50U2V0dGluZ3MoKTsKICAgICAgICAgICAgIGlmIChjb250ZW50VmFsdWUt
PmlzU3RyaW5nKCkpCiAgICAgICAgICAgICAgICAgZmFjZSA9IGNvbnRlbnRWYWx1ZS0+Z2V0U3Ry
aW5nVmFsdWUoKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHNldHRpbmdzKSB7CkBAIC0zNDMwLDI0
ICszNDM5LDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5
SUQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgIG1fbGluZUhlaWdodFZhbHVlID0g
MDsKICAgICAgICAgICAgIHNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwogICAg
ICAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbCkgewotICAgICAgICAgICAgU2V0dGluZ3MqIHNldHRp
bmdzID0gbV9jaGVja2VyLmRvY3VtZW50KCktPnNldHRpbmdzKCk7Ci0gICAgICAgICAgICBBU1NF
UlQoc2V0dGluZ3MpOyAvLyBJZiB3ZSdyZSBkb2luZyBzdHlsZSByZXNvbHV0aW9uLCB0aGlzIGRv
Y3VtZW50IHNob3VsZCBhbHdheXMgYmUgaW4gYSBmcmFtZSBhbmQgdGh1cyBoYXZlIHNldHRpbmdz
Ci0gICAgICAgICAgICBpZiAoIXNldHRpbmdzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247Ci0gICAgICAgICAgICBm
b250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246OlN0YW5kYXJk
RmFtaWx5KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNl
dHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSk7Ci0g
ICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSA9IG1fY2hl
Y2tlci5kb2N1bWVudCgpLT5zZXR0aW5ncygpLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKLSAgICAg
ICAgICAgIGlmICghc3RhbmRhcmRGb250RmFtaWx5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLnNldEZhbWlseShzdGFuZGFyZEZvbnRG
YW1pbHkpOwotICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLmFw
cGVuZEZhbWlseSgwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRLZXl3b3JkU2l6ZShDU1NWYWx1ZU1lZGl1bSAtIENTU1ZhbHVlWHhTbWFsbCArIDEpOwot
ICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdv
cmQobV9jaGVja2VyLmRvY3VtZW50KCksIENTU1ZhbHVlTWVkaXVtLCBmYWxzZSkpOwotICAgICAg
ICAgICAgbV9zdHlsZS0+c2V0TGluZUhlaWdodChSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWln
aHQoKSk7Ci0gICAgICAgICAgICBtX2xpbmVIZWlnaHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICBz
ZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGlmIChTZXR0
aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRpbmdzKCkpCisgICAgICAgICAgICAgICAgaW5p
dGlhbGl6ZUZvbnRTdHlsZShzZXR0aW5ncyk7CiAgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZl
VmFsdWUpIHsKICAgICAgICAgICAgIG1fc3R5bGUtPnNldExpbmVIZWlnaHQoUmVuZGVyU3R5bGU6
OmluaXRpYWxMaW5lSGVpZ2h0KCkpOwogICAgICAgICAgICAgbV9saW5lSGVpZ2h0VmFsdWUgPSAw
OwpAQCAtMzQ1OCw3ICszNDUxLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5
KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgIC8vIERvdWJs
ZS1jaGVjayBhbmQgc2VlIGlmIHRoZSB0aGVtZSBkaWQgYW55dGhpbmcuIElmIG5vdCwgZG9uJ3Qg
Ym90aGVyIHVwZGF0aW5nIHRoZSBmb250LgogICAgICAgICAgICAgaWYgKGZvbnREZXNjcmlwdGlv
bi5pc0Fic29sdXRlU2l6ZSgpKSB7CiAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBy
ZW5kZXJpbmcgbW9kZSBhbmQgcHJpbnRlciBmb250IHNldHRpbmdzIGFyZSB1cGRhdGVkLgotICAg
ICAgICAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fY2hlY2tlci5kb2N1bWVudCgpLT5z
ZXR0aW5ncygpOworICAgICAgICAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50
U2V0dGluZ3MoKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoc2V0dGluZ3MpOyAvLyBJZiB3ZSdy
ZSBkb2luZyBzdHlsZSByZXNvbHV0aW9uLCB0aGlzIGRvY3VtZW50IHNob3VsZCBhbHdheXMgYmUg
aW4gYSBmcmFtZSBhbmQgdGh1cyBoYXZlIHNldHRpbmdzCiAgICAgICAgICAgICAgICAgaWYgKCFz
ZXR0aW5ncykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDkxMSw3ICs0OTA0LDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjaGVja0ZvckdlbmVyaWNGYW1pbHlDaGFuZ2UoUmVuZGVy
U3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSoKICAgICBpZiAoY2hpbGRGb250LmtleXdvcmRTaXpl
KCkpCiAgICAgICAgIHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQobV9jaGVja2VyLmRvY3VtZW50
KCksIENTU1ZhbHVlWHhTbWFsbCArIGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpIC0gMSwgY2hpbGRG
b250LnVzZUZpeGVkRGVmYXVsdFNpemUoKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFNldHRpbmdz
KiBzZXR0aW5ncyA9IG1fY2hlY2tlci5kb2N1bWVudCgpLT5zZXR0aW5ncygpOworICAgICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRpbmdzKCk7CiAgICAgICAgIGZsb2F0IGZp
eGVkU2NhbGVGYWN0b3IgPSBzZXR0aW5ncwogICAgICAgICAgICAgPyBzdGF0aWNfY2FzdDxmbG9h
dD4oc2V0dGluZ3MtPmRlZmF1bHRGaXhlZEZvbnRTaXplKCkpIC8gc2V0dGluZ3MtPmRlZmF1bHRG
b250U2l6ZSgpCiAgICAgICAgICAgICA6IDE7CkBAIC00OTI1LDYgKzQ5MTgsMjQgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjpjaGVja0ZvckdlbmVyaWNGYW1pbHlDaGFuZ2UoUmVuZGVyU3R5bGUqIHN0
eWxlLCBSZW5kZXJTdHlsZSoKICAgICBzdHlsZS0+c2V0Rm9udERlc2NyaXB0aW9uKG5ld0ZvbnRE
ZXNjcmlwdGlvbik7CiB9CiAKK3ZvaWQgU3R5bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHls
ZShTZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlw
dGlvbjsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRp
b246OlN0YW5kYXJkRmFtaWx5KTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9k
ZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNl
dFVzZVByaW50ZXJGb250KG1fY2hlY2tlci5kb2N1bWVudCgpLT5wcmludGluZygpKTsKKyAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSA9IGRvY3VtZW50U2V0dGluZ3Mo
KS0+c3RhbmRhcmRGb250RmFtaWx5KCk7CisgICAgaWYgKCFzdGFuZGFyZEZvbnRGYW1pbHkuaXNF
bXB0eSgpKSB7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLnNldEZhbWls
eShzdGFuZGFyZEZvbnRGYW1pbHkpOworICAgICAgICBmb250RGVzY3JpcHRpb24uZmlyc3RGYW1p
bHkoKS5hcHBlbmRGYW1pbHkoMCk7CisgICAgfQorICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3
b3JkU2l6ZShDU1NWYWx1ZU1lZGl1bSAtIENTU1ZhbHVlWHhTbWFsbCArIDEpOworICAgIHNldEZv
bnRTaXplKGZvbnREZXNjcmlwdGlvbiwgZm9udFNpemVGb3JLZXl3b3JkKG1fY2hlY2tlci5kb2N1
bWVudCgpLCBDU1NWYWx1ZU1lZGl1bSwgZmFsc2UpKTsKKyAgICBtX3N0eWxlLT5zZXRMaW5lSGVp
Z2h0KFJlbmRlclN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpKTsKKyAgICBtX2xpbmVIZWlnaHRW
YWx1ZSA9IDA7CisgICAgc2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Cit9CisK
IHZvaWQgU3R5bGVSZXNvbHZlcjo6c2V0Rm9udFNpemUoRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24sIGZsb2F0IHNpemUpCiB7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmll
ZFNpemUoc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCA1MzlkZDYzNTZh
ZTA5ZjFjNjhlZjI3ZjYyYzlhM2Y1ODExNmQxNWJmLi43ZThmM2ExMDBhZDk1OGRjZWIxZGUyMTcw
MDAyMzgxNzk2NTI1OWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTIwOCw2
ICsyMDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUo
Q1NTUHJvcGVydHlJRCwgQ1NTVmFsdWUqKTsKIAogICAgIHZvaWQgdXBkYXRlRm9udCgpOworICAg
IHZvaWQgaW5pdGlhbGl6ZUZvbnRTdHlsZShTZXR0aW5ncyopOwogCiAgICAgc3RhdGljIGZsb2F0
IGdldENvbXB1dGVkU2l6ZUZyb21TcGVjaWZpZWRTaXplKERvY3VtZW50KiwgZmxvYXQgem9vbUZh
Y3RvciwgYm9vbCBpc0Fic29sdXRlU2l6ZSwgZmxvYXQgc3BlY2lmaWVkU2l6ZSwgRVNtYXJ0TWlu
aW11bUZvckZvbnRTaXplID0gVXNlU21hcnRNaW5pbXVtRm9yRm9udEZpemUpOwogCkBAIC0zNjYs
NiArMzY3LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbWF0Y2hQYWdlUnVsZXMoTWF0Y2hSZXN1
bHQmLCBSdWxlU2V0KiwgYm9vbCBpc0xlZnRQYWdlLCBib29sIGlzRmlyc3RQYWdlLCBjb25zdCBT
dHJpbmcmIHBhZ2VOYW1lKTsKICAgICB2b2lkIG1hdGNoUGFnZVJ1bGVzRm9yTGlzdChWZWN0b3I8
U3R5bGVSdWxlUGFnZSo+JiBtYXRjaGVkUnVsZXMsIGNvbnN0IFZlY3RvcjxTdHlsZVJ1bGVQYWdl
Kj4mLCBib29sIGlzTGVmdFBhZ2UsIGJvb2wgaXNGaXJzdFBhZ2UsIGNvbnN0IFN0cmluZyYgcGFn
ZU5hbWUpOworICAgIFNldHRpbmdzKiBkb2N1bWVudFNldHRpbmdzKCkgeyByZXR1cm4gbV9jaGVj
a2VyLmRvY3VtZW50KCktPnNldHRpbmdzKCk7IH0KKwogICAgIGJvb2wgaXNMZWZ0UGFnZShpbnQg
cGFnZUluZGV4KSBjb25zdDsKICAgICBib29sIGlzUmlnaHRQYWdlKGludCBwYWdlSW5kZXgpIGNv
bnN0IHsgcmV0dXJuICFpc0xlZnRQYWdlKHBhZ2VJbmRleCk7IH0KICAgICBib29sIGlzRmlyc3RQ
YWdlKGludCBwYWdlSW5kZXgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggN2Y3MGU3YzBmZjIwYzAzNGI4NWI1YWM4YWUyNjkzZmE2NmY5
MzU4Yy4uYjRkNmQ0Njg2ZmQ2NGYwMjQyMjg5ZWJiYzA3YmYzNTc1MjQ1Y2EwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC01NSw2ICs1NSw3IEBA
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQog
ICAgIDogbV9waGFzZShBdHRhY2hpbmdOb3RJblRyZWUpCiAgICAgLCBtX25vZGUobm9kZSkKICAg
ICAsIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKDApCisgICAgLCBtX3Jlc2V0U3R5
bGVJbmhlcml0YW5jZShmYWxzZSkKICAgICAsIG1fdmlzdWFsUGFyZW50U2hhZG93KDApCiAgICAg
LCBtX2luc2VydGlvblBvaW50KDApCiAgICAgLCBtX3N0eWxlKDApCkBAIC02Nyw2ICs2OCw3IEBA
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQog
ICAgIGlmIChwYXJlbnQtPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93Um9vdChwYXJlbnQpLT5p
c1lvdW5nZXN0KCkpIHsKICAgICAgICAgbV9waGFzZSA9IEF0dGFjaGluZ1NoYWRvd0NoaWxkOwog
ICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHRvU2hhZG93Um9vdChw
YXJlbnQpLT5ob3N0KCk7CisgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdG9TaGFk
b3dSb290KHBhcmVudCktPnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC04Miw3ICs4NCw5IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVu
ZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgICAgICAgICAgaWYgKChtX2luc2VydGlvblBv
aW50ID0gbV92aXN1YWxQYXJlbnRTaGFkb3ctPmluc2VydGlvblBvaW50Rm9yKG1fbm9kZSkpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKG1faW5zZXJ0aW9uUG9pbnQtPnNoYWRvd1Jvb3QoKS0+aXNV
c2VkRm9yUmVuZGVyaW5nKCkpIHsKICAgICAgICAgICAgICAgICAgICAgbV9waGFzZSA9IEF0dGFj
aGluZ0Rpc3RyaWJ1dGVkOwotICAgICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5k
ZXJpbmdBbmRTdHlsZSA9IE5vZGVSZW5kZXJpbmdDb250ZXh0KG1faW5zZXJ0aW9uUG9pbnQpLnBh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOworICAgICAgICAgICAgICAgICAgICBOb2Rl
UmVuZGVyaW5nQ29udGV4dCBpbnNlcnRpb25Qb2ludENvbnRleHQobV9pbnNlcnRpb25Qb2ludCk7
CisgICAgICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0g
aW5zZXJ0aW9uUG9pbnRDb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOwor
ICAgICAgICAgICAgICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGluc2VydGlvblBv
aW50Q29udGV4dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTEwNyw5ICsxMTEs
MTEgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5v
ZGUpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9waGFzZSA9IEF0dGFjaGlu
Z0ZhbGxiYWNrZWQ7CiAKLSAgICAgICAgICAgIGlmICh0b0luc2VydGlvblBvaW50KHBhcmVudCkt
PmlzQWN0aXZlKCkpCi0gICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5k
U3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChwYXJlbnQpLnBhcmVudE5vZGVGb3JSZW5kZXJp
bmdBbmRTdHlsZSgpOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKHRvSW5zZXJ0
aW9uUG9pbnQocGFyZW50KS0+aXNBY3RpdmUoKSkgeworICAgICAgICAgICAgICAgIE5vZGVSZW5k
ZXJpbmdDb250ZXh0IHBhcmVudENvbnRleHQocGFyZW50KTsKKyAgICAgICAgICAgICAgICBtX3Bh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBhcmVudENvbnRleHQucGFyZW50Tm9kZUZv
clJlbmRlcmluZ0FuZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgbV9yZXNldFN0eWxlSW5oZXJp
dGFuY2UgPSBwYXJlbnRDb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAgICAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUgPSBwYXJlbnQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEyMyw2ICsx
MjksNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSog
bm9kZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIDogbV9waGFzZShDYWxjdWxhdGluZykKICAg
ICAsIG1fbm9kZShub2RlKQogICAgICwgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
MCkKKyAgICAsIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlKGZhbHNlKQogICAgICwgbV92aXN1YWxQ
YXJlbnRTaGFkb3coMCkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnQoMCkKICAgICAsIG1fc3R5bGUo
c3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDdi
MTRlMDNlZGQ5ZjExZjlhZTBiNGQzMDk2MmE1NDUyNjkxZjllZmUuLjYwNzkyY2I0N2YwZjRlMmJk
YzNjNWRiOWQxZjU1ZWQxNTFlMTM4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIE5vZGUqIG5vZGUo
KSBjb25zdDsKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKSBjb25zdDsKKyAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0OwogICAg
IFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3Qq
IG5leHRSZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJl
cigpIGNvbnN0OwpAQCAtODEsNiArODIsNyBAQCBwcml2YXRlOgogICAgIEF0dGFjaGluZ1BoYXNl
IG1fcGhhc2U7CiAgICAgTm9kZSogbV9ub2RlOwogICAgIENvbnRhaW5lck5vZGUqIG1fcGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlOworICAgIGJvb2wgbV9yZXNldFN0eWxlSW5oZXJpdGFu
Y2U7CiAgICAgRWxlbWVudFNoYWRvdyogbV92aXN1YWxQYXJlbnRTaGFkb3c7CiAgICAgSW5zZXJ0
aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnQ7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0
eWxlOwpAQCAtOTksNiArMTAxLDEyIEBAIGlubGluZSBDb250YWluZXJOb2RlKiBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uCiAgICAgcmV0
dXJuIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlOwogfQogCitpbmxpbmUgYm9vbCBO
b2RlUmVuZGVyaW5nQ29udGV4dDo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQobV9waGFzZSAhPSBDYWxjdWxhdGluZyk7CisgICAgcmV0dXJuIG1fcmVzZXRTdHls
ZUluaGVyaXRhbmNlOworfQorCiBpbmxpbmUgUmVuZGVyU3R5bGUqIE5vZGVSZW5kZXJpbmdDb250
ZXh0OjpzdHlsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKaW5kZXggNjcyM2EwZjZkZDMwOTVkZDE2ZTk1MzM3YTliYmMyYWI5
MDU2OGIxYy4uMmM1NzU2MGJmMjZmMzI3NzIyM2M0OGJlNDk1NzRkZTQ0ZmQ3MjA1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNTAsNiArNTAsNyBAQCBTaGFkb3dSb290OjpTaGFk
b3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIG1fcHJldigwKQogICAgICwgbV9uZXh0
KDApCiAgICAgLCBtX2FwcGx5QXV0aG9yU3R5bGVzKGZhbHNlKQorICAgICwgbV9yZXNldFN0eWxl
SW5oZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbygwKQog
ewogICAgIEFTU0VSVChkb2N1bWVudCk7CkBAIC0xOTMsNiArMTk0LDIwIEBAIHZvaWQgU2hhZG93
Um9vdDo6c2V0QXBwbHlBdXRob3JTdHlsZXMoYm9vbCB2YWx1ZSkKICAgICB9CiB9CiAKK2Jvb2wg
U2hhZG93Um9vdDo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9yZXNldFN0eWxlSW5oZXJpdGFuY2U7Cit9CisKK3ZvaWQgU2hhZG93Um9vdDo6c2V0UmVzZXRT
dHlsZUluaGVyaXRhbmNlKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlICE9IG1fcmVzZXRT
dHlsZUluaGVyaXRhbmNlKSB7CisgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdmFs
dWU7CisgICAgICAgIGlmIChhdHRhY2hlZCgpICYmIG93bmVyKCkpCisgICAgICAgICAgICBvd25l
cigpLT5yZWNhbGNTdHlsZShGb3JjZSk7CisgICAgfQorfQorCiB2b2lkIFNoYWRvd1Jvb3Q6OmF0
dGFjaCgpCiB7CiAgICAgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciA9IGRvY3VtZW50KCkt
PnN0eWxlUmVzb2x2ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDBiN2ZmYTVmMmRh
OGQ3YTU0NjA4MzYxOTk1MzkxYzU4Y2Y4OGQzM2UuLjZhNzZlNGYyMjQ3ZGExNTkyNTFjYjk5NDNi
YmE3ZDQwNjVmNjM2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtNjMsNiArNjMsOCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdCBP
VkVSUklERTsKICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU3R5bGVzKGJvb2wpOworICAgIHZpcnR1
YWwgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2b2lk
IHNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sKTsKIAogICAgIEVsZW1lbnQqIGhvc3QoKSBj
b25zdDsKICAgICB2b2lkIHNldEhvc3QoRWxlbWVudCopOwpAQCAtOTgsNiArMTAwLDcgQEAgcHJp
dmF0ZToKICAgICBTaGFkb3dSb290KiBtX3ByZXY7CiAgICAgU2hhZG93Um9vdCogbV9uZXh0Owog
ICAgIGJvb2wgbV9hcHBseUF1dGhvclN0eWxlcyA6IDE7CisgICAgYm9vbCBtX3Jlc2V0U3R5bGVJ
bmhlcml0YW5jZSA6IDE7CiAgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnRBc3Np
Z25lZFRvOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCmluZGV4IDgxMTBjMWUwOGE3
NDNkNzNlYzEzNDUyY2E2YTRkYjZhMzc0NzQxYzAuLjAwZjdjZDgzYTUyNGIyYjU2MTY3ZTAyYzc0
MGZjYzIzYzE2NjllNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKQEAgLTM0LDYgKzM0
LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBo
b3N0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBhY3RpdmVFbGVtZW50Owog
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBhcHBseUF1dGhvclN0eWxlczsKKyAgICAgICAgYXR0
cmlidXRlIGJvb2xlYW4gcmVzZXRTdHlsZUluaGVyaXRhbmNlOwogCiAgICAgICAgIGF0dHJpYnV0
ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAogICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApp
bmRleCBkNzBiOTAwNTlkYmRlZWJlMWQ3MDdiYjMzNDYwN2QzNjhhZTM3YTEyLi44MzIyZmNiMzhh
ZjU5NjA4NjkwZDE4Mjc4NmNjODk3OGU5NjY0YWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNw
cApAQCAtMTkxLDYgKzE5MSwxMSBAQCBib29sIFRyZWVTY29wZTo6YXBwbHlBdXRob3JTdHlsZXMo
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFRyZWVTY29wZTo6cmVzZXRTdHls
ZUluaGVyaXRhbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgVHJl
ZVNjb3BlOjphZG9wdElmTmVlZGVkKE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5oCmluZGV4IDBkMWRjZWI0MzMyMTY4ZTI0ZWY3ZDIyYzEyNDk2N2Yz
ZmMwMWRkMjMuLjVlY2MwMzkyZjM3MTcwYmVlMzA1Mzk5MjE0MjQ5N2NmYWI3YWNiMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmgKQEAgLTc1LDYgKzc1LDcgQEAgcHVibGljOgogICAgIEVsZW1lbnQq
IGZpbmRBbmNob3IoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBs
eUF1dGhvclN0eWxlcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCByZXNldFN0eWxlSW5oZXJp
dGFuY2UoKSBjb25zdDsKIAogICAgIC8vIFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtdXRhdGlvbiBt
ZXRob2RzIChlLmcuLCBhcHBlbmRDaGlsZCgpKS4KICAgICB2b2lkIGFkb3B0SWZOZWVkZWQoTm9k
ZSopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGFlM2JiMzFiNDRhYzY4YjNhNzg3NmIwMjM2NDFjYWE2Yzg1NzY1ZWIuLjg5
ODVmNGYwOTFmMWU0M2QyOWY2NjcxYjA4Mjc3OWUzMjYzNTNiNDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0wNS0xOCAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisK
KyAgICAgICAgU2hhZG93Um9vdCBuZWVkcyByZXNldFN0eWxlSW5oZXJpdGFuY2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MDQ4CisKKyAgICAgICAg
QWRkZWQgbGF5b3V0IHRlc3RzIGZvciBjaGVja2luZyB3aGV0aGVyIHJlc2V0U3R5bGVJbmhlcml0
YW5jZSB3b3JrcyBjb3JyZWN0bHkgb3Igbm90LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0
U3R5bGVJbmhlcml0YW5jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
CiAyMDEyLTA2LTA1ICBKb2UgVGhvbWFzICA8am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KIAogICAg
ICAgICBBU1NFUlRJT04gRkFJTEVEOiBBU1NFUlQoIWlzUGVyY2VudGFnZUludHJpbnNpY1NpemUp
IGluIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbkZvclJl
bmRlckJveApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmZGViNjU0MzhjNGI1ZjFkMTRmOWU2MDFiMDFiN2FjNjA5YzJjYmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtcmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0OSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LnJlc2V0VGVzdCB7
CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjogc29saWQ7CisgIG1hcmdpbjog
NHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsKKyAgZm9udC1mYW1pbHk6IFNl
cmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgZm9udC12
YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9sZDsKKyAgbGV0dGVyLXNwYWNp
bmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQtYWxpZ246IHN0YXJ0OworICB0
ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKKyAgd2hpdGUt
c3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4OworfQorZGl2LmluaXRpYWxWYWx1
ZXMgeworICBjb2xvcjogaW5pdGlhbDsKKyAgZm9udC1mYW1pbHk6IGluaXRpYWw7CisgIGZvbnQt
c2l6ZTogaW5pdGlhbDsKKyAgZm9udC1zdHlsZTogaW5pdGlhbDsKKyAgZm9udC12YXJpYW50OiBp
bml0aWFsOworICBmb250LXdlaWdodDogaW5pdGlhbDsKKyAgbGV0dGVyLXNwYWNpbmc6IGluaXRp
YWw7CisgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOworICB0ZXh0LWFsaWduOiBpbml0aWFsOworICB0
ZXh0LWluZGVudDogaW5pdGlhbDsKKyAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7CisgIHdoaXRl
LXNwYWNlOiBpbml0aWFsOworICB3b3JkLXNwYWNpbmc6IGluaXRpYWw7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdiBjbGFzcz0i
aW5pdGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJy
ZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJy
ZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJy
ZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48L2Rpdj48L2Rp
dj4KKzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0aWFsVmFsdWVz
Ij50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRp
dj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRh
bmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRT
dHlsZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiOGQyNmE4Mjc1NWQyOWMyMGJjMDJi
ZmM5YThiMDA3OTg3NmJmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApAQCAtMCwwICsx
LDE2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LnJl
c2V0VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjogc29saWQ7Cisg
IG1hcmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsKKyAgZm9udC1m
YW1pbHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsK
KyAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9sZDsKKyAgbGV0
dGVyLXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQtYWxpZ246IHN0
YXJ0OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsK
KyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4OworfQorPC9zdHls
ZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBhc3NlcnRUcnVlKGlkLCBhY3R1YWwpIHsKKyAgICBpZiAo
IWFjdHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgIjogYXNzZXJ0VHJ1ZSBm
YWlsZWQiOworfQorCitmdW5jdGlvbiBhc3NlcnRGYWxzZShpZCwgYWN0dWFsKSB7CisgICAgaWYg
KGFjdHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgICI6IGFzc2VydEZhbHNl
IGZhaWxlZCI7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKGEsIGIpCit7CisgICAgaWYgKGEgIT0g
YikKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBzaG91bGQgYmUgIiArIGI7Cit9
CisKK2Z1bmN0aW9uIHNob3VsZE5vdEJlKGEsIGIpCit7CisgICAgaWYgKGEgPT0gYikKKyAgICAg
ICAgdGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBzaG91bGQgbm90IGJlICIgKyBiOworfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiPjwvZGl2Pgor
PGRpdiBpZD0ibm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiPjwvZGl2PgorPGRpdiBpZD0icmVz
ZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNl
dC1zdHlsZS1pbmhlcml0YW5jZS1mYWxzZS10by10cnVlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0
LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50Ij48L2Rpdj4KKzxkaXYgaWQ9Im5vLXJlc2V0
LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50Ij48L2Rpdj4KKworPHNjcmlwdD4KK2Z1bmN0
aW9uIHJlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNl
dFRlc3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYp
OworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQg
YmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsKKyAgICAKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKS5hcHBlbmRDaGlsZChk
aXYpOworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgewor
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xh
c3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRT
aGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVy
aXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNl
KTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsKKyAgICBhc3NlcnRUcnVlKCdy
ZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUgYXMgZXhwbGljaXRseSBzZXQnLCBz
aGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlJykuYXBwZW5kQ2hpbGQoZGl2KTsK
K30KKworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJv
bVRydWVUb0ZhbHNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93
Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1
bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVz
ZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5j
ZSA9IHRydWU7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGVzdDEiPnRl
eHQ8L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQg
YmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1m
YWxzZScpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7CisgICAgdmFyIHRh
cmdldCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJyk7CisgICAgc2hvdWxkTm90
QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250
LWZhbWlseScpLCAnc2VyaWYnKTsKKyAgICBzaG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0JyksICc0OHB4Jyk7CisK
KyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIGFzc2Vy
dEZhbHNlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9v
dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIGRpdi5vZmZzZXRMZWZ0OworICAgIHNob3Vs
ZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9u
dC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOworfQor
CitmdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tRmFs
c2VUb1RydWUoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCBy
ZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0
eWxlSW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0g
ZmFsc2U7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGVzdDIiPnRleHQ8
L2Rpdj4nOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBz
aG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAg
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZh
bHNlLXRvLXRydWUnKS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRpdi5vZmZzZXRMZWZ0OworICAg
IHZhciB0YXJnZXQgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpOworICAgIHNo
b3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgn
Zm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVk
U3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOwor
CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGFzc2Vy
dFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3Qu
cmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBkaXYub2Zmc2V0TGVmdDsKKyAgICBzaG91bGRO
b3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2Zv
bnQtZmFtaWx5JyksICdzZXJpZicpOworICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsK
K30KKworZnVuY3Rpb24gY3JlYXRlRGl2V2l0aFRleHQodGV4dCkgeworICAgIHZhciBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOworICAgIHJldHVybiBkaXY7Cit9CisKK2Z1bmN0aW9u
IHJlbmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKSB7CisgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVz
ZXRUZXN0JzsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2V2l0aFRleHQoJ3RleHQnKSk7
CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXYiPjwvY29udGVudD4n
OworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBhc3Nl
cnRUcnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290
LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
c2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50JykuYXBwZW5kQ2hpbGQoZGl2KTsKKyAg
ICBkaXYub2Zmc2V0TGVmdDsKK30KKworZnVuY3Rpb24gcmVuZGVyTm9SZXNldFN0eWxlSW5oZXJp
dGFuY2VGb3JDb250ZW50KCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisgICAgZGl2LmFwcGVu
ZENoaWxkKGNyZWF0ZURpdldpdGhUZXh0KCd0ZXh0JykpOworCisgICAgdmFyIHNoYWRvd1Jvb3Qg
PSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
Jzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JzsKKyAgICBzaGFkb3dSb290LnJlc2V0
U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIGFzc2VydEZhbHNlKCdyZXNldFN0eWxlSW5o
ZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFu
Y2UpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0
YW5jZS1mb3ItY29udGVudCcpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7
Cit9CisKK3JlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aFJl
c2V0U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVy
aXRhbmNlRnJvbVRydWVUb0ZhbHNlKCk7CityZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5o
ZXJpdGFuY2VGcm9tRmFsc2VUb1RydWUoKTsKK3JlbmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZv
ckNvbnRlbnQoKTsKK3JlbmRlck5vUmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145974</attachid>
            <date>2012-06-06 03:09:53 -0700</date>
            <delta_ts>2012-06-06 04:02:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120606190951.patch</filename>
            <type>text/plain</type>
            <size>27385</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNlOGQ4Y2JmNzVjY2M3
MWNiODk2ZjJiNjcxNDRmMDQ3NzRlNTM3OC4uOTMxNGM0NTY5ZjIzNGEzODViYmVmMGQzMjliMmE4
ZGZjNjQ1NDZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA1LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBTdHlsZVJlc29sdmVyIHRvIHVzZSBlbXB0eSBzdHlsZQorICAgICAgICBp
bnN0ZWFkIG9mIHBhcmVudCBzdHlsZSBpZiByZXNldFN0eWxlSW5oZXJpdGFuY2UgaXMgdHJ1ZSwK
KyAgICAgICAgYW5kIGEgbm9kZSBhbmQgaXRzIHBhcmVudCBub2RlIGFyZSBwbGFjZWQgaW4gZGlm
ZmVyZW50IHNoYWRvdyB0cmVlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHls
ZUluaGVyaXRhbmNlLmh0bWwKKyAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sCisKKyAgICAgICAgKiBjc3Mv
U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjppbml0
Rm9yU3R5bGVSZXNvbHZlKToKKyAgICAgICAgU2V0IG1fcGFyZW50U3R5bGUgdG8gTlVMTCB3aGVu
IHJlc2V0U3R5bGVJbmhlcml0YW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmRvY3VtZW50U2V0dGluZ3MpOgorICAgICAgICBBZGRlZCBhIG5ldyBtZXRob2QgdG8gb2J0YWlu
IGN1cnJlbnQgZG9jdW1lbnQncyBzZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVz
b2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOgorICAgICAgICBJbml0aWFsaXplIG1fc3R5bGUg
YnkgdXNpbmcgZG9jdW1lbnQgc2V0dGluZ3MuIEl0cyBjb2RlIHdhcyBtb3ZlCisgICAgICAgIGZy
b20gdGhlIGNvZGUgaW5pdGlhbGl6aW5nIGZvbnQgc3R5bGUgaW4gYXBwbHlQcm9wZXJ0eS4KKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAg
IEluaXRpYWxpemUgZm9udCBzdHlsZSBpZiBtX3BhcmVudFN0eWxlIGlzIE5VTEwuIFRoZSBvbGQg
Y29kZSBqdXN0CisgICAgICAgIHVzZWQgc3R5bGUoKSBhbmQgZG9uJ3QgdG91Y2ggZm9udCBzdHls
ZS4gVGhlIG5ldyBjb2RlIHVzZXMgdGhlIGFib3ZlCisgICAgICAgIGluaXRpYWxpemVGb250U3R5
bGUuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KToKKyAg
ICAgICAgTW92ZWQgYSBjb2RlIGZvciBpbml0aWFsaXppbmcgZm9udCBzdHlsZSBhcyAiaW5pdGlh
bCIgdG8KKyAgICAgICAgYSBuZXcgbWV0aG9kOiBpbml0aWFsaXplRm9udFN0eWxlIGFuZCBtb2Rp
ZmllZCB0byB1c2UgdGhlIG1ldGhvZC4KKyAgICAgICAgTW9kaWZpZWQgdG8gdXNlIGRvY3VtZW50
U2V0dGluZ3MoKS4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSZXNvbHZlcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKToKKyAgICAg
ICAgTW9kaWZpZWQgdG8gdXNlIGRvY3VtZW50U2V0dGluZ3MoKS4KKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUmVzb2x2ZXI6OmRvY3VtZW50U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSk6CisgICAgICAgIEFkZGVkIHR3byBuZXcg
bWV0aG9kcyB0byBjbGFzcyBTdHlsZVJlc29sdmVyLgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICBNb2RpZmllZCB0byBjYWxjdWxhdGUgbV9y
ZXNldFN0eWxlSW5oZXJpdGFuY2UgaW4gaXRzIGNvbnN0cnVjdG9yLgorICAgICAgICAqIGRvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0Nv
bnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgIEltcGxlbWVudGVkIGEgbmV3
IG1ldGhvZCwganVzdCByZXR1cm5pbmcgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UuCisgICAgICAg
ICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0
UmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAgTW9kaWZpZWQgdG8gZm9yY2UgdG8gcmVj
YWxjdWxhdGUgY2hpbGRyZW4ncyBzdHlsZXMgaWYKKyAgICAgICAgcmVzZXRTdHlsZUluaGVyaXRh
bmNlIGlzIGNoYW5nZWQuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNo
YWRvd1Jvb3QpOgorICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UgZ2V0dGVyIGFu
ZCBzZXR0ZXIuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgorICAgICAgICBBZGRlZCBh
biBhdHRyaWJ1dGUsIHJlc2V0U3R5bGVJbmhlcml0YW5jZS4KKyAgICAgICAgKiBkb20vVHJlZVNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6cmVzZXRTdHlsZUluaGVyaXRh
bmNlKToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgIChUcmVlU2NvcGUpOgor
ICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UncyBkZWZhdWx0IGdldHRlci4KKyAg
ICAgICAgVGhlIGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBieSBjbGFzcyBTaGFkb3dSb290J3Mg
Z2V0dGVyLgorCiAyMDEyLTA2LTA2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBQb3NpdGlvbkl0ZXJhdG9yOjtzZXRPZmZzZXRJbkxlYWZOb2RlKCkg
aXMgbm90IHVzZWQgYW55d2hlcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5k
ZXggM2VmMGFkZDhkODk5Njc5ZTA2NWM3ODg1YWM3MTk1ODFkZGNlM2FhMC4uYWI3MzcxNTFlODBk
ZDI0NjYxYjdhMDE5Y2RiYjM1Y2MyMmFkZTU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1
ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIK
KyNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWlyLmgiCkBAIC0xMTYyLDEyICsxMTYz
LDE2IEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxl
bWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0CiB7CiAgICAgbV9jaGVja2VyLnNldFBzZXVk
b1N0eWxlKHBzZXVkb0lEKTsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7Ci0KLSAgICBpZiAocGFyZW50U3R5bGUpCisgICAg
aWYgKGUpIHsKKyAgICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgY29udGV4dChlKTsKKyAgICAg
ICAgbV9wYXJlbnROb2RlID0gY29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KTsKKyAgICAgICAgbV9wYXJlbnRTdHlsZSA9IGNvbnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNl
KCk/IDAgOgorICAgICAgICAgICAgcGFyZW50U3R5bGUgPyBwYXJlbnRTdHlsZSA6CisgICAgICAg
ICAgICBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxlKCkgOiAwOworICAg
IH0gZWxzZSB7CisgICAgICAgIG1fcGFyZW50Tm9kZSA9IDA7CiAgICAgICAgIG1fcGFyZW50U3R5
bGUgPSBwYXJlbnRTdHlsZTsKLSAgICBlbHNlCi0gICAgICAgIG1fcGFyZW50U3R5bGUgPSBtX3Bh
cmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxlKCkgOiAwOworICAgIH0KIAogICAg
IE5vZGUqIGRvY0VsZW1lbnQgPSBlID8gZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkg
OiAwOwogICAgIFJlbmRlclN0eWxlKiBkb2NTdHlsZSA9IG1fY2hlY2tlci5kb2N1bWVudCgpLT5y
ZW5kZXJTdHlsZSgpOwpAQCAtMTY1Miw3ICsxNjU3LDExIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5k
ZXJTCiAgICAgZWxzZSB7CiAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBzdHlsZSgpOwogICAgICAg
ICAvLyBNYWtlIHN1cmUgb3VyIGZvbnRzIGFyZSBpbml0aWFsaXplZCBpZiB3ZSBkb24ndCBpbmhl
cml0IHRoZW0gZnJvbSBvdXIgcGFyZW50IHN0eWxlLgotICAgICAgICBtX3N0eWxlLT5mb250KCku
dXBkYXRlKDApOworICAgICAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnRTZXR0
aW5ncygpKSB7CisgICAgICAgICAgICBpbml0aWFsaXplRm9udFN0eWxlKHNldHRpbmdzKTsKKyAg
ICAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKCkpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CiAgICAgfQog
CiAgICAgLy8gRXZlbiBpZiBzdXJyb3VuZGluZyBjb250ZW50IGlzIHVzZXItZWRpdGFibGUsIHNo
YWRvdyBET00gc2hvdWxkIGFjdCBhcyBhIHNpbmdsZSB1bml0LCBhbmQgbm90IG5lY2Vzc2FyaWx5
IGJlIGVkaXRhYmxlCkBAIC0zMzQ2LDcgKzMzNTUsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFw
cGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIGNvbnRlbnRW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7CiAgICAgICAgICAg
ICBBdG9taWNTdHJpbmcgZmFjZTsKLSAgICAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1f
Y2hlY2tlci5kb2N1bWVudCgpLT5zZXR0aW5ncygpOworICAgICAgICAgICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpOwogICAgICAgICAgICAgaWYgKGNvbnRlbnRWYWx1
ZS0+aXNTdHJpbmcoKSkKICAgICAgICAgICAgICAgICBmYWNlID0gY29udGVudFZhbHVlLT5nZXRT
dHJpbmdWYWx1ZSgpOwogICAgICAgICAgICAgZWxzZSBpZiAoc2V0dGluZ3MpIHsKQEAgLTM0MzAs
MjQgKzM0MzksMTEgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3Bl
cnR5SUQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgIG1fbGluZUhlaWdodFZhbHVl
ID0gMDsKICAgICAgICAgICAgIHNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwog
ICAgICAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbCkgewotICAgICAgICAgICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gbV9jaGVja2VyLmRvY3VtZW50KCktPnNldHRpbmdzKCk7CisgICAgICAgICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRpbmdzKCk7CiAgICAgICAgICAgICBBU1NF
UlQoc2V0dGluZ3MpOyAvLyBJZiB3ZSdyZSBkb2luZyBzdHlsZSByZXNvbHV0aW9uLCB0aGlzIGRv
Y3VtZW50IHNob3VsZCBhbHdheXMgYmUgaW4gYSBmcmFtZSBhbmQgdGh1cyBoYXZlIHNldHRpbmdz
CiAgICAgICAgICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247Ci0gICAgICAgICAgICBm
b250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246OlN0YW5kYXJk
RmFtaWx5KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNl
dHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSk7Ci0g
ICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSA9IG1fY2hl
Y2tlci5kb2N1bWVudCgpLT5zZXR0aW5ncygpLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKLSAgICAg
ICAgICAgIGlmICghc3RhbmRhcmRGb250RmFtaWx5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLnNldEZhbWlseShzdGFuZGFyZEZvbnRG
YW1pbHkpOwotICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLmFw
cGVuZEZhbWlseSgwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRLZXl3b3JkU2l6ZShDU1NWYWx1ZU1lZGl1bSAtIENTU1ZhbHVlWHhTbWFsbCArIDEpOwot
ICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdv
cmQobV9jaGVja2VyLmRvY3VtZW50KCksIENTU1ZhbHVlTWVkaXVtLCBmYWxzZSkpOwotICAgICAg
ICAgICAgbV9zdHlsZS0+c2V0TGluZUhlaWdodChSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWln
aHQoKSk7Ci0gICAgICAgICAgICBtX2xpbmVIZWlnaHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICBz
ZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGluaXRpYWxp
emVGb250U3R5bGUoc2V0dGluZ3MpOwogICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVl
KSB7CiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRMaW5lSGVpZ2h0KFJlbmRlclN0eWxlOjppbml0
aWFsTGluZUhlaWdodCgpKTsKICAgICAgICAgICAgIG1fbGluZUhlaWdodFZhbHVlID0gMDsKQEAg
LTM0NTgsNyArMzQ1NCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICAvLyBEb3VibGUtY2hl
Y2sgYW5kIHNlZSBpZiB0aGUgdGhlbWUgZGlkIGFueXRoaW5nLiBJZiBub3QsIGRvbid0IGJvdGhl
ciB1cGRhdGluZyB0aGUgZm9udC4KICAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24uaXNB
YnNvbHV0ZVNpemUoKSkgewogICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcmVuZGVy
aW5nIG1vZGUgYW5kIHByaW50ZXIgZm9udCBzZXR0aW5ncyBhcmUgdXBkYXRlZC4KLSAgICAgICAg
ICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2NoZWNrZXIuZG9jdW1lbnQoKS0+c2V0dGlu
Z3MoKTsKKyAgICAgICAgICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRp
bmdzKCk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNldHRpbmdzKTsgLy8gSWYgd2UncmUgZG9p
bmcgc3R5bGUgcmVzb2x1dGlvbiwgdGhpcyBkb2N1bWVudCBzaG91bGQgYWx3YXlzIGJlIGluIGEg
ZnJhbWUgYW5kIHRodXMgaGF2ZSBzZXR0aW5ncwogICAgICAgICAgICAgICAgIGlmICghc2V0dGlu
Z3MpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ5MTEsNyArNDkwNyw3IEBAIHZv
aWQgU3R5bGVSZXNvbHZlcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKFJlbmRlclN0eWxl
KiBzdHlsZSwgUmVuZGVyU3R5bGUqCiAgICAgaWYgKGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpKQog
ICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKG1fY2hlY2tlci5kb2N1bWVudCgpLCBD
U1NWYWx1ZVh4U21hbGwgKyBjaGlsZEZvbnQua2V5d29yZFNpemUoKSAtIDEsIGNoaWxkRm9udC51
c2VGaXhlZERlZmF1bHRTaXplKCkpOwogICAgIGVsc2UgewotICAgICAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBtX2NoZWNrZXIuZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKKyAgICAgICAgU2V0dGlu
Z3MqIHNldHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpOwogICAgICAgICBmbG9hdCBmaXhlZFNj
YWxlRmFjdG9yID0gc2V0dGluZ3MKICAgICAgICAgICAgID8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNl
dHRpbmdzLT5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpKSAvIHNldHRpbmdzLT5kZWZhdWx0Rm9udFNp
emUoKQogICAgICAgICAgICAgOiAxOwpAQCAtNDkyNSw2ICs0OTIxLDI0IEBAIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKFJlbmRlclN0eWxlKiBzdHlsZSwg
UmVuZGVyU3R5bGUqCiAgICAgc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihuZXdGb250RGVzY3Jp
cHRpb24pOwogfQogCit2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUoU2V0
dGluZ3MqIHNldHRpbmdzKQoreworICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247
CisgICAgZm9udERlc2NyaXB0aW9uLnNldEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpT
dGFuZGFyZEZhbWlseSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0
dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQ
cmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSk7CisgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBzdGFuZGFyZEZvbnRGYW1pbHkgPSBkb2N1bWVudFNldHRpbmdzKCktPnN0
YW5kYXJkRm9udEZhbWlseSgpOworICAgIGlmICghc3RhbmRhcmRGb250RmFtaWx5LmlzRW1wdHko
KSkgeworICAgICAgICBmb250RGVzY3JpcHRpb24uZmlyc3RGYW1pbHkoKS5zZXRGYW1pbHkoc3Rh
bmRhcmRGb250RmFtaWx5KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCku
YXBwZW5kRmFtaWx5KDApOworICAgIH0KKyAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNp
emUoQ1NTVmFsdWVNZWRpdW0gLSBDU1NWYWx1ZVh4U21hbGwgKyAxKTsKKyAgICBzZXRGb250U2l6
ZShmb250RGVzY3JpcHRpb24sIGZvbnRTaXplRm9yS2V5d29yZChtX2NoZWNrZXIuZG9jdW1lbnQo
KSwgQ1NTVmFsdWVNZWRpdW0sIGZhbHNlKSk7CisgICAgbV9zdHlsZS0+c2V0TGluZUhlaWdodChS
ZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7CisgICAgbV9saW5lSGVpZ2h0VmFsdWUg
PSAwOworICAgIHNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworfQorCiB2b2lk
IFN0eWxlUmVzb2x2ZXI6OnNldEZvbnRTaXplKEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uLCBmbG9hdCBzaXplKQogewogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXpl
KHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggNTM5ZGQ2MzU2YWUwOWYx
YzY4ZWYyN2Y2MmM5YTNmNTgxMTZkMTViZi4uN2U4ZjNhMTAwYWQ5NThkY2ViMWRlMjE3MDAwMjM4
MTc5NjUyNTlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yMDgsNiArMjA4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1By
b3BlcnR5SUQsIENTU1ZhbHVlKik7CiAKICAgICB2b2lkIHVwZGF0ZUZvbnQoKTsKKyAgICB2b2lk
IGluaXRpYWxpemVGb250U3R5bGUoU2V0dGluZ3MqKTsKIAogICAgIHN0YXRpYyBmbG9hdCBnZXRD
b21wdXRlZFNpemVGcm9tU3BlY2lmaWVkU2l6ZShEb2N1bWVudCosIGZsb2F0IHpvb21GYWN0b3Is
IGJvb2wgaXNBYnNvbHV0ZVNpemUsIGZsb2F0IHNwZWNpZmllZFNpemUsIEVTbWFydE1pbmltdW1G
b3JGb250U2l6ZSA9IFVzZVNtYXJ0TWluaW11bUZvckZvbnRGaXplKTsKIApAQCAtMzY2LDYgKzM2
Nyw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1hdGNoUGFnZVJ1bGVzKE1hdGNoUmVzdWx0Jiwg
UnVsZVNldCosIGJvb2wgaXNMZWZ0UGFnZSwgYm9vbCBpc0ZpcnN0UGFnZSwgY29uc3QgU3RyaW5n
JiBwYWdlTmFtZSk7CiAgICAgdm9pZCBtYXRjaFBhZ2VSdWxlc0Zvckxpc3QoVmVjdG9yPFN0eWxl
UnVsZVBhZ2UqPiYgbWF0Y2hlZFJ1bGVzLCBjb25zdCBWZWN0b3I8U3R5bGVSdWxlUGFnZSo+Jiwg
Ym9vbCBpc0xlZnRQYWdlLCBib29sIGlzRmlyc3RQYWdlLCBjb25zdCBTdHJpbmcmIHBhZ2VOYW1l
KTsKKyAgICBTZXR0aW5ncyogZG9jdW1lbnRTZXR0aW5ncygpIHsgcmV0dXJuIG1fY2hlY2tlci5k
b2N1bWVudCgpLT5zZXR0aW5ncygpOyB9CisKICAgICBib29sIGlzTGVmdFBhZ2UoaW50IHBhZ2VJ
bmRleCkgY29uc3Q7CiAgICAgYm9vbCBpc1JpZ2h0UGFnZShpbnQgcGFnZUluZGV4KSBjb25zdCB7
IHJldHVybiAhaXNMZWZ0UGFnZShwYWdlSW5kZXgpOyB9CiAgICAgYm9vbCBpc0ZpcnN0UGFnZShp
bnQgcGFnZUluZGV4KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwCmluZGV4IDdmNzBlN2MwZmYyMGMwMzRiODViNWFjOGFlMjY5M2ZhNjZmOTM1OGMu
LmI0ZDZkNDY4NmZkNjRmMDI0MjI4OWViYmMwN2JmMzU3NTI0NWNhMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNTUsNiArNTUsNyBAQCBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICA6
IG1fcGhhc2UoQXR0YWNoaW5nTm90SW5UcmVlKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBt
X3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgwKQorICAgICwgbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFBhcmVudFNoYWRvdygwKQogICAgICwgbV9p
bnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZSgwKQpAQCAtNjcsNiArNjgsNyBAQCBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICBp
ZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSAmJiB0b1NoYWRvd1Jvb3QocGFyZW50KS0+aXNZb3Vu
Z2VzdCgpKSB7CiAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdTaGFkb3dDaGlsZDsKICAgICAg
ICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSB0b1NoYWRvd1Jvb3QocGFyZW50
KS0+aG9zdCgpOworICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRvU2hhZG93Um9v
dChwYXJlbnQpLT5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtODIsNyArODQsOSBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGlmICgobV9pbnNlcnRpb25Qb2ludCA9
IG1fdmlzdWFsUGFyZW50U2hhZG93LT5pbnNlcnRpb25Qb2ludEZvcihtX25vZGUpKSkgewogICAg
ICAgICAgICAgICAgIGlmIChtX2luc2VydGlvblBvaW50LT5zaGFkb3dSb290KCktPmlzVXNlZEZv
clJlbmRlcmluZygpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdE
aXN0cmlidXRlZDsKLSAgICAgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5n
QW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChtX2luc2VydGlvblBvaW50KS5wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICAgICAgTm9kZVJlbmRl
cmluZ0NvbnRleHQgaW5zZXJ0aW9uUG9pbnRDb250ZXh0KG1faW5zZXJ0aW9uUG9pbnQpOworICAg
ICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IGluc2Vy
dGlvblBvaW50Q29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBpbnNlcnRpb25Qb2ludENv
bnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMDcsOSArMTExLDExIEBA
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdGYWxs
YmFja2VkOwogCi0gICAgICAgICAgICBpZiAodG9JbnNlcnRpb25Qb2ludChwYXJlbnQpLT5pc0Fj
dGl2ZSgpKQotICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxl
ID0gTm9kZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5k
U3R5bGUoKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmICh0b0luc2VydGlvblBv
aW50KHBhcmVudCktPmlzQWN0aXZlKCkpIHsKKyAgICAgICAgICAgICAgICBOb2RlUmVuZGVyaW5n
Q29udGV4dCBwYXJlbnRDb250ZXh0KHBhcmVudCk7CisgICAgICAgICAgICAgICAgbV9wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnRDb250ZXh0LnBhcmVudE5vZGVGb3JSZW5k
ZXJpbmdBbmRTdHlsZSgpOworICAgICAgICAgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNl
ID0gcGFyZW50Q29udGV4dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0g
cGFyZW50OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMjMsNiArMTI5LDcg
QEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUs
IFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICA6IG1fcGhhc2UoQ2FsY3VsYXRpbmcpCiAgICAgLCBt
X25vZGUobm9kZSkKICAgICAsIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKDApCisg
ICAgLCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZShmYWxzZSkKICAgICAsIG1fdmlzdWFsUGFyZW50
U2hhZG93KDApCiAgICAgLCBtX2luc2VydGlvblBvaW50KDApCiAgICAgLCBtX3N0eWxlKHN0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA3YjE0ZTAz
ZWRkOWYxMWY5YWUwYjRkMzA5NjJhNTQ1MjY5MWY5ZWZlLi42MDc5MmNiNDdmMGY0ZTJiZGMzYzVk
YjlkMWY1NWVkMTUxZTEzODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAKICAgICBOb2RlKiBub2RlKCkgY29u
c3Q7CiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkg
Y29uc3Q7CisgICAgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKICAgICBSZW5k
ZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0
UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIoKSBj
b25zdDsKQEAgLTgxLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBBdHRhY2hpbmdQaGFzZSBtX3Bo
YXNlOwogICAgIE5vZGUqIG1fbm9kZTsKICAgICBDb250YWluZXJOb2RlKiBtX3BhcmVudE5vZGVG
b3JSZW5kZXJpbmdBbmRTdHlsZTsKKyAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlOwog
ICAgIEVsZW1lbnRTaGFkb3cqIG1fdmlzdWFsUGFyZW50U2hhZG93OwogICAgIEluc2VydGlvblBv
aW50KiBtX2luc2VydGlvblBvaW50OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsK
QEAgLTk5LDYgKzEwMSwxMiBAQCBpbmxpbmUgQ29udGFpbmVyTm9kZSogTm9kZVJlbmRlcmluZ0Nv
bnRleHQ6OnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpIGNvbgogICAgIHJldHVybiBt
X3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsKIH0KIAoraW5saW5lIGJvb2wgTm9kZVJl
bmRlcmluZ0NvbnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUKG1fcGhhc2UgIT0gQ2FsY3VsYXRpbmcpOworICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhl
cml0YW5jZTsKK30KKwogaW5saW5lIFJlbmRlclN0eWxlKiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
c3R5bGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0eWxlLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwCmluZGV4IDY3MjNhMGY2ZGQzMDk1ZGQxNmU5NTMzN2E5YmJjMmFiOTA1Njhi
MWMuLjJjNTc1NjBiZjI2ZjMyNzcyMjNjNDhiZTQ5NTc0ZGU0NGZkNzIwNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9v
dChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX3ByZXYoMCkKICAgICAsIG1fbmV4dCgwKQog
ICAgICwgbV9hcHBseUF1dGhvclN0eWxlcyhmYWxzZSkKKyAgICAsIG1fcmVzZXRTdHlsZUluaGVy
aXRhbmNlKGZhbHNlKQogICAgICwgbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8oMCkKIHsKICAg
ICBBU1NFUlQoZG9jdW1lbnQpOwpAQCAtMTkzLDYgKzE5NCwyMCBAQCB2b2lkIFNoYWRvd1Jvb3Q6
OnNldEFwcGx5QXV0aG9yU3R5bGVzKGJvb2wgdmFsdWUpCiAgICAgfQogfQogCitib29sIFNoYWRv
d1Jvb3Q6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVz
ZXRTdHlsZUluaGVyaXRhbmNlOworfQorCit2b2lkIFNoYWRvd1Jvb3Q6OnNldFJlc2V0U3R5bGVJ
bmhlcml0YW5jZShib29sIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSAhPSBtX3Jlc2V0U3R5bGVJ
bmhlcml0YW5jZSkgeworICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHZhbHVlOwor
ICAgICAgICBpZiAoYXR0YWNoZWQoKSAmJiBvd25lcigpKQorICAgICAgICAgICAgb3duZXIoKS0+
cmVjYWxjU3R5bGUoRm9yY2UpOworICAgIH0KK30KKwogdm9pZCBTaGFkb3dSb290OjphdHRhY2go
KQogewogICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSBkb2N1bWVudCgpLT5zdHls
ZVJlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCAwYjdmZmE1ZjJkYThkN2E1
NDYwODM2MTk5NTM5MWM1OGNmODhkMzNlLi42YTc2ZTRmMjI0N2RhMTU5MjUxY2I5OTQzYmJhN2Q0
MDY1ZjYzNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTYzLDYgKzYzLDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclN0eWxlcyhib29sKTsKKyAgICB2aXJ0dWFsIGJv
b2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdm9pZCBzZXRS
ZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CiAKICAgICBFbGVtZW50KiBob3N0KCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRIb3N0KEVsZW1lbnQqKTsKQEAgLTk4LDYgKzEwMCw3IEBAIHByaXZhdGU6
CiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAgIFNoYWRvd1Jvb3QqIG1fbmV4dDsKICAgICBi
b29sIG1fYXBwbHlBdXRob3JTdHlsZXMgOiAxOworICAgIGJvb2wgbV9yZXNldFN0eWxlSW5oZXJp
dGFuY2UgOiAxOwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRU
bzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRleCA4MTEwYzFlMDhhNzQzZDcz
ZWMxMzQ1MmNhNmE0ZGI2YTM3NDc0MWMwLi4wMGY3Y2Q4M2E1MjRiMmI1NjE2N2UwMmM3NDBmY2My
M2MxNjY5ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNCw2ICszNCw3IEBA
IG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CisgICAgICAgIGF0dHJpYnV0
ZSBib29sZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5jZTsKIAogICAgICAgICBhdHRyaWJ1dGUgW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKICAgICAgICAgICAgIHNl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXgg
ZDcwYjkwMDU5ZGJkZWViZTFkNzA3YmIzMzQ2MDdkMzY4YWUzN2ExMi4uODMyMmZjYjM4YWY1OTYw
ODY5MGQxODI3ODZjYzg5NzhlOTY2NGFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAg
LTE5MSw2ICsxOTEsMTEgQEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9yU3R5bGVzKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhl
cml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFRyZWVTY29w
ZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuaAppbmRleCAwZDFkY2ViNDMzMjE2OGUyNGVmN2QyMmMxMjQ5NjdmM2ZjMDFk
ZDIzLi41ZWNjMDM5MmYzNzE3MGJlZTMwNTM5OTIxNDI0OTdjZmFiN2FjYjBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZS5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBmaW5k
QW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRo
b3JTdHlsZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNl
KCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9k
cyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMDNhYWYzMWE4YWIyNjE0OTMxNzllNmE1ZjM0Yjg0MTcxZTViMGFlLi42OTVlOTAw
ZDgzNDAyOWQ5NDc5YWFmNDc0ZjI3ODU2NjVjYjg3MjE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDUtMTggIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAg
ICAgIFNoYWRvd1Jvb3QgbmVlZHMgcmVzZXRTdHlsZUluaGVyaXRhbmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA0OAorCisgICAgICAgIEFkZGVk
IGxheW91dCB0ZXN0cyBmb3IgY2hlY2tpbmcgd2hldGhlciByZXNldFN0eWxlSW5oZXJpdGFuY2Ug
d29ya3MgY29ycmVjdGx5IG9yIG5vdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxl
SW5oZXJpdGFuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wNi0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjEwNjQ3OCk6IE5vbmUgb2YgdGhlIFBhcGVyLmpzIEphdmFTY3JpcHQgZXhhbXBsZXMg
d29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFmZGViNjU0MzhjNGI1ZjFkMTRmOWU2MDFiMDFiN2FjNjA5YzJjYmUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
cmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LnJlc2V0VGVzdCB7Cisg
IGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjogc29saWQ7CisgIG1hcmdpbjogNHB4
OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsKKyAgZm9udC1mYW1pbHk6IFNlcmlm
OworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgZm9udC12YXJp
YW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9sZDsKKyAgbGV0dGVyLXNwYWNpbmc6
IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQtYWxpZ246IHN0YXJ0OworICB0ZXh0
LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKKyAgd2hpdGUtc3Bh
Y2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4OworfQorZGl2LmluaXRpYWxWYWx1ZXMg
eworICBjb2xvcjogaW5pdGlhbDsKKyAgZm9udC1mYW1pbHk6IGluaXRpYWw7CisgIGZvbnQtc2l6
ZTogaW5pdGlhbDsKKyAgZm9udC1zdHlsZTogaW5pdGlhbDsKKyAgZm9udC12YXJpYW50OiBpbml0
aWFsOworICBmb250LXdlaWdodDogaW5pdGlhbDsKKyAgbGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7
CisgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOworICB0ZXh0LWFsaWduOiBpbml0aWFsOworICB0ZXh0
LWluZGVudDogaW5pdGlhbDsKKyAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7CisgIHdoaXRlLXNw
YWNlOiBpbml0aWFsOworICB3b3JkLXNwYWNpbmc6IGluaXRpYWw7Cit9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdiBjbGFzcz0iaW5p
dGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNl
dFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNl
dFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNl
dFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4K
KzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0aWFsVmFsdWVzIj50
ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdj50
ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHls
ZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiOGQyNmE4Mjc1NWQyOWMyMGJjMDJiZmM5
YThiMDA3OTg3NmJmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApAQCAtMCwwICsxLDE2
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LnJlc2V0
VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjogc29saWQ7CisgIG1h
cmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsKKyAgZm9udC1mYW1p
bHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAg
Zm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9sZDsKKyAgbGV0dGVy
LXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQtYWxpZ246IHN0YXJ0
OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKKyAg
d2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4OworfQorPC9zdHlsZT4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBhc3NlcnRUcnVlKGlkLCBhY3R1YWwpIHsKKyAgICBpZiAoIWFj
dHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgIjogYXNzZXJ0VHJ1ZSBmYWls
ZWQiOworfQorCitmdW5jdGlvbiBhc3NlcnRGYWxzZShpZCwgYWN0dWFsKSB7CisgICAgaWYgKGFj
dHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgICI6IGFzc2VydEZhbHNlIGZh
aWxlZCI7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKGEsIGIpCit7CisgICAgaWYgKGEgIT0gYikK
KyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBzaG91bGQgYmUgIiArIGI7Cit9CisK
K2Z1bmN0aW9uIHNob3VsZE5vdEJlKGEsIGIpCit7CisgICAgaWYgKGEgPT0gYikKKyAgICAgICAg
dGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBzaG91bGQgbm90IGJlICIgKyBiOworfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiPjwvZGl2PgorPGRp
diBpZD0ibm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiPjwvZGl2PgorPGRpdiBpZD0icmVzZXQt
c3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1z
dHlsZS1pbmhlcml0YW5jZS1mYWxzZS10by10cnVlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0
eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50Ij48L2Rpdj4KKzxkaXYgaWQ9Im5vLXJlc2V0LXN0
eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50Ij48L2Rpdj4KKworPHNjcmlwdD4KK2Z1bmN0aW9u
IHJlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRl
c3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOwor
ICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUg
ZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgc2hhZG93Um9v
dC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKS5hcHBlbmRDaGlsZChkaXYp
OworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAg
IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NO
YW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFk
b3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRh
bmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsK
KyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsKKyAgICBhc3NlcnRUcnVlKCdyZXNl
dFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUgYXMgZXhwbGljaXRseSBzZXQnLCBzaGFk
b3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlJykuYXBwZW5kQ2hpbGQoZGl2KTsKK30K
KworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbVRy
dWVUb0ZhbHNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9v
dCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQg
cmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9
IHRydWU7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGVzdDEiPnRleHQ8
L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUg
dHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxz
ZScpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7CisgICAgdmFyIHRhcmdl
dCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJyk7CisgICAgc2hvdWxkTm90QmUo
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZh
bWlseScpLCAnc2VyaWYnKTsKKyAgICBzaG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0JyksICc0OHB4Jyk7CisKKyAg
ICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIGFzc2VydEZh
bHNlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5y
ZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIGRpdi5vZmZzZXRMZWZ0OworICAgIHNob3VsZEJl
KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1m
YW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUo
dGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOworfQorCitm
dW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tRmFsc2VU
b1RydWUoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290ID0g
bmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNl
dFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxl
SW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFs
c2U7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGVzdDIiPnRleHQ8L2Rp
dj4nOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91
bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZhbHNl
LXRvLXRydWUnKS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRpdi5vZmZzZXRMZWZ0OworICAgIHZh
ciB0YXJnZXQgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpOworICAgIHNob3Vs
ZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9u
dC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOworCisg
ICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGFzc2VydFRy
dWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVz
ZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBkaXYub2Zmc2V0TGVmdDsKKyAgICBzaG91bGROb3RC
ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQt
ZmFtaWx5JyksICdzZXJpZicpOworICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsKK30K
KworZnVuY3Rpb24gY3JlYXRlRGl2V2l0aFRleHQodGV4dCkgeworICAgIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUodGV4dCkpOworICAgIHJldHVybiBkaXY7Cit9CisKK2Z1bmN0aW9uIHJl
bmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKSB7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRU
ZXN0JzsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2V2l0aFRleHQoJ3RleHQnKSk7CisK
KyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXYiPjwvY29udGVudD4nOwor
ICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBhc3NlcnRU
cnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LnJl
c2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0
LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50JykuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBk
aXYub2Zmc2V0TGVmdDsKK30KKworZnVuY3Rpb24gcmVuZGVyTm9SZXNldFN0eWxlSW5oZXJpdGFu
Y2VGb3JDb250ZW50KCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisgICAgZGl2LmFwcGVuZENo
aWxkKGNyZWF0ZURpdldpdGhUZXh0KCd0ZXh0JykpOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBu
ZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxj
b250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JzsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5
bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIGFzc2VydEZhbHNlKCdyZXNldFN0eWxlSW5oZXJp
dGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2Up
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5j
ZS1mb3ItY29udGVudCcpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7Cit9
CisKK3JlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aFJlc2V0
U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRh
bmNlRnJvbVRydWVUb0ZhbHNlKCk7CityZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJp
dGFuY2VGcm9tRmFsc2VUb1RydWUoKTsKK3JlbmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNv
bnRlbnQoKTsKK3JlbmRlck5vUmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145986</attachid>
            <date>2012-06-06 04:02:31 -0700</date>
            <delta_ts>2012-06-07 22:29:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84048-20120606200230.patch</filename>
            <type>text/plain</type>
            <size>27385</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNlOGQ4Y2JmNzVjY2M3
MWNiODk2ZjJiNjcxNDRmMDQ3NzRlNTM3OC4uOGIwYTQyYTE4N2IxOTRjYTZkMTk3MjZkYjE4YTEz
MTQ2ZTExZmFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA1LTE4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIHJlc2V0U3R5bGVJbmhlcml0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQwNDgKKworICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJp
dGFuY2UgQVBJIHRvIFNoYWRvd1Jvb3QuIFRoZSBzcGVjIFVSTCBpcworICAgICAgICBodHRwOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5k
ZXguaHRtbCNzaGFkb3ctcm9vdC1hdHRyaWJ1dGVzCisgICAgICAgIFRvIGltcGxlbWVudCB0aGUg
QVBJLCBtb2RpZmllZCBTdHlsZVJlc29sdmVyIHRvIHVzZSBlbXB0eSBzdHlsZQorICAgICAgICBp
bnN0ZWFkIG9mIHBhcmVudCBzdHlsZSBpZiByZXNldFN0eWxlSW5oZXJpdGFuY2UgaXMgdHJ1ZSwK
KyAgICAgICAgYW5kIGEgbm9kZSBhbmQgaXRzIHBhcmVudCBub2RlIGFyZSBwbGFjZWQgaW4gZGlm
ZmVyZW50IHNoYWRvdyB0cmVlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHls
ZUluaGVyaXRhbmNlLmh0bWwKKyAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sCisKKyAgICAgICAgKiBjc3Mv
U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjppbml0
Rm9yU3R5bGVSZXNvbHZlKToKKyAgICAgICAgU2V0IG1fcGFyZW50U3R5bGUgdG8gTlVMTCB3aGVu
IHJlc2V0U3R5bGVJbmhlcml0YW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmRvY3VtZW50U2V0dGluZ3MpOgorICAgICAgICBBZGRlZCBhIG5ldyBtZXRob2QgdG8gb2J0YWlu
IGN1cnJlbnQgZG9jdW1lbnQncyBzZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVz
b2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOgorICAgICAgICBJbml0aWFsaXplIG1fc3R5bGUg
YnkgdXNpbmcgZG9jdW1lbnQgc2V0dGluZ3MuIEl0cyBjb2RlIHdhcyBtb3ZlCisgICAgICAgIGZy
b20gdGhlIGNvZGUgaW5pdGlhbGl6aW5nIGZvbnQgc3R5bGUgaW4gYXBwbHlQcm9wZXJ0eS4KKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAg
IEluaXRpYWxpemUgZm9udCBzdHlsZSBpZiBtX3BhcmVudFN0eWxlIGlzIE5VTEwuIFRoZSBvbGQg
Y29kZSBqdXN0CisgICAgICAgIHVzZWQgc3R5bGUoKSBhbmQgZG9uJ3QgdG91Y2ggZm9udCBzdHls
ZS4gVGhlIG5ldyBjb2RlIHVzZXMgdGhlIGFib3ZlCisgICAgICAgIGluaXRpYWxpemVGb250U3R5
bGUuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KToKKyAg
ICAgICAgTW92ZWQgYSBjb2RlIGZvciBpbml0aWFsaXppbmcgZm9udCBzdHlsZSBhcyAiaW5pdGlh
bCIgdG8KKyAgICAgICAgYSBuZXcgbWV0aG9kOiBpbml0aWFsaXplRm9udFN0eWxlIGFuZCBtb2Rp
ZmllZCB0byB1c2UgdGhlIG1ldGhvZC4KKyAgICAgICAgTW9kaWZpZWQgdG8gdXNlIGRvY3VtZW50
U2V0dGluZ3MoKS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNoZWNrRm9yR2Vu
ZXJpY0ZhbWlseUNoYW5nZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIHVzZSBkb2N1bWVudFNldHRp
bmdzKCkuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUmVzb2x2ZXI6OmRvY3VtZW50U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSk6CisgICAgICAgIEFkZGVkIHR3byBuZXcg
bWV0aG9kcyB0byBjbGFzcyBTdHlsZVJlc29sdmVyLgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICBNb2RpZmllZCB0byBjYWxjdWxhdGUgbV9y
ZXNldFN0eWxlSW5oZXJpdGFuY2UgaW4gaXRzIGNvbnN0cnVjdG9yLgorICAgICAgICAqIGRvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0Nv
bnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSk6CisgICAgICAgIEltcGxlbWVudGVkIGEgbmV3
IG1ldGhvZCwganVzdCByZXR1cm5pbmcgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UuCisgICAgICAg
ICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0
UmVzZXRTdHlsZUluaGVyaXRhbmNlKToKKyAgICAgICAgTW9kaWZpZWQgdG8gZm9yY2UgdG8gcmVj
YWxjdWxhdGUgY2hpbGRyZW4ncyBzdHlsZXMgaWYKKyAgICAgICAgcmVzZXRTdHlsZUluaGVyaXRh
bmNlIGlzIGNoYW5nZWQuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNo
YWRvd1Jvb3QpOgorICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UgZ2V0dGVyIGFu
ZCBzZXR0ZXIuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgorICAgICAgICBBZGRlZCBh
biBhdHRyaWJ1dGUsIHJlc2V0U3R5bGVJbmhlcml0YW5jZS4KKyAgICAgICAgKiBkb20vVHJlZVNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6cmVzZXRTdHlsZUluaGVyaXRh
bmNlKToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgIChUcmVlU2NvcGUpOgor
ICAgICAgICBBZGRlZCByZXNldFN0eWxlSW5oZXJpdGFuY2UncyBkZWZhdWx0IGdldHRlci4KKyAg
ICAgICAgVGhlIGdldHRlciB3aWxsIGJlIG92ZXJyaWRlZCBieSBjbGFzcyBTaGFkb3dSb290J3Mg
Z2V0dGVyLgorCiAyMDEyLTA2LTA2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBQb3NpdGlvbkl0ZXJhdG9yOjtzZXRPZmZzZXRJbkxlYWZOb2RlKCkg
aXMgbm90IHVzZWQgYW55d2hlcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5k
ZXggM2VmMGFkZDhkODk5Njc5ZTA2NWM3ODg1YWM3MTk1ODFkZGNlM2FhMC4uYWI3MzcxNTFlODBk
ZDI0NjYxYjdhMDE5Y2RiYjM1Y2MyMmFkZTU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1
ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIK
KyNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWlyLmgiCkBAIC0xMTYyLDEyICsxMTYz
LDE2IEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxl
bWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0CiB7CiAgICAgbV9jaGVja2VyLnNldFBzZXVk
b1N0eWxlKHBzZXVkb0lEKTsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7Ci0KLSAgICBpZiAocGFyZW50U3R5bGUpCisgICAg
aWYgKGUpIHsKKyAgICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgY29udGV4dChlKTsKKyAgICAg
ICAgbV9wYXJlbnROb2RlID0gY29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KTsKKyAgICAgICAgbV9wYXJlbnRTdHlsZSA9IGNvbnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNl
KCk/IDAgOgorICAgICAgICAgICAgcGFyZW50U3R5bGUgPyBwYXJlbnRTdHlsZSA6CisgICAgICAg
ICAgICBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxlKCkgOiAwOworICAg
IH0gZWxzZSB7CisgICAgICAgIG1fcGFyZW50Tm9kZSA9IDA7CiAgICAgICAgIG1fcGFyZW50U3R5
bGUgPSBwYXJlbnRTdHlsZTsKLSAgICBlbHNlCi0gICAgICAgIG1fcGFyZW50U3R5bGUgPSBtX3Bh
cmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxlKCkgOiAwOworICAgIH0KIAogICAg
IE5vZGUqIGRvY0VsZW1lbnQgPSBlID8gZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkg
OiAwOwogICAgIFJlbmRlclN0eWxlKiBkb2NTdHlsZSA9IG1fY2hlY2tlci5kb2N1bWVudCgpLT5y
ZW5kZXJTdHlsZSgpOwpAQCAtMTY1Miw3ICsxNjU3LDExIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5k
ZXJTCiAgICAgZWxzZSB7CiAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBzdHlsZSgpOwogICAgICAg
ICAvLyBNYWtlIHN1cmUgb3VyIGZvbnRzIGFyZSBpbml0aWFsaXplZCBpZiB3ZSBkb24ndCBpbmhl
cml0IHRoZW0gZnJvbSBvdXIgcGFyZW50IHN0eWxlLgotICAgICAgICBtX3N0eWxlLT5mb250KCku
dXBkYXRlKDApOworICAgICAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnRTZXR0
aW5ncygpKSB7CisgICAgICAgICAgICBpbml0aWFsaXplRm9udFN0eWxlKHNldHRpbmdzKTsKKyAg
ICAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKCkpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CiAgICAgfQog
CiAgICAgLy8gRXZlbiBpZiBzdXJyb3VuZGluZyBjb250ZW50IGlzIHVzZXItZWRpdGFibGUsIHNo
YWRvdyBET00gc2hvdWxkIGFjdCBhcyBhIHNpbmdsZSB1bml0LCBhbmQgbm90IG5lY2Vzc2FyaWx5
IGJlIGVkaXRhYmxlCkBAIC0zMzQ2LDcgKzMzNTUsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFw
cGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIGNvbnRlbnRW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7CiAgICAgICAgICAg
ICBBdG9taWNTdHJpbmcgZmFjZTsKLSAgICAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1f
Y2hlY2tlci5kb2N1bWVudCgpLT5zZXR0aW5ncygpOworICAgICAgICAgICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpOwogICAgICAgICAgICAgaWYgKGNvbnRlbnRWYWx1
ZS0+aXNTdHJpbmcoKSkKICAgICAgICAgICAgICAgICBmYWNlID0gY29udGVudFZhbHVlLT5nZXRT
dHJpbmdWYWx1ZSgpOwogICAgICAgICAgICAgZWxzZSBpZiAoc2V0dGluZ3MpIHsKQEAgLTM0MzAs
MjQgKzM0MzksMTEgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3Bl
cnR5SUQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgIG1fbGluZUhlaWdodFZhbHVl
ID0gMDsKICAgICAgICAgICAgIHNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwog
ICAgICAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbCkgewotICAgICAgICAgICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gbV9jaGVja2VyLmRvY3VtZW50KCktPnNldHRpbmdzKCk7CisgICAgICAgICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRpbmdzKCk7CiAgICAgICAgICAgICBBU1NF
UlQoc2V0dGluZ3MpOyAvLyBJZiB3ZSdyZSBkb2luZyBzdHlsZSByZXNvbHV0aW9uLCB0aGlzIGRv
Y3VtZW50IHNob3VsZCBhbHdheXMgYmUgaW4gYSBmcmFtZSBhbmQgdGh1cyBoYXZlIHNldHRpbmdz
CiAgICAgICAgICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247Ci0gICAgICAgICAgICBm
b250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246OlN0YW5kYXJk
RmFtaWx5KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNl
dHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSk7Ci0g
ICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSA9IG1fY2hl
Y2tlci5kb2N1bWVudCgpLT5zZXR0aW5ncygpLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKLSAgICAg
ICAgICAgIGlmICghc3RhbmRhcmRGb250RmFtaWx5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLnNldEZhbWlseShzdGFuZGFyZEZvbnRG
YW1pbHkpOwotICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLmFw
cGVuZEZhbWlseSgwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRLZXl3b3JkU2l6ZShDU1NWYWx1ZU1lZGl1bSAtIENTU1ZhbHVlWHhTbWFsbCArIDEpOwot
ICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdv
cmQobV9jaGVja2VyLmRvY3VtZW50KCksIENTU1ZhbHVlTWVkaXVtLCBmYWxzZSkpOwotICAgICAg
ICAgICAgbV9zdHlsZS0+c2V0TGluZUhlaWdodChSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWln
aHQoKSk7Ci0gICAgICAgICAgICBtX2xpbmVIZWlnaHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICBz
ZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGluaXRpYWxp
emVGb250U3R5bGUoc2V0dGluZ3MpOwogICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVl
KSB7CiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRMaW5lSGVpZ2h0KFJlbmRlclN0eWxlOjppbml0
aWFsTGluZUhlaWdodCgpKTsKICAgICAgICAgICAgIG1fbGluZUhlaWdodFZhbHVlID0gMDsKQEAg
LTM0NTgsNyArMzQ1NCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICAvLyBEb3VibGUtY2hl
Y2sgYW5kIHNlZSBpZiB0aGUgdGhlbWUgZGlkIGFueXRoaW5nLiBJZiBub3QsIGRvbid0IGJvdGhl
ciB1cGRhdGluZyB0aGUgZm9udC4KICAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24uaXNB
YnNvbHV0ZVNpemUoKSkgewogICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcmVuZGVy
aW5nIG1vZGUgYW5kIHByaW50ZXIgZm9udCBzZXR0aW5ncyBhcmUgdXBkYXRlZC4KLSAgICAgICAg
ICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2NoZWNrZXIuZG9jdW1lbnQoKS0+c2V0dGlu
Z3MoKTsKKyAgICAgICAgICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRp
bmdzKCk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNldHRpbmdzKTsgLy8gSWYgd2UncmUgZG9p
bmcgc3R5bGUgcmVzb2x1dGlvbiwgdGhpcyBkb2N1bWVudCBzaG91bGQgYWx3YXlzIGJlIGluIGEg
ZnJhbWUgYW5kIHRodXMgaGF2ZSBzZXR0aW5ncwogICAgICAgICAgICAgICAgIGlmICghc2V0dGlu
Z3MpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ5MTEsNyArNDkwNyw3IEBAIHZv
aWQgU3R5bGVSZXNvbHZlcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKFJlbmRlclN0eWxl
KiBzdHlsZSwgUmVuZGVyU3R5bGUqCiAgICAgaWYgKGNoaWxkRm9udC5rZXl3b3JkU2l6ZSgpKQog
ICAgICAgICBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKG1fY2hlY2tlci5kb2N1bWVudCgpLCBD
U1NWYWx1ZVh4U21hbGwgKyBjaGlsZEZvbnQua2V5d29yZFNpemUoKSAtIDEsIGNoaWxkRm9udC51
c2VGaXhlZERlZmF1bHRTaXplKCkpOwogICAgIGVsc2UgewotICAgICAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBtX2NoZWNrZXIuZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKKyAgICAgICAgU2V0dGlu
Z3MqIHNldHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpOwogICAgICAgICBmbG9hdCBmaXhlZFNj
YWxlRmFjdG9yID0gc2V0dGluZ3MKICAgICAgICAgICAgID8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNl
dHRpbmdzLT5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpKSAvIHNldHRpbmdzLT5kZWZhdWx0Rm9udFNp
emUoKQogICAgICAgICAgICAgOiAxOwpAQCAtNDkyNSw2ICs0OTIxLDI0IEBAIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKFJlbmRlclN0eWxlKiBzdHlsZSwg
UmVuZGVyU3R5bGUqCiAgICAgc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihuZXdGb250RGVzY3Jp
cHRpb24pOwogfQogCit2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUoU2V0
dGluZ3MqIHNldHRpbmdzKQoreworICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247
CisgICAgZm9udERlc2NyaXB0aW9uLnNldEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpT
dGFuZGFyZEZhbWlseSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0
dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQ
cmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSk7CisgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBzdGFuZGFyZEZvbnRGYW1pbHkgPSBkb2N1bWVudFNldHRpbmdzKCktPnN0
YW5kYXJkRm9udEZhbWlseSgpOworICAgIGlmICghc3RhbmRhcmRGb250RmFtaWx5LmlzRW1wdHko
KSkgeworICAgICAgICBmb250RGVzY3JpcHRpb24uZmlyc3RGYW1pbHkoKS5zZXRGYW1pbHkoc3Rh
bmRhcmRGb250RmFtaWx5KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCku
YXBwZW5kRmFtaWx5KDApOworICAgIH0KKyAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNp
emUoQ1NTVmFsdWVNZWRpdW0gLSBDU1NWYWx1ZVh4U21hbGwgKyAxKTsKKyAgICBzZXRGb250U2l6
ZShmb250RGVzY3JpcHRpb24sIGZvbnRTaXplRm9yS2V5d29yZChtX2NoZWNrZXIuZG9jdW1lbnQo
KSwgQ1NTVmFsdWVNZWRpdW0sIGZhbHNlKSk7CisgICAgbV9zdHlsZS0+c2V0TGluZUhlaWdodChS
ZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7CisgICAgbV9saW5lSGVpZ2h0VmFsdWUg
PSAwOworICAgIHNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworfQorCiB2b2lk
IFN0eWxlUmVzb2x2ZXI6OnNldEZvbnRTaXplKEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uLCBmbG9hdCBzaXplKQogewogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXpl
KHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggNTM5ZGQ2MzU2YWUwOWYx
YzY4ZWYyN2Y2MmM5YTNmNTgxMTZkMTViZi4uN2U4ZjNhMTAwYWQ5NThkY2ViMWRlMjE3MDAwMjM4
MTc5NjUyNTlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yMDgsNiArMjA4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1By
b3BlcnR5SUQsIENTU1ZhbHVlKik7CiAKICAgICB2b2lkIHVwZGF0ZUZvbnQoKTsKKyAgICB2b2lk
IGluaXRpYWxpemVGb250U3R5bGUoU2V0dGluZ3MqKTsKIAogICAgIHN0YXRpYyBmbG9hdCBnZXRD
b21wdXRlZFNpemVGcm9tU3BlY2lmaWVkU2l6ZShEb2N1bWVudCosIGZsb2F0IHpvb21GYWN0b3Is
IGJvb2wgaXNBYnNvbHV0ZVNpemUsIGZsb2F0IHNwZWNpZmllZFNpemUsIEVTbWFydE1pbmltdW1G
b3JGb250U2l6ZSA9IFVzZVNtYXJ0TWluaW11bUZvckZvbnRGaXplKTsKIApAQCAtMzY2LDYgKzM2
Nyw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1hdGNoUGFnZVJ1bGVzKE1hdGNoUmVzdWx0Jiwg
UnVsZVNldCosIGJvb2wgaXNMZWZ0UGFnZSwgYm9vbCBpc0ZpcnN0UGFnZSwgY29uc3QgU3RyaW5n
JiBwYWdlTmFtZSk7CiAgICAgdm9pZCBtYXRjaFBhZ2VSdWxlc0Zvckxpc3QoVmVjdG9yPFN0eWxl
UnVsZVBhZ2UqPiYgbWF0Y2hlZFJ1bGVzLCBjb25zdCBWZWN0b3I8U3R5bGVSdWxlUGFnZSo+Jiwg
Ym9vbCBpc0xlZnRQYWdlLCBib29sIGlzRmlyc3RQYWdlLCBjb25zdCBTdHJpbmcmIHBhZ2VOYW1l
KTsKKyAgICBTZXR0aW5ncyogZG9jdW1lbnRTZXR0aW5ncygpIHsgcmV0dXJuIG1fY2hlY2tlci5k
b2N1bWVudCgpLT5zZXR0aW5ncygpOyB9CisKICAgICBib29sIGlzTGVmdFBhZ2UoaW50IHBhZ2VJ
bmRleCkgY29uc3Q7CiAgICAgYm9vbCBpc1JpZ2h0UGFnZShpbnQgcGFnZUluZGV4KSBjb25zdCB7
IHJldHVybiAhaXNMZWZ0UGFnZShwYWdlSW5kZXgpOyB9CiAgICAgYm9vbCBpc0ZpcnN0UGFnZShp
bnQgcGFnZUluZGV4KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwCmluZGV4IDdmNzBlN2MwZmYyMGMwMzRiODViNWFjOGFlMjY5M2ZhNjZmOTM1OGMu
LmI0ZDZkNDY4NmZkNjRmMDI0MjI4OWViYmMwN2JmMzU3NTI0NWNhMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNTUsNiArNTUsNyBAQCBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICA6
IG1fcGhhc2UoQXR0YWNoaW5nTm90SW5UcmVlKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBt
X3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgwKQorICAgICwgbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2UoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFBhcmVudFNoYWRvdygwKQogICAgICwgbV9p
bnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZSgwKQpAQCAtNjcsNiArNjgsNyBAQCBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICBp
ZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSAmJiB0b1NoYWRvd1Jvb3QocGFyZW50KS0+aXNZb3Vu
Z2VzdCgpKSB7CiAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdTaGFkb3dDaGlsZDsKICAgICAg
ICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSB0b1NoYWRvd1Jvb3QocGFyZW50
KS0+aG9zdCgpOworICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRvU2hhZG93Um9v
dChwYXJlbnQpLT5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtODIsNyArODQsOSBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGlmICgobV9pbnNlcnRpb25Qb2ludCA9
IG1fdmlzdWFsUGFyZW50U2hhZG93LT5pbnNlcnRpb25Qb2ludEZvcihtX25vZGUpKSkgewogICAg
ICAgICAgICAgICAgIGlmIChtX2luc2VydGlvblBvaW50LT5zaGFkb3dSb290KCktPmlzVXNlZEZv
clJlbmRlcmluZygpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdE
aXN0cmlidXRlZDsKLSAgICAgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5n
QW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChtX2luc2VydGlvblBvaW50KS5wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICAgICAgTm9kZVJlbmRl
cmluZ0NvbnRleHQgaW5zZXJ0aW9uUG9pbnRDb250ZXh0KG1faW5zZXJ0aW9uUG9pbnQpOworICAg
ICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IGluc2Vy
dGlvblBvaW50Q29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBpbnNlcnRpb25Qb2ludENv
bnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMDcsOSArMTExLDExIEBA
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdGYWxs
YmFja2VkOwogCi0gICAgICAgICAgICBpZiAodG9JbnNlcnRpb25Qb2ludChwYXJlbnQpLT5pc0Fj
dGl2ZSgpKQotICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxl
ID0gTm9kZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5k
U3R5bGUoKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmICh0b0luc2VydGlvblBv
aW50KHBhcmVudCktPmlzQWN0aXZlKCkpIHsKKyAgICAgICAgICAgICAgICBOb2RlUmVuZGVyaW5n
Q29udGV4dCBwYXJlbnRDb250ZXh0KHBhcmVudCk7CisgICAgICAgICAgICAgICAgbV9wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnRDb250ZXh0LnBhcmVudE5vZGVGb3JSZW5k
ZXJpbmdBbmRTdHlsZSgpOworICAgICAgICAgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNl
ID0gcGFyZW50Q29udGV4dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0g
cGFyZW50OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMjMsNiArMTI5LDcg
QEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUs
IFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICA6IG1fcGhhc2UoQ2FsY3VsYXRpbmcpCiAgICAgLCBt
X25vZGUobm9kZSkKICAgICAsIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKDApCisg
ICAgLCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZShmYWxzZSkKICAgICAsIG1fdmlzdWFsUGFyZW50
U2hhZG93KDApCiAgICAgLCBtX2luc2VydGlvblBvaW50KDApCiAgICAgLCBtX3N0eWxlKHN0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA3YjE0ZTAz
ZWRkOWYxMWY5YWUwYjRkMzA5NjJhNTQ1MjY5MWY5ZWZlLi42MDc5MmNiNDdmMGY0ZTJiZGMzYzVk
YjlkMWY1NWVkMTUxZTEzODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAKICAgICBOb2RlKiBub2RlKCkgY29u
c3Q7CiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkg
Y29uc3Q7CisgICAgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKICAgICBSZW5k
ZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0
UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIoKSBj
b25zdDsKQEAgLTgxLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBBdHRhY2hpbmdQaGFzZSBtX3Bo
YXNlOwogICAgIE5vZGUqIG1fbm9kZTsKICAgICBDb250YWluZXJOb2RlKiBtX3BhcmVudE5vZGVG
b3JSZW5kZXJpbmdBbmRTdHlsZTsKKyAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlOwog
ICAgIEVsZW1lbnRTaGFkb3cqIG1fdmlzdWFsUGFyZW50U2hhZG93OwogICAgIEluc2VydGlvblBv
aW50KiBtX2luc2VydGlvblBvaW50OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsK
QEAgLTk5LDYgKzEwMSwxMiBAQCBpbmxpbmUgQ29udGFpbmVyTm9kZSogTm9kZVJlbmRlcmluZ0Nv
bnRleHQ6OnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpIGNvbgogICAgIHJldHVybiBt
X3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsKIH0KIAoraW5saW5lIGJvb2wgTm9kZVJl
bmRlcmluZ0NvbnRleHQ6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUKG1fcGhhc2UgIT0gQ2FsY3VsYXRpbmcpOworICAgIHJldHVybiBtX3Jlc2V0U3R5bGVJbmhl
cml0YW5jZTsKK30KKwogaW5saW5lIFJlbmRlclN0eWxlKiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
c3R5bGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0eWxlLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwCmluZGV4IDY3MjNhMGY2ZGQzMDk1ZGQxNmU5NTMzN2E5YmJjMmFiOTA1Njhi
MWMuLjJjNTc1NjBiZjI2ZjMyNzcyMjNjNDhiZTQ5NTc0ZGU0NGZkNzIwNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9v
dChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX3ByZXYoMCkKICAgICAsIG1fbmV4dCgwKQog
ICAgICwgbV9hcHBseUF1dGhvclN0eWxlcyhmYWxzZSkKKyAgICAsIG1fcmVzZXRTdHlsZUluaGVy
aXRhbmNlKGZhbHNlKQogICAgICwgbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8oMCkKIHsKICAg
ICBBU1NFUlQoZG9jdW1lbnQpOwpAQCAtMTkzLDYgKzE5NCwyMCBAQCB2b2lkIFNoYWRvd1Jvb3Q6
OnNldEFwcGx5QXV0aG9yU3R5bGVzKGJvb2wgdmFsdWUpCiAgICAgfQogfQogCitib29sIFNoYWRv
d1Jvb3Q6OnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVz
ZXRTdHlsZUluaGVyaXRhbmNlOworfQorCit2b2lkIFNoYWRvd1Jvb3Q6OnNldFJlc2V0U3R5bGVJ
bmhlcml0YW5jZShib29sIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSAhPSBtX3Jlc2V0U3R5bGVJ
bmhlcml0YW5jZSkgeworICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHZhbHVlOwor
ICAgICAgICBpZiAoYXR0YWNoZWQoKSAmJiBvd25lcigpKQorICAgICAgICAgICAgb3duZXIoKS0+
cmVjYWxjU3R5bGUoRm9yY2UpOworICAgIH0KK30KKwogdm9pZCBTaGFkb3dSb290OjphdHRhY2go
KQogewogICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSBkb2N1bWVudCgpLT5zdHls
ZVJlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCAwYjdmZmE1ZjJkYThkN2E1
NDYwODM2MTk5NTM5MWM1OGNmODhkMzNlLi42YTc2ZTRmMjI0N2RhMTU5MjUxY2I5OTQzYmJhN2Q0
MDY1ZjYzNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTYzLDYgKzYzLDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU3R5bGVzKCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclN0eWxlcyhib29sKTsKKyAgICB2aXJ0dWFsIGJv
b2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdm9pZCBzZXRS
ZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CiAKICAgICBFbGVtZW50KiBob3N0KCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRIb3N0KEVsZW1lbnQqKTsKQEAgLTk4LDYgKzEwMCw3IEBAIHByaXZhdGU6
CiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAgIFNoYWRvd1Jvb3QqIG1fbmV4dDsKICAgICBi
b29sIG1fYXBwbHlBdXRob3JTdHlsZXMgOiAxOworICAgIGJvb2wgbV9yZXNldFN0eWxlSW5oZXJp
dGFuY2UgOiAxOwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRU
bzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRleCA4MTEwYzFlMDhhNzQzZDcz
ZWMxMzQ1MmNhNmE0ZGI2YTM3NDc0MWMwLi4wMGY3Y2Q4M2E1MjRiMmI1NjE2N2UwMmM3NDBmY2My
M2MxNjY5ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNCw2ICszNCw3IEBA
IG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CisgICAgICAgIGF0dHJpYnV0
ZSBib29sZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5jZTsKIAogICAgICAgICBhdHRyaWJ1dGUgW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKICAgICAgICAgICAgIHNl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXgg
ZDcwYjkwMDU5ZGJkZWViZTFkNzA3YmIzMzQ2MDdkMzY4YWUzN2ExMi4uODMyMmZjYjM4YWY1OTYw
ODY5MGQxODI3ODZjYzg5NzhlOTY2NGFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAg
LTE5MSw2ICsxOTEsMTEgQEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9yU3R5bGVzKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUcmVlU2NvcGU6OnJlc2V0U3R5bGVJbmhl
cml0YW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFRyZWVTY29w
ZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuaAppbmRleCAwZDFkY2ViNDMzMjE2OGUyNGVmN2QyMmMxMjQ5NjdmM2ZjMDFk
ZDIzLi41ZWNjMDM5MmYzNzE3MGJlZTMwNTM5OTIxNDI0OTdjZmFiN2FjYjBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZS5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBmaW5k
QW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRo
b3JTdHlsZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNl
KCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9k
cyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMDNhYWYzMWE4YWIyNjE0OTMxNzllNmE1ZjM0Yjg0MTcxZTViMGFlLi42OTVlOTAw
ZDgzNDAyOWQ5NDc5YWFmNDc0ZjI3ODU2NjVjYjg3MjE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDUtMTggIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAg
ICAgIFNoYWRvd1Jvb3QgbmVlZHMgcmVzZXRTdHlsZUluaGVyaXRhbmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDA0OAorCisgICAgICAgIEFkZGVk
IGxheW91dCB0ZXN0cyBmb3IgY2hlY2tpbmcgd2hldGhlciByZXNldFN0eWxlSW5oZXJpdGFuY2Ug
d29ya3MgY29ycmVjdGx5IG9yIG5vdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxl
SW5oZXJpdGFuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wNi0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjEwNjQ3OCk6IE5vbmUgb2YgdGhlIFBhcGVyLmpzIEphdmFTY3JpcHQgZXhhbXBsZXMg
d29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFmZGViNjU0MzhjNGI1ZjFkMTRmOWU2MDFiMDFiN2FjNjA5YzJjYmUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
cmVzZXRTdHlsZUluaGVyaXRhbmNlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LnJlc2V0VGVzdCB7Cisg
IGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjogc29saWQ7CisgIG1hcmdpbjogNHB4
OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsKKyAgZm9udC1mYW1pbHk6IFNlcmlm
OworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgZm9udC12YXJp
YW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9sZDsKKyAgbGV0dGVyLXNwYWNpbmc6
IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQtYWxpZ246IHN0YXJ0OworICB0ZXh0
LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKKyAgd2hpdGUtc3Bh
Y2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4OworfQorZGl2LmluaXRpYWxWYWx1ZXMg
eworICBjb2xvcjogaW5pdGlhbDsKKyAgZm9udC1mYW1pbHk6IGluaXRpYWw7CisgIGZvbnQtc2l6
ZTogaW5pdGlhbDsKKyAgZm9udC1zdHlsZTogaW5pdGlhbDsKKyAgZm9udC12YXJpYW50OiBpbml0
aWFsOworICBmb250LXdlaWdodDogaW5pdGlhbDsKKyAgbGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7
CisgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOworICB0ZXh0LWFsaWduOiBpbml0aWFsOworICB0ZXh0
LWluZGVudDogaW5pdGlhbDsKKyAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7CisgIHdoaXRlLXNw
YWNlOiBpbml0aWFsOworICB3b3JkLXNwYWNpbmc6IGluaXRpYWw7Cit9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdiBjbGFzcz0iaW5p
dGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNl
dFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNl
dFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJyZXNl
dFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4K
KzxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0aWFsVmFsdWVzIj50
ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdj50
ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHlsZUluaGVyaXRhbmNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtcmVzZXRTdHls
ZUluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiOGQyNmE4Mjc1NWQyOWMyMGJjMDJiZmM5
YThiMDA3OTg3NmJmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbApAQCAtMCwwICsxLDE2
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LnJlc2V0
VGVzdCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7CisgIGJvcmRlcjogc29saWQ7CisgIG1h
cmdpbjogNHB4OworICBwYWRkaW5nOiAxNnB4OworICBjb2xvcjogI2ZlZTsKKyAgZm9udC1mYW1p
bHk6IFNlcmlmOworICBmb250LXNpemU6IDI0cHg7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAg
Zm9udC12YXJpYW50OiBzbWFsbC1jYXBzOworICBmb250LXdlaWdodDogYm9sZDsKKyAgbGV0dGVy
LXNwYWNpbmc6IDJweDsKKyAgbGluZS1oZWlnaHQ6IDIwMCU7CisgIHRleHQtYWxpZ246IHN0YXJ0
OworICB0ZXh0LWluZGVudDogNTBweDsKKyAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKKyAg
d2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgd29yZC1zcGFjaW5nOiAzMHB4OworfQorPC9zdHlsZT4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBhc3NlcnRUcnVlKGlkLCBhY3R1YWwpIHsKKyAgICBpZiAoIWFj
dHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgIjogYXNzZXJ0VHJ1ZSBmYWls
ZWQiOworfQorCitmdW5jdGlvbiBhc3NlcnRGYWxzZShpZCwgYWN0dWFsKSB7CisgICAgaWYgKGFj
dHVhbCkKKyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGlkICsgICI6IGFzc2VydEZhbHNlIGZh
aWxlZCI7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKGEsIGIpCit7CisgICAgaWYgKGEgIT0gYikK
KyAgICAgICAgdGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBzaG91bGQgYmUgIiArIGI7Cit9CisK
K2Z1bmN0aW9uIHNob3VsZE5vdEJlKGEsIGIpCit7CisgICAgaWYgKGEgPT0gYikKKyAgICAgICAg
dGhyb3cgImZhaWx1cmU6IiArIGEgKyAiOiBzaG91bGQgbm90IGJlICIgKyBiOworfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiPjwvZGl2PgorPGRp
diBpZD0ibm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiPjwvZGl2PgorPGRpdiBpZD0icmVzZXQt
c3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxzZSI+PC9kaXY+Cis8ZGl2IGlkPSJyZXNldC1z
dHlsZS1pbmhlcml0YW5jZS1mYWxzZS10by10cnVlIj48L2Rpdj4KKzxkaXYgaWQ9InJlc2V0LXN0
eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50Ij48L2Rpdj4KKzxkaXYgaWQ9Im5vLXJlc2V0LXN0
eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50Ij48L2Rpdj4KKworPHNjcmlwdD4KK2Z1bmN0aW9u
IHJlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRl
c3QnOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOwor
ICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUg
ZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgc2hhZG93Um9v
dC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsKKyAgICAKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbm8tcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKS5hcHBlbmRDaGlsZChkaXYp
OworfQorCitmdW5jdGlvbiByZW5kZXJXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAg
IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuY2xhc3NO
YW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFk
b3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRh
bmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsK
KyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAnPGRpdj50ZXh0PC9kaXY+JzsKKyAgICBhc3NlcnRUcnVlKCdyZXNl
dFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUgYXMgZXhwbGljaXRseSBzZXQnLCBzaGFk
b3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlJykuYXBwZW5kQ2hpbGQoZGl2KTsKK30K
KworZnVuY3Rpb24gcmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRhbmNlRnJvbVRy
dWVUb0ZhbHNlKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisKKyAgICB2YXIgc2hhZG93Um9v
dCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQg
cmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9
IHRydWU7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGVzdDEiPnRleHQ8
L2Rpdj4nOworICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUg
dHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICAKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtdHJ1ZS10by1mYWxz
ZScpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7CisgICAgdmFyIHRhcmdl
dCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJyk7CisgICAgc2hvdWxkTm90QmUo
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZh
bWlseScpLCAnc2VyaWYnKTsKKyAgICBzaG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0JyksICc0OHB4Jyk7CisKKyAg
ICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIGFzc2VydEZh
bHNlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5y
ZXNldFN0eWxlSW5oZXJpdGFuY2UpOworICAgIGRpdi5vZmZzZXRMZWZ0OworICAgIHNob3VsZEJl
KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1m
YW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUo
dGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOworfQorCitm
dW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tRmFsc2VU
b1RydWUoKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKKworICAgIHZhciBzaGFkb3dSb290ID0g
bmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKKyAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNl
dFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxl
SW5oZXJpdGFuY2UpOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFs
c2U7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGVzdDIiPnRleHQ8L2Rp
dj4nOworICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91
bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgCisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZhbHNl
LXRvLXRydWUnKS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRpdi5vZmZzZXRMZWZ0OworICAgIHZh
ciB0YXJnZXQgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpOworICAgIHNob3Vs
ZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9u
dC1mYW1pbHknKSwgJ3NlcmlmJyk7CisgICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAnNDhweCcpOworCisg
ICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGFzc2VydFRy
dWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVz
ZXRTdHlsZUluaGVyaXRhbmNlKTsKKyAgICBkaXYub2Zmc2V0TGVmdDsKKyAgICBzaG91bGROb3RC
ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQt
ZmFtaWx5JyksICdzZXJpZicpOworICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsKK30K
KworZnVuY3Rpb24gY3JlYXRlRGl2V2l0aFRleHQodGV4dCkgeworICAgIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUodGV4dCkpOworICAgIHJldHVybiBkaXY7Cit9CisKK2Z1bmN0aW9uIHJl
bmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKSB7CisgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRU
ZXN0JzsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2V2l0aFRleHQoJ3RleHQnKSk7CisK
KyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXYiPjwvY29udGVudD4nOwor
ICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBhc3NlcnRU
cnVlKCdyZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LnJl
c2V0U3R5bGVJbmhlcml0YW5jZSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0
LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50JykuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBk
aXYub2Zmc2V0TGVmdDsKK30KKworZnVuY3Rpb24gcmVuZGVyTm9SZXNldFN0eWxlSW5oZXJpdGFu
Y2VGb3JDb250ZW50KCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7CisgICAgZGl2LmFwcGVuZENo
aWxkKGNyZWF0ZURpdldpdGhUZXh0KCd0ZXh0JykpOworCisgICAgdmFyIHNoYWRvd1Jvb3QgPSBu
ZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxj
b250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JzsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5
bGVJbmhlcml0YW5jZSA9IGZhbHNlOworICAgIGFzc2VydEZhbHNlKCdyZXNldFN0eWxlSW5oZXJp
dGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2Up
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5j
ZS1mb3ItY29udGVudCcpLmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2Lm9mZnNldExlZnQ7Cit9
CisKK3JlbmRlcldpdGhOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aFJlc2V0
U3R5bGVJbmhlcml0YW5jZSgpOworcmVuZGVyV2l0aENoYW5naW5nUmVzZXRTdHlsZUluaGVyaXRh
bmNlRnJvbVRydWVUb0ZhbHNlKCk7CityZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJp
dGFuY2VGcm9tRmFsc2VUb1RydWUoKTsKK3JlbmRlclJlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNv
bnRlbnQoKTsKK3JlbmRlck5vUmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>