<?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>98504</bug_id>
          
          <creation_ts>2012-10-05 03:05:03 -0700</creation_ts>
          <short_desc>[CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.</short_desc>
          <delta_ts>2012-10-23 14:35:13 -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>Layout and Rendering</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>
          <dependson>93870</dependson>
          <blocked>71392</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achicu</cc>
    
    <cc>dino</cc>
    
    <cc>mvujovic</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>735533</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-05 03:05:03 -0700</bug_when>
    <thetext>Implement the overlay, color-dodge, color-burn, hard-light and soft-light blend mode in the CSS Shaders mix function. For example:
-webkit-filter: custom(none mix(shader.fs multiply));

This will blend the special css_MixColor symbol in the fragment shader with the DOM element texture.

This bug is follow-up of Bug 93870 to implement all of the following: overlay, color-dodge, color-burn, hard-light and soft-light.

CSS Shaders can support all of Separable blend modes after this bug. This bug does not cover Non-separable blend modes, which is tricky to implement.

https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingseparable
https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735546</commentid>
    <comment_count>1</comment_count>
      <attachid>167299</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-05 03:34:11 -0700</bug_when>
    <thetext>Created attachment 167299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736872</commentid>
    <comment_count>2</comment_count>
      <attachid>167299</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-08 11:48:53 -0700</bug_when>
    <thetext>Comment on attachment 167299
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.

Thanks for the patch, Huang!

I have some ideas about how to factor this now that you&apos;re implementing the more complicated blend modes :)

Basically, I want to break up the GLSL css_Blend function into two functions, css_BlendColor and css_BlendComponent. If we need to do per component blending, css_BlendColor calls css_BlendComponent for each color component. I&apos;ve provided the details below. Please let me know if something is not clear.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:189
&gt;      const char* expression = 0;

Rename this blendColorExpression.

Give a default value of:
&quot;Co = vec3(blendComponent(Cb.r, Cs.r), blendComponent(Cb.g, Cs.g), blendComponent(Cb.b, Cs.b));&quot;

For the simpler blend modes that don&apos;t need to blend by component, we will overwrite this default value.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:190
&gt; +    const char* auxiliaryExpression = &quot;&quot;;

Rename this to blendComponentExpression.

Give a default value of:
&quot;return 0.0;&quot;

This default value is just so this function compiles when it is not used.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:193
&gt;          expression = &quot;Cs&quot;;

The existing blend mode expressions should change to this format:

blendColorExpression = &quot;Co = Cs&quot;;
...

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:213
&gt;      case BlendModeOverlay:

This entire case can be:

blendComponentExpression = SHADER(
    if (Cb &lt;= 0.5)
        Co = Cs * (2.0 * Cb);
    else
        Co = Cs + (2.0 * Cb - 1.0) - (Cs * (2.0 * Cb - 1.0)); 
);

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:237
&gt;      case BlendModeColorDodge:

This entire case can be:

blendComponentExpression = SHADER(
    float divisor = 1.0 - Cs;
    Co = (divisor != 0.0) ? (Cb / divisor) : 1.0;
);

Notice the divide by zero check I added. We need to make sure we don&apos;t ever divide by zero because different GPUs often behave differently in that case. I&apos;ve seen some discard the entire fragment when a division by zero occurs in the shader.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:245
&gt; +            mediump vec3 one = vec3(1.0, 1.0, 1.0);

Even though I&apos;m asking you to remove this line, a nicer way to write it in GLSL is:
mediump vec3 one = vec3(1.0);

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:247
&gt; +            if (Cs.r &gt;= 1.0)

I think it&apos;s better to move this clamping operation to the css_BlendColor function below because we always want the blending result to be between 0.0 and 1.0. Check out the GLSL clamp function: http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:256
&gt;      case BlendModeColorBurn:

The rest of the cases can also be written in the format I mentioned.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:265
&gt; +            mediump vec3 B = one - min(one, (one - Cb) / Cs);

When you write this expression, be careful to avoid the divide by zero.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:341
&gt;      return String::format(SHADER(

Add a function:

mediump vec3 css_BlendComponent(mediump float Cb, mediump float Cs)
{
    float Co;
    %s;
    return Co;
}

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:342
&gt;          mediump vec3 css_Blend(mediump vec3 Cb, mediump vec3 Cs)

Rename this function to css_BlendColor.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:345
&gt;              return %s;

Replace this function body with:

vec3 Co;
%s
return clamp(Co, 0.0, 1.0);

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:347
&gt; +    ), auxiliaryExpression, expression);

Replace this with &quot;blendComponentExpression, blendColorExpression&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738240</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-09 15:16:11 -0700</bug_when>
    <thetext>(In reply to comment #2)
I really appreciate your detailed and improved suggestions. All explanations are precise!
I&apos;ll update it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738744</commentid>
    <comment_count>4</comment_count>
      <attachid>167959</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-10 01:46:44 -0700</bug_when>
    <thetext>Created attachment 167959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738746</commentid>
    <comment_count>5</comment_count>
      <attachid>167959</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-10 01:56:30 -0700</bug_when>
    <thetext>Comment on attachment 167959
Patch

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

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:234
&gt; +        blendComponentExpression = SHADER(

I don&apos;t check the divide by zero, because 1.0 - Cs can not zero if Cs &lt; 1.0.
I don&apos;t use clamp, because we are checking Cs &lt; 1.0, not Co &lt; 1.0. (clamp(genIType x, genIType  minVal, genIType  maxVal))
Please let me know if I misunderstand your suggestion.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:248
&gt; +        blendComponentExpression = SHADER(

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738750</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-10 02:00:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I have some ideas about how to factor this now that you&apos;re implementing the more complicated blend modes :)

I updated a new patch as you suggested.
Blend shader code becomes similar to blend formulas is spec! https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingseparable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739344</commentid>
    <comment_count>7</comment_count>
      <attachid>167959</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-10 15:35:26 -0700</bug_when>
    <thetext>Comment on attachment 167959
Patch

This looks great! Thanks for making the changes. I don&apos;t have any other change requests.

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

&gt;&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:234
&gt;&gt; +        blendComponentExpression = SHADER(
&gt; 
&gt; I don&apos;t check the divide by zero, because 1.0 - Cs can not zero if Cs &lt; 1.0.
&gt; I don&apos;t use clamp, because we are checking Cs &lt; 1.0, not Co &lt; 1.0. (clamp(genIType x, genIType  minVal, genIType  maxVal))
&gt; Please let me know if I misunderstand your suggestion.

Ok, the divide by zero check should be fine.

Not using clamp should be fine, too.

Regarding clamp, my assumption was that some of these expressions could produce a Co that is out of the range [0.0, 1.0]. That would be a problem because the alpha compositing operation after this blending operation expects colors in the range [0.0, 1.0]. 

However, I analyzed the blending expressions and it appears they&apos;re all carefully crafted to make sure Co ends up in [0.0, 1.0] if Cs and Cb are in [0.0, 1.0]. Thus, I think what you have is ok, and we don&apos;t need an extra clamp(Co, 0.0, 1.0).

Unrelated to this bug, I think we need to clamp multipliedColor before passing it to css_BlendColor, so that Cs is in the [0.0, 1.0] range. A matrix multiplication can definitely push multipliedColor out of the [0.0, 1.0] range. I&apos;ll make a bug for this issue.

For the record, OS X Grapher [1] is amazing at analyzing these expressions. I made 3D graphs which mapped Co =&gt; z, Cb =&gt; x, Cb =&gt; y, and verified that z stayed between 0 and 1 while x and y were between 0 and 1.

[1]: http://en.wikipedia.org/wiki/Grapher</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739364</commentid>
    <comment_count>8</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-10 16:04:19 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Unrelated to this bug, I think we need to clamp multipliedColor before passing it to css_BlendColor, so that Cs is in the [0.0, 1.0] range. A matrix multiplication can definitely push multipliedColor out of the [0.0, 1.0] range. I&apos;ll make a bug for this issue.

I&apos;ve filed bug 98962.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739644</commentid>
    <comment_count>9</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-10 23:41:05 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Regarding clamp, my assumption was that some of these expressions could produce a Co that is out of the range [0.0, 1.0]. That would be a problem because the alpha compositing operation after this blending operation expects colors in the range [0.0, 1.0]. 

I see now why you mentioned clamp. Thank for explanation!

&gt; For the record, OS X Grapher [1] is amazing at analyzing these expressions. I made 3D graphs which mapped Co =&gt; z, Cb =&gt; x, Cb =&gt; y, and verified that z stayed between 0 and 1 while x and y were between 0 and 1.

Wow! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740316</commentid>
    <comment_count>10</comment_count>
      <attachid>168290</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-11 15:34:59 -0700</bug_when>
    <thetext>Created attachment 168290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740320</commentid>
    <comment_count>11</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-11 15:36:44 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=168290) [details]
&gt; Patch

There is typo in the changed test. I commented out some elements. This patch fixes that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740338</commentid>
    <comment_count>12</comment_count>
      <attachid>168290</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-10-11 15:48:00 -0700</bug_when>
    <thetext>Comment on attachment 168290
Patch

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

I think this looks great, but I have one minor concern that I&apos;d like Max&apos;s feedback on: we&apos;re now doing more work on the simple compositing operations - calling per-component functions. I wonder if it would be worth only dropping to css_BlendComponent if necessary. 

Hmm... I see that Max did in fact make this suggestion &quot;For the simpler blend modes that don&apos;t need to blend by component, we will overwrite this default value.&quot;

In that case I will r-. It should be pretty easy to add this.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:184
&gt;      // Cs: is the source color
&gt;      // Cb: is the backdrop color

This comment is now incorrect. These are color components (although see general comment on the patch)

&gt; LayoutTests/css3/filters/custom/custom-filter-blend-modes-expected.html:54
&gt; +    .hard-light-expected {
&gt; +        background-color: rgb(0%, 44%, 50%);
&gt; +    }

Is there a reason why you used % here but numbers elsewhere?

&gt; LayoutTests/css3/filters/custom/custom-filter-blend-modes.html:213
&gt; +    .color-burn-expected {
&gt; +        /*
&gt; +            ColorBurn:
&gt; +
&gt; +            Co = if(Cs &gt; 0)
&gt; +                     1 - min(1, (1 - Cb) / Cs)
&gt; +                 else
&gt; +                     0
&gt; +
&gt; +            r = 0
&gt; +            g = 1 - min(1, (1 - 0.3) / 0.6) = 0
&gt; +            b = 1 - min(1, (1 - 0.5) / 0.5) = 0
&gt; +        */
&gt; +        background-color: rgb(0, 0, 1);

I&apos;m not sure why this is rgb(0, 0, 1) when you calculated 0, 0, 0.

Also, this shows that we may need a more complex test for burn, since a completely black result doesn&apos;t really exercise much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740382</commentid>
    <comment_count>13</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-11 16:17:21 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 168290 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168290&amp;action=review
&gt; 
&gt; I think this looks great, but I have one minor concern that I&apos;d like Max&apos;s feedback on: we&apos;re now doing more work on the simple compositing operations - calling per-component functions. I wonder if it would be worth only dropping to css_BlendComponent if necessary. 
&gt; 
&gt; Hmm... I see that Max did in fact make this suggestion &quot;For the simpler blend modes that don&apos;t need to blend by component, we will overwrite this default value.&quot;

Unless the driver compiler is very smart, it&apos;s more efficient if we avoid calling the per-component functions for the simpler blend modes.

I didn&apos;t comment on this again since Huang&apos;s variant looks a little better. It&apos;s only managing one string for css_BlendComponent instead of two for css_BlendColor and css_BlendComponent. It&apos;s a small performance / complexity tradeoff.

In this case, I&apos;m leaning toward performance. Could you make that change please, Huang?

&gt; 
&gt; In that case I will r-. It should be pretty easy to add this.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:184
&gt; &gt;      // Cs: is the source color
&gt; &gt;      // Cb: is the backdrop color
&gt; 
&gt; This comment is now incorrect. These are color components (although see general comment on the patch)

If Huang makes the previous change, then it should be something like:
// Cs: is the source color in css_BlendColor() and the source color component in css_BlendComponent()
...

&gt; 
&gt; &gt; LayoutTests/css3/filters/custom/custom-filter-blend-modes-expected.html:54
&gt; &gt; +    .hard-light-expected {
&gt; &gt; +        background-color: rgb(0%, 44%, 50%);
&gt; &gt; +    }
&gt; 
&gt; Is there a reason why you used % here but numbers elsewhere?

I think the % maps nicely to the hand calculations above, but sometimes the % causes color rounding problems and we have to use the 8-bit number variants. (I wish we didn&apos;t have to! It would be nice if we could specify a color tolerance per test.)

&gt; 
&gt; &gt; LayoutTests/css3/filters/custom/custom-filter-blend-modes.html:213
&gt; &gt; +    .color-burn-expected {
&gt; &gt; +        /*
&gt; &gt; +            ColorBurn:
&gt; &gt; +
&gt; &gt; +            Co = if(Cs &gt; 0)
&gt; &gt; +                     1 - min(1, (1 - Cb) / Cs)
&gt; &gt; +                 else
&gt; &gt; +                     0
&gt; &gt; +
&gt; &gt; +            r = 0
&gt; &gt; +            g = 1 - min(1, (1 - 0.3) / 0.6) = 0
&gt; &gt; +            b = 1 - min(1, (1 - 0.5) / 0.5) = 0
&gt; &gt; +        */
&gt; &gt; +        background-color: rgb(0, 0, 1);
&gt; 
&gt; I&apos;m not sure why this is rgb(0, 0, 1) when you calculated 0, 0, 0.
&gt; 
&gt; Also, this shows that we may need a more complex test for burn, since a completely black result doesn&apos;t really exercise much.

Good point- perhaps we could use different input colors whose result isn&apos;t black.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740424</commentid>
    <comment_count>14</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-11 16:48:44 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 168290 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168290&amp;action=review
&gt; &gt; 
&gt; &gt; I think this looks great, but I have one minor concern that I&apos;d like Max&apos;s feedback on: we&apos;re now doing more work on the simple compositing operations - calling per-component functions. I wonder if it would be worth only dropping to css_BlendComponent if necessary. 
&gt; &gt; 
&gt; &gt; Hmm... I see that Max did in fact make this suggestion &quot;For the simpler blend modes that don&apos;t need to blend by component, we will overwrite this default value.&quot;
&gt; 
&gt; Unless the driver compiler is very smart, it&apos;s more efficient if we avoid calling the per-component functions for the simpler blend modes.
&gt; 
&gt; I didn&apos;t comment on this again since Huang&apos;s variant looks a little better. It&apos;s only managing one string for css_BlendComponent instead of two for css_BlendColor and css_BlendComponent. It&apos;s a small performance / complexity tradeoff.
&gt; 
&gt; In this case, I&apos;m leaning toward performance. Could you make that change please, Huang?

Of course, I&apos;ll change. I did miss those. sorry.

&gt; 
&gt; &gt; 
&gt; &gt; In that case I will r-. It should be pretty easy to add this.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:184
&gt; &gt; &gt;      // Cs: is the source color
&gt; &gt; &gt;      // Cb: is the backdrop color
&gt; &gt; 
&gt; &gt; This comment is now incorrect. These are color components (although see general comment on the patch)
&gt; 
&gt; If Huang makes the previous change, then it should be something like:
&gt; // Cs: is the source color in css_BlendColor() and the source color component in css_BlendComponent()
&gt; ...

Thanks!

&gt; 
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/css3/filters/custom/custom-filter-blend-modes-expected.html:54
&gt; &gt; &gt; +    .hard-light-expected {
&gt; &gt; &gt; +        background-color: rgb(0%, 44%, 50%);
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; Is there a reason why you used % here but numbers elsewhere?
&gt; 
&gt; I think the % maps nicely to the hand calculations above, but sometimes the % causes color rounding problems and we have to use the 8-bit number variants. (I wish we didn&apos;t have to! It would be nice if we could specify a color tolerance per test.)

I tested this test on Chromium, Gtk and Qt. I approached native ways. If this test passed on all platforms, I leaved %. If not, I found numbers to make this test pass.
A color tolerance per test is holy grail. We really need it to reduce creating tests and maintenance cost for each platform.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/css3/filters/custom/custom-filter-blend-modes.html:213
&gt; &gt; &gt; +        background-color: rgb(0, 0, 1);
&gt; &gt; 
&gt; &gt; I&apos;m not sure why this is rgb(0, 0, 1) when you calculated 0, 0, 0.
&gt; &gt; 
&gt; &gt; Also, this shows that we may need a more complex test for burn, since a completely black result doesn&apos;t really exercise much.
&gt; 
&gt; Good point- perhaps we could use different input colors whose result isn&apos;t black.

Sadly, linux chromium failed when rgb(0, 0, 0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740443</commentid>
    <comment_count>15</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-11 16:58:06 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 168290 [details])
&gt; Also, this shows that we may need a more complex test for burn, since a completely black result doesn&apos;t really exercise much.

I agree. I&apos;ll make new test or update existing test for burn, also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741424</commentid>
    <comment_count>16</comment_count>
      <attachid>168543</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-12 23:04:05 -0700</bug_when>
    <thetext>Created attachment 168543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741427</commentid>
    <comment_count>17</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-12 23:23:48 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; (From update of attachment 168290 [details] [details] [details])
&gt; &gt; &gt; Hmm... I see that Max did in fact make this suggestion &quot;For the simpler blend modes that don&apos;t need to blend by component, we will overwrite this default value.&quot;

Done. I did misunderstand what Max instructed.

&gt; &gt; If Huang makes the previous change, then it should be something like:
&gt; &gt; // Cs: is the source color in css_BlendColor() and the source color component in css_BlendComponent()
&gt; &gt; ...

Done.

&gt; &gt; I think the % maps nicely to the hand calculations above, but sometimes the % causes color rounding problems and we have to use the 8-bit number variants. (I wish we didn&apos;t have to! It would be nice if we could specify a color tolerance per test.)&gt; 
&gt; A color tolerance per test is holy grail. We really need it to reduce creating tests and maintenance cost for each platform.

Currently, we can set the tolerance of image differences per execution of new-run-webkit-tests. I wish we could specify a color tolerance per test as Max said.

We need the way to send meta data per test to new-run-webkit-tests. I think there are two solutions.
1. Specify the tolerance in a file name. For example, custom-filter-blend-modes-TOLERANCE=5.html
2. Create a meta file. If a test does not have a meta file, apply the default setting. For example, custom-filter-blend-modes-meta.txt including TOLERANCE=5.

IMHO the pixel test is the only way to check the regression of CSS Shaders. All platforms output slightly different pixels. We need a solution soon.

&gt; &gt; &gt; Also, this shows that we may need a more complex test for burn, since a completely black result doesn&apos;t really exercise much.
&gt; &gt; 
&gt; &gt; Good point- perhaps we could use different input colors whose result isn&apos;t black.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748994</commentid>
    <comment_count>18</comment_count>
      <attachid>168543</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 14:35:07 -0700</bug_when>
    <thetext>Comment on attachment 168543
Patch

Clearing flags on attachment: 168543

Committed r132268: &lt;http://trac.webkit.org/changeset/132268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748995</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 14:35:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167299</attachid>
            <date>2012-10-05 03:34:11 -0700</date>
            <delta_ts>2012-10-10 01:46:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98504-20121005193316.patch</filename>
            <type>text/plain</type>
            <size>14751</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFhOTJlNzM5MjJiMTUx
MmI3NTg3M2JiYTNkZDY0Njk2YmM1ZmFlOC4uNmYwNmNjMzZkNjQwNWI5MTZkOGEyMGZlNDY5Y2I0
ZDJhODJlNWZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEwLTA1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gSW1wbGVtZW50IG92ZXJsYXksIGNvbG9yLWRvZGdlLCBjb2xvci1idXJuLCBoYXJkLWxp
Z2h0LCBzb2Z0LWxpZ2h0IGJsZW5kIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgZXhwcmVzc2lvbnMgZm9yIHRoZSBhZm9yZW1lbnRpb25l
ZCBibGVuZCBtb2Rlcy4gVGhlIGV4cHJlc3Npb25zIGFyZSBsaWZ0ZWQKKyAgICAgICAgZGlyZWN0
bHkgZnJvbSB0aGUgQ1NTIENvbXBvc2l0aW5nIGFuZCBCbGVuZGluZyBzcGVjIFsxXS4gV2ViS2l0
IGFkZHMgdGhlc2UKKyAgICAgICAgYmxlbmRpbmcgZXhwcmVzc2lvbnMgdG8gdGhlIGF1dGhvcidz
IHNoYWRlci4KKworICAgICAgICBbMV06IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvRlhURi9yYXdm
aWxlL3RpcC9jb21wb3NpdGluZy9pbmRleC5odG1sI2JsZW5kaW5nbm9ybWFsCisKKyAgICAgICAg
VGVzdDogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKToKKwogMjAxMi0xMC0wNCAgSHVhbmcgRG9uZ3N1
bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbQ1NTIFNoYWRlcnNdIElt
cGxlbWVudCBhbGwgY29tcG9zaXRlIG9wZXJhdG9ycyBleGNlcHQgZGVzdGluYXRpb24gYW5kIGxp
Z2h0ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcApp
bmRleCBkYTYxZGY4ZDQ3OGE4YmQ0ODQ3Y2E2Y2RmNGIwMTYxMjg1YmQ1NzdmLi5hNWY0MmJjMjAx
MjFlMjhlYjIyOWJiZmYyZWY0YTc3ZTYzNTNmMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKQEAgLTE4Nyw2ICsxODcsNyBAQCBTdHJpbmcgQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1vZGUg
YmxlbmRNb2RlKQogICAgIC8vIENzOiBpcyB0aGUgc291cmNlIGNvbG9yCiAgICAgLy8gQ2I6IGlz
IHRoZSBiYWNrZHJvcCBjb2xvcgogICAgIGNvbnN0IGNoYXIqIGV4cHJlc3Npb24gPSAwOworICAg
IGNvbnN0IGNoYXIqIGF1eGlsaWFyeUV4cHJlc3Npb24gPSAiIjsKICAgICBzd2l0Y2ggKGJsZW5k
TW9kZSkgewogICAgIGNhc2UgQmxlbmRNb2RlTm9ybWFsOgogICAgICAgICBleHByZXNzaW9uID0g
IkNzIjsKQEAgLTIxMCwxMCArMjExLDEyNCBAQCBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFsaWRhdGVk
UHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1vZGUgYmxlbmRNb2RlKQogICAgICAg
ICBleHByZXNzaW9uID0gIkNiICsgQ3MgLSAyLjAgKiBDYiAqIENzIjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCbGVuZE1vZGVPdmVybGF5OgorICAgICAgICAvKgorICAgICAgICAgICAgQ28g
PSBIYXJkTGlnaHQoQ3MsIENiKQorICAgICAgICAgICAgICAgPSBpZihDYiA8PSAwLjUpCisgICAg
ICAgICAgICAgICAgICAgICBNdWx0aXBseShDcywgMiB4IENiKQorICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICBTY3JlZW4oQ3MsIDIgeCBDYiAtIDEpCisgICAgICAg
ICAgICAgICA9IGlmKENiIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIENzIHggKDIgeCBD
YikKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgQ3MgKyAoMiB4
IENiIC0gMSkgLSAoQ3MgeCAoMiB4IENiIC0gMSkpCisgICAgICAgICovCisgICAgICAgIGF1eGls
aWFyeUV4cHJlc3Npb24gPSBTSEFERVIoCisgICAgICAgICAgICBtZWRpdW1wIHZlYzMgbXVsdGlw
bHkgPSBDcyAqICgyLjAgKiBDYik7CisgICAgICAgICAgICBtZWRpdW1wIHZlYzMgc2NyZWVuID0g
Q3MgKyAoMi4wICogQ2IgLSAxLjApIC0gKENzICogKDIuMCAqIENiIC0gMS4wKSk7CisgICAgICAg
ICAgICBpZiAoQ2IuciA+IDAuNSkKKyAgICAgICAgICAgICAgICBtdWx0aXBseS5yID0gc2NyZWVu
LnI7CisgICAgICAgICAgICBpZiAoQ2IuZyA+IDAuNSkKKyAgICAgICAgICAgICAgICBtdWx0aXBs
eS5nID0gc2NyZWVuLmc7CisgICAgICAgICAgICBpZiAoQ2IuYiA+IDAuNSkKKyAgICAgICAgICAg
ICAgICBtdWx0aXBseS5iID0gc2NyZWVuLmI7CisgICAgICAgICk7CisgICAgICAgIGV4cHJlc3Np
b24gPSAibXVsdGlwbHkiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZUNvbG9y
RG9kZ2U6CisgICAgICAgIC8qCisgICAgICAgICAgICBDbyA9IGlmKENzIDwgMSkKKyAgICAgICAg
ICAgICAgICAgICAgIG1pbigxLCBDYiAvICgxIC0gQ3MpKQorICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAxCisgICAgICAgICovCisgICAgICAgIGF1eGlsaWFyeUV4
cHJlc3Npb24gPSBTSEFERVIoCisgICAgICAgICAgICBtZWRpdW1wIHZlYzMgb25lID0gdmVjMygx
LjAsIDEuMCwgMS4wKTsKKyAgICAgICAgICAgIG1lZGl1bXAgdmVjMyBCID0gbWluKG9uZSwgQ2Ig
LyAob25lIC0gQ3MpKTsKKyAgICAgICAgICAgIGlmIChDcy5yID49IDEuMCkKKyAgICAgICAgICAg
ICAgICBCLnIgPSAxLjA7CisgICAgICAgICAgICBpZiAoQ3MuZyA+PSAxLjApCisgICAgICAgICAg
ICAgICAgQi5nID0gMS4wOworICAgICAgICAgICAgaWYgKENzLmIgPj0gMS4wKQorICAgICAgICAg
ICAgICAgIEIuYiA9IDEuMDsKKyAgICAgICAgKTsKKyAgICAgICAgZXhwcmVzc2lvbiA9ICJCIjsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVDb2xvckJ1cm46CisgICAgICAgIC8q
CisgICAgICAgICAgICBDbyA9IGlmKENzID4gMCkKKyAgICAgICAgICAgICAgICAgICAgIDEgLSBt
aW4oMSwgKDEgLSBDYikgLyBDcykKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgMAorICAgICAgICAqLworICAgICAgICBhdXhpbGlhcnlFeHByZXNzaW9uID0gU0hB
REVSKAorICAgICAgICAgICAgbWVkaXVtcCB2ZWMzIG9uZSA9IHZlYzMoMS4wLCAxLjAsIDEuMCk7
CisgICAgICAgICAgICBtZWRpdW1wIHZlYzMgQiA9IG9uZSAtIG1pbihvbmUsIChvbmUgLSBDYikg
LyBDcyk7CisgICAgICAgICAgICBpZiAoQ3MuciA8PSAwLjApCisgICAgICAgICAgICAgICAgQi5y
ID0gMC4wOworICAgICAgICAgICAgaWYgKENzLmcgPD0gMC4wKQorICAgICAgICAgICAgICAgIEIu
ZyA9IDAuMDsKKyAgICAgICAgICAgIGlmIChDcy5iIDw9IDAuMCkKKyAgICAgICAgICAgICAgICBC
LmIgPSAwLjA7CisgICAgICAgICk7CisgICAgICAgIGV4cHJlc3Npb24gPSAiQiI7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlSGFyZExpZ2h0OgorICAgICAgICAvKgorICAgICAg
ICAgICAgQ28gPSBpZihDcyA8PSAwLjUpCisgICAgICAgICAgICAgICAgICAgICBNdWx0aXBseShD
YiwgMiB4IENzKQorICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICBT
Y3JlZW4oQ2IsIDIgeCBDcyAtMSkKKyAgICAgICAgICAgICAgID0gaWYoQ3MgPD0gMC41KQorICAg
ICAgICAgICAgICAgICAgICAgQ2IgeCAoMiB4IENzKQorICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICBDYiArICgyIHggQ3MgLSAxKSAtIChDYiB4ICgyIHggQ3MgLSAx
KSkKKyAgICAgICAgKi8KKyAgICAgICAgYXV4aWxpYXJ5RXhwcmVzc2lvbiA9IFNIQURFUigKKyAg
ICAgICAgICAgIG1lZGl1bXAgdmVjMyBtdWx0aXBseSA9IENiICogKDIuMCAqIENzKTsKKyAgICAg
ICAgICAgIG1lZGl1bXAgdmVjMyBzY3JlZW4gPSBDYiArICgyLjAgKiBDcyAtIDEuMCkgLSAoQ2Ig
KiAoMi4wICogQ3MgLSAxLjApKTsKKyAgICAgICAgICAgIGlmIChDcy5yID4gMC41KQorICAgICAg
ICAgICAgICAgIG11bHRpcGx5LnIgPSBzY3JlZW4ucjsKKyAgICAgICAgICAgIGlmIChDcy5nID4g
MC41KQorICAgICAgICAgICAgICAgIG11bHRpcGx5LmcgPSBzY3JlZW4uZzsKKyAgICAgICAgICAg
IGlmIChDcy5iID4gMC41KQorICAgICAgICAgICAgICAgIG11bHRpcGx5LmIgPSBzY3JlZW4uYjsK
KyAgICAgICAgKTsKKyAgICAgICAgZXhwcmVzc2lvbiA9ICJtdWx0aXBseSI7CisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlU29mdExpZ2h0OgorICAgICAgICAvKgorICAgICAgICAg
ICAgQ28gPSBpZihDcyA8PSAwLjUpCisgICAgICAgICAgICAgICAgICAgICBDYiAtICgxIC0gMiB4
IENzKSB4IENiIHggKDEgLSBDYikKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgQ2IgKyAoMiB4IENzIC0gMSkgeCAoRChDYikgLSBDYikKKworICAgICAgICAgICAg
d2l0aAorCisgICAgICAgICAgICBEKENiKSA9IGlmKENiIDw9IDAuMjUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAoMTYgKiBDYiAtIDEyKSB4IENiICsgNCkgeCBDYgorICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBzcXJ0KENiKQorICAgICAgICAqLwor
ICAgICAgICBhdXhpbGlhcnlFeHByZXNzaW9uID0gU0hBREVSKAorICAgICAgICAgICAgbWVkaXVt
cCB2ZWMzIGxvd0QgPSAoKDE2LjAgKiBDYiAtIDEyLjApICogQ2IgKyA0LjApICogQ2I7CisgICAg
ICAgICAgICBtZWRpdW1wIHZlYzMgaGlnaEQgPSBzcXJ0KENiKTsKKyAgICAgICAgICAgIGlmIChD
Yi5yID4gMC4yNSkKKyAgICAgICAgICAgICAgICBsb3dELnIgPSBoaWdoRC5yOworICAgICAgICAg
ICAgaWYgKENiLmcgPiAwLjI1KQorICAgICAgICAgICAgICAgIGxvd0QuZyA9IGhpZ2hELmc7Cisg
ICAgICAgICAgICBpZiAoQ2IuYiA+IDAuMjUpCisgICAgICAgICAgICAgICAgbG93RC5iID0gaGln
aEQuYjsKKyAgICAgICAgICAgIG1lZGl1bXAgdmVjMyBsb3dCID0gQ2IgLSAoMS4wIC0gMi4wICog
Q3MpICogQ2IgKiAoMS4wIC0gQ2IpOworICAgICAgICAgICAgbWVkaXVtcCB2ZWMzIGhpZ2hCID0g
Q2IgKyAoMi4wICogQ3MgLSAxLjApICogKGxvd0QgLSBDYik7CisgICAgICAgICAgICBpZiAoQ3Mu
ciA+IDAuNSkKKyAgICAgICAgICAgICAgICBsb3dCLnIgPSBoaWdoQi5yOworICAgICAgICAgICAg
aWYgKENzLmcgPiAwLjUpCisgICAgICAgICAgICAgICAgbG93Qi5nID0gaGlnaEIuZzsKKyAgICAg
ICAgICAgIGlmIChDcy5iID4gMC41KQorICAgICAgICAgICAgICAgIGxvd0IuYiA9IGhpZ2hCLmI7
CisgICAgICAgICk7CisgICAgICAgIGV4cHJlc3Npb24gPSAibG93QiI7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQmxlbmRNb2RlSHVlOgogICAgIGNhc2UgQmxlbmRNb2RlU2F0dXJhdGlvbjoK
ICAgICBjYXNlIEJsZW5kTW9kZUNvbG9yOgpAQCAtMjI2LDkgKzM0MSwxMCBAQCBTdHJpbmcgQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1vZGUg
YmxlbmRNb2RlKQogICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdChTSEFERVIoCiAgICAgICAgIG1l
ZGl1bXAgdmVjMyBjc3NfQmxlbmQobWVkaXVtcCB2ZWMzIENiLCBtZWRpdW1wIHZlYzMgQ3MpCiAg
ICAgICAgIHsKKyAgICAgICAgICAgICVzCiAgICAgICAgICAgICByZXR1cm4gJXM7CiAgICAgICAg
IH0KLSAgICApLCBleHByZXNzaW9uKTsKKyAgICApLCBhdXhpbGlhcnlFeHByZXNzaW9uLCBleHBy
ZXNzaW9uKTsKIH0KIAogU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmNvbXBv
c2l0ZUZ1bmN0aW9uU3RyaW5nKENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDUwMThmYzg0NWQwNDJmYjE1N2E2MDMyMDBmMWIwOTJlYzI5YWNlMTcuLmFmMjAwNGYx
YTA5ZDNjOGVlYWU3MGUxZGQyYTYyNTc0M2E1MjcxNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0xMC0wNSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwor
ICAgICAgICBbQ1NTIFNoYWRlcnNdIEltcGxlbWVudCBvdmVybGF5LCBjb2xvci1kb2RnZSwgY29s
b3ItYnVybiwgaGFyZC1saWdodCwgc29mdC1saWdodCBibGVuZCBtb2Rlcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSB0ZXN0IGZvciB0
aGUgYWZvcmVtZW50aW9uZWQgYmxlbmQgbW9kZXMuCisKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMv
Y3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9kZXMtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAg
KiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9kZXMuaHRtbDoKKwog
MjAxMi0xMC0wNCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAog
ICAgICAgICBbQ1NTIFNoYWRlcnNdIEltcGxlbWVudCBhbGwgY29tcG9zaXRlIG9wZXJhdG9ycyBl
eGNlcHQgZGVzdGluYXRpb24gYW5kIGxpZ2h0ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9kZXMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVuZC1t
b2Rlcy1leHBlY3RlZC5odG1sCmluZGV4IGVlMjM1NTNkODYwNTM1ZWQ2MzAwODMzMDZlYzA4ZTFl
YWRkMTU4OGEuLmE2MTI1Y2NlNTVhZGNjYmM2Mjk4MzZlMTQwZjhkODQwMzAyMDVmOTQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVu
ZC1tb2Rlcy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0
b20vY3VzdG9tLWZpbHRlci1ibGVuZC1tb2Rlcy1leHBlY3RlZC5odG1sCkBAIC00MCw2ICs0MCwy
MSBAQAogICAgIC5leGNsdXNpb24tZXhwZWN0ZWQgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoMjU1LCAxMzgsIDEyNyk7CiAgICAgfQorICAgIC5vdmVybGF5LWV4cGVjdGVkIHsKKyAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgOTEsIDEyOCk7CisgICAgfQorICAgIC5j
b2xvci1kb2RnZS1leHBlY3RlZCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUs
IDE5MCwgMjU1KTsKKyAgICB9CisgICAgLmNvbG9yLWJ1cm4tZXhwZWN0ZWQgeworICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMSk7CisgICAgfQorICAgIC5oYXJkLWxpZ2h0LWV4
cGVjdGVkIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAlLCA0NCUsIDUwJSk7Cisg
ICAgfQorICAgIC5zb2Z0LWxpZ2h0LWV4cGVjdGVkIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogcmdiKDI1NSwgODksIDEyOCk7CisgICAgfQogICAgIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9k
eT4KQEAgLTcxLDcgKzg2LDI3IEBACiAgICAgICAgIDxkaXYgY2xhc3M9ImV4Y2x1c2lvbi1leHBl
Y3RlZCI+PC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9ImV4Y2x1c2lvbi1leHBlY3RlZCI+PC9k
aXY+CiAgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1leHBlY3RlZCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9Im92ZXJsYXktZXhwZWN0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgogICAgIDwhLS0KKyAgICA8
ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1k
b2RnZS1leHBlY3RlZCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWRvZGdlLWV4
cGVjdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFy
ZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1idXJuLWV4cGVjdGVkIj48L2Rpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iY29sb3ItYnVybi1leHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aGFyZC1saWdodC1leHBlY3RlZCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImhhcmQtbGln
aHQtZXhwZWN0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBhaXItb2Yt
c3F1YXJlcyI+CisgICAgICAgIDxkaXYgY2xhc3M9InNvZnQtbGlnaHQtZXhwZWN0ZWQiPjwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJzb2Z0LWxpZ2h0LWV4cGVjdGVkIj48L2Rpdj4KKyAgICA8
L2Rpdj4KICAgICAgICAgSWYgeW91IGFkZCBtb3JlIGJsZW5kIG1vZGVzIHRvIHRoaXMgcGFnZSwg
YmUgY2FyZWZ1bCBub3QgdG8gZXhjZWVkIDYwMHB4IGluIAogICAgICAgICBoZWlnaHQsIHNpbmNl
IER1bXBSZW5kZXJUcmVlIGNvbXBhcmVzIDgwMHg2MDAgc25hcHNob3RzIG9mIHRoaXMgcGFnZS4K
ICAgICAtLT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3Vz
dG9tLWZpbHRlci1ibGVuZC1tb2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwKaW5kZXggMjZhYjAyYTcxNjZjNDQ0
NDlkNDA2M2NjOGRlNTc5YTlmODAzMTg1OC4uNDUyMjc1ZmZjNjEyM2M2M2I5ODU0NDUwOGNhMGQz
NGIwNzI0ZjgzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwKQEAgLTE0Nyw2ICsxNDcs
MTI0IEBACiAgICAgICAgICovCiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDEz
OCwgMTI3KTsKICAgICB9CisgICAgLm92ZXJsYXkgeworICAgICAgICAtd2Via2l0LWZpbHRlcjog
Y3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIG92ZXJsYXkg
c291cmNlLWF0b3ApLCBtaXhfY29sb3IgMC4wIDAuNiAwLjUgMS4wKTsKKyAgICB9CisgICAgLm92
ZXJsYXktZXhwZWN0ZWQgeworICAgICAgICAvKgorICAgICAgICAgICAgT3ZlcmxheToKKworICAg
ICAgICAgICAgQ28gPSBIYXJkTGlnaHQoQ3MsIENiKQorICAgICAgICAgICAgICAgPSBpZihDYiA8
PSAwLjUpCisgICAgICAgICAgICAgICAgICAgICBNdWx0aXBseShDcywgMiAqIENiKQorICAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICBTY3JlZW4oQ3MsIDIgKiBDYiAt
IDEpCisgICAgICAgICAgICAgICA9IGlmKENiIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAg
IENzICogKDIgKiBDYikKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgQ3MgKyAoMiAqIENiIC0gMSkgLSAoQ3MgKiAoMiAqIENiIC0gMSkpCisKKyAgICAgICAgICAg
IHIgPSAwICsgKDIgKiAxIC0gMSkgLSAoMCAqICgyICogMSAtIDEpKSA9IDEKKyAgICAgICAgICAg
IGcgPSAwLjYgKiAoMiAqIDAuMykgPSAwLjM2CisgICAgICAgICAgICBiID0gMC41ICogKDIgKiAw
LjUpID0gMC41CisKKyAgICAgICAgICAgIFRoZSBlcnJvciBpbiB0aGUgY29sb3IgY2FsY3VsYXRp
b24gcmVxdWlyZXMgdXMgdG8gdXNlIHRoZSA4LWJpdCB2YWx1ZXMgZm9yOgorICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCUsIDM2JSwgNTAlKTsKKyAgICAgICAgKi8KKyAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgOTEsIDEyOCk7CisgICAgfQorICAgIC5jb2xv
ci1kb2RnZSB7CisgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcu
Li9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgY29sb3ItZG9kZ2Ugc291cmNlLWF0b3ApLCBtaXhf
Y29sb3IgMC4wIDAuNiAwLjUgMS4wKTsKKyAgICB9CisgICAgLmNvbG9yLWRvZGdlLWV4cGVjdGVk
IHsKKyAgICAgICAgLyoKKyAgICAgICAgICAgIENvbG9yRG9kZ2U6CisKKyAgICAgICAgICAgIENv
ID0gaWYoQ3MgPCAxKQorICAgICAgICAgICAgICAgICAgICAgbWluKDEsIENiIC8gKDEgLSBDcykp
CisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIDEKKworICAgICAg
ICAgICAgciA9IG1pbigxLCAxIC8gKDEgLSAwKSkgPSAxCisgICAgICAgICAgICBnID0gbWluKDEs
IDAuMyAvICgxIC0gMC42KSkgPSAwLjc1CisgICAgICAgICAgICBiID0gbWluKDEsIDAuNSAvICgx
IC0gMC41KSkgPSAxCisKKyAgICAgICAgICAgIFRoZSBlcnJvciBpbiB0aGUgY29sb3IgY2FsY3Vs
YXRpb24gcmVxdWlyZXMgdXMgdG8gdXNlIHRoZSA4LWJpdCB2YWx1ZXMgZm9yOgorICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCUsIDc1JSwgMTAwJSk7CisgICAgICAgICovCisg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDE5MCwgMjU1KTsKKyAgICB9CisgICAg
LmNvbG9yLWJ1cm4geworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVy
bCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNvbG9yLWJ1cm4gc291cmNlLWF0b3ApLCBt
aXhfY29sb3IgMC4wIDAuNiAwLjUgMS4wKTsKKyAgICB9CisgICAgLmNvbG9yLWJ1cm4tZXhwZWN0
ZWQgeworICAgICAgICAvKgorICAgICAgICAgICAgQ29sb3JCdXJuOgorCisgICAgICAgICAgICBD
byA9IGlmKENzID4gMCkKKyAgICAgICAgICAgICAgICAgICAgIDEgLSBtaW4oMSwgKDEgLSBDYikg
LyBDcykKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgMAorCisg
ICAgICAgICAgICByID0gMAorICAgICAgICAgICAgZyA9IDEgLSBtaW4oMSwgKDEgLSAwLjMpIC8g
MC42KSA9IDAKKyAgICAgICAgICAgIGIgPSAxIC0gbWluKDEsICgxIC0gMC41KSAvIDAuNSkgPSAw
CisgICAgICAgICovCisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAxKTsKKyAg
ICB9CisgICAgLmhhcmQtbGlnaHQgeworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5v
bmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGhhcmQtbGlnaHQgc291cmNl
LWF0b3ApLCBtaXhfY29sb3IgMC4wIDAuNiAwLjUgMS4wKTsKKyAgICB9CisgICAgLmhhcmQtbGln
aHQtZXhwZWN0ZWQgeworICAgICAgICAvKgorICAgICAgICAgICAgSGFyZExpZ2h0OgorCisgICAg
ICAgICAgICBDbyA9IGlmKENzIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIE11bHRpcGx5
KENiLCAyICogQ3MpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
IFNjcmVlbihDYiwgMiAqIENzIC0xKQorICAgICAgICAgICAgICAgPSBpZihDcyA8PSAwLjUpCisg
ICAgICAgICAgICAgICAgICAgICBDYiAqICgyICogQ3MpCisgICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgIENiICsgKDIgKiBDcyAtIDEpIC0gKENiICogKDIgKiBDcyAt
IDEpKQorCisgICAgICAgICAgICByID0gMSAqICgyICogMCkgPSAwCisgICAgICAgICAgICBnID0g
MC4zICsgKDIgKiAwLjYgLSAxKSAtICgwLjMgKiAoMiAqIDAuNiAtIDEpKSA9IDAuNDQKKyAgICAg
ICAgICAgIGIgPSAwLjUgKiAoMiAqIDAuNSkgPSAwLjUKKyAgICAgICAgKi8KKyAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDAlLCA0NCUsIDUwJSk7CisgICAgfQorICAgIC5zb2Z0LWxpZ2h0
IHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291
cmNlcy9taXgtY29sb3IuZnMnKSBzb2Z0LWxpZ2h0IHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAu
MCAwLjYgMC41IDEuMCk7CisgICAgfQorICAgIC5zb2Z0LWxpZ2h0LWV4cGVjdGVkIHsKKyAgICAg
ICAgLyoKKyAgICAgICAgICAgIFNvZnRMaWdodDoKKworICAgICAgICAgICAgQ28gPSBpZihDcyA8
PSAwLjUpCisgICAgICAgICAgICAgICAgICAgICBDYiAtICgxIC0gMiAqIENzKSAqIENiICogKDEg
LSBDYikKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgQ2IgKyAo
MiAqIENzIC0gMSkgKiAoRChDYikgLSBDYikKKworICAgICAgICAgICAgd2l0aAorCisgICAgICAg
ICAgICBEKENiKSA9IGlmKENiIDw9IDAuMjUpCisgICAgICAgICAgICAgICAgICAgICAgICAoMTYg
KiBDYiAtIDEyKSAqIENiICsgNCkgKiBDYgorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICBzcXJ0KENiKQorCisgICAgICAgICAgICBELnIgPSBzcXJ0KDEp
ID0gMQorICAgICAgICAgICAgRC5nID0gc3FydCgwLjMpID0gMC41NDc3MjI1NTc1MDUxNjYKKyAg
ICAgICAgICAgIEQuYiA9IHNxcnQoMC41KSA9IDAuNzA3MTA2NzgxMTg2NTQ4CisgICAgICAgICAg
ICByID0gMSAtICgxIC0gMiAqIDApICogMSAqICgxIC0gMSkgPSAxCisgICAgICAgICAgICBnID0g
MC4zICsgKDIgKiAwLjYgLSAxKSAqIChELmcgLSAwLjMpID0gMC4zNDk1NDQ1MTE1MDEwMzMKKyAg
ICAgICAgICAgIGIgPSAwLjUgLSAoMSAtIDIgKiAwLjUpICogMC41ICogKDEgLSAwLjUpID0gMC41
CisKKyAgICAgICAgICAgIFRoZSBlcnJvciBpbiB0aGUgY29sb3IgY2FsY3VsYXRpb24gcmVxdWly
ZXMgdXMgdG8gdXNlIHRoZSA4LWJpdCB2YWx1ZXMgZm9yOgorICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmdiKDEwMCUsIDM0Ljk1NDQ1MSUsIDUwJSk7CisgICAgICAgICovCisgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDg5LCAxMjgpOworICAgIH0KICAgICA8L3N0eWxl
PgogPC9oZWFkPgogPGJvZHk+CkBAIC0xNzgsNyArMjk2LDI3IEBACiAgICAgICAgIDxkaXYgY2xh
c3M9ImRlc3RpbmF0aW9uIGV4Y2x1c2lvbiI+PC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9ImV4
Y2x1c2lvbi1leHBlY3RlZCI+PC9kaXY+CiAgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFp
ci1vZi1zcXVhcmVzIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZGVzdGluYXRpb24gb3ZlcmxheSI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktZXhwZWN0ZWQiPjwvZGl2PgorICAg
IDwvZGl2PgogICAgIDwhLS0KKyAgICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJkZXN0aW5hdGlvbiBjb2xvci1kb2RnZSI+PC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9ImNvbG9yLWRvZGdlLWV4cGVjdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0
aW5hdGlvbiBjb2xvci1idXJuIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItYnVy
bi1leHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1z
cXVhcmVzIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZGVzdGluYXRpb24gaGFyZC1saWdodCI+PC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImhhcmQtbGlnaHQtZXhwZWN0ZWQiPjwvZGl2PgorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBhaXItb2Ytc3F1YXJlcyI+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImRlc3RpbmF0aW9uIHNvZnQtbGlnaHQiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNz
PSJzb2Z0LWxpZ2h0LWV4cGVjdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KICAgICAgICAgSWYgeW91
IGFkZCBtb3JlIGJsZW5kIG1vZGVzIHRvIHRoaXMgcGFnZSwgYmUgY2FyZWZ1bCBub3QgdG8gZXhj
ZWVkIDYwMHB4IGluIAogICAgICAgICBoZWlnaHQsIHNpbmNlIER1bXBSZW5kZXJUcmVlIGNvbXBh
cmVzIDgwMHg2MDAgc25hcHNob3RzIG9mIHRoaXMgcGFnZS4KICAgICAtLT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167959</attachid>
            <date>2012-10-10 01:46:44 -0700</date>
            <delta_ts>2012-10-11 15:34:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98504-20121010174542.patch</filename>
            <type>text/plain</type>
            <size>15503</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE1NmQxZjgxY2VlZGE4
ZGI3MzRlN2Y5NTM2ODYxZWJkNWU5NDk2NS4uNDllMmQ0MTFlMDQwODEyMzU0ZWQ2OWIwMGRiMjhi
NTFlMThmMWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTEwICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gSW1wbGVtZW50IG92ZXJsYXksIGNvbG9yLWRvZGdlLCBjb2xvci1idXJuLCBoYXJkLWxp
Z2h0LCBzb2Z0LWxpZ2h0IGJsZW5kIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgZXhwcmVzc2lvbnMgZm9yIHRoZSBhZm9yZW1lbnRpb25l
ZCBibGVuZCBtb2Rlcy4gVGhlIGV4cHJlc3Npb25zIGFyZSBsaWZ0ZWQKKyAgICAgICAgZGlyZWN0
bHkgZnJvbSB0aGUgQ1NTIENvbXBvc2l0aW5nIGFuZCBCbGVuZGluZyBzcGVjIFsxXS4gV2ViS2l0
IGFkZHMgdGhlc2UKKyAgICAgICAgYmxlbmRpbmcgZXhwcmVzc2lvbnMgdG8gdGhlIGF1dGhvcidz
IHNoYWRlci4KKworICAgICAgICBbMV06IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvRlhURi9yYXdm
aWxlL3RpcC9jb21wb3NpdGluZy9pbmRleC5odG1sI2JsZW5kaW5nbm9ybWFsCisKKyAgICAgICAg
VGVzdDogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtOjpyZXdyaXRlTWl4RnJhZ21lbnRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyk6CisKIDIwMTIt
MTAtMDkgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAg
ICAgW1dLMl0gQWRkIEN1c3RvbUZpbHRlck9wZXJhdGlvbiBzZXJpYWxpemF0aW9uIGluIEFyZ3Vt
ZW50Q29kZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNw
cAppbmRleCBhMTM3OWRmNjZjMmRlODI2ODdjYzU0NjJkZjFlZDIzNmQxM2MzNGUzLi41NmQ1NGMx
ODVmNjZmOTM5NjY5YjQ1ODEwYzlmNjMzZWFmMGU5ZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dy
YW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIEN1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OnJld3JpdGVNaXhGcmFnbWVudFNoYWRlcigpCiAg
ICAgICAgICAgICBjc3NfbWFpbigpOwogICAgICAgICAgICAgbWVkaXVtcCB2ZWM0IG9yaWdpbmFs
Q29sb3IgPSB0ZXh0dXJlMkQoY3NzX3VfdGV4dHVyZSwgY3NzX3ZfdGV4Q29vcmQpOwogICAgICAg
ICAgICAgbWVkaXVtcCB2ZWM0IG11bHRpcGxpZWRDb2xvciA9IGNzc19Db2xvck1hdHJpeCAqIG9y
aWdpbmFsQ29sb3I7Ci0gICAgICAgICAgICBtZWRpdW1wIHZlYzMgYmxlbmRlZENvbG9yID0gY3Nz
X0JsZW5kKG11bHRpcGxpZWRDb2xvci5yZ2IsIGNzc19NaXhDb2xvci5yZ2IpOworICAgICAgICAg
ICAgbWVkaXVtcCB2ZWMzIGJsZW5kZWRDb2xvciA9IGNzc19CbGVuZENvbG9yKG11bHRpcGxpZWRD
b2xvci5yZ2IsIGNzc19NaXhDb2xvci5yZ2IpOwogICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0g
Y3NzX0NvbXBvc2l0ZShtdWx0aXBsaWVkQ29sb3IucmdiLCBtdWx0aXBsaWVkQ29sb3IuYSwgYmxl
bmRlZENvbG9yLnJnYiwgY3NzX01peENvbG9yLmEpOwogICAgICAgICB9CiAgICAgKSk7CkBAIC0x
ODIsNDkgKzE4MiwxNDEgQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmJs
ZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICAvLyBodHRwczovL2R2
Y3MudzMub3JnL2hnL0ZYVEYvcmF3ZmlsZS90aXAvY29tcG9zaXRpbmcvaW5kZXguaHRtbCNibGVu
ZGluZ25vcm1hbAogICAgIC8vIENzOiBpcyB0aGUgc291cmNlIGNvbG9yCiAgICAgLy8gQ2I6IGlz
IHRoZSBiYWNrZHJvcCBjb2xvcgotICAgIGNvbnN0IGNoYXIqIGV4cHJlc3Npb24gPSAwOworICAg
IGNvbnN0IGNoYXIqIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiA9ICJDbyA9IDAuMDsiOwogICAg
IHN3aXRjaCAoYmxlbmRNb2RlKSB7CiAgICAgY2FzZSBCbGVuZE1vZGVOb3JtYWw6Ci0gICAgICAg
IGV4cHJlc3Npb24gPSAiQ3MiOworICAgICAgICBibGVuZENvbXBvbmVudEV4cHJlc3Npb24gPSAi
Q28gPSBDczsiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZU11bHRpcGx5Ogot
ICAgICAgICBleHByZXNzaW9uID0gIkNzICogQ2IiOworICAgICAgICBibGVuZENvbXBvbmVudEV4
cHJlc3Npb24gPSAiQ28gPSBDcyAqIENiOyI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxl
bmRNb2RlU2NyZWVuOgotICAgICAgICBleHByZXNzaW9uID0gIkNiICsgQ3MgLSAoQ2IgKiBDcyki
OworICAgICAgICBibGVuZENvbXBvbmVudEV4cHJlc3Npb24gPSAiQ28gPSBDYiArIENzIC0gKENi
ICogQ3MpOyI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlRGFya2VuOgotICAg
ICAgICBleHByZXNzaW9uID0gIm1pbihDYiwgQ3MpIjsKKyAgICAgICAgYmxlbmRDb21wb25lbnRF
eHByZXNzaW9uID0gIkNvID0gbWluKENiLCBDcyk7IjsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCbGVuZE1vZGVMaWdodGVuOgotICAgICAgICBleHByZXNzaW9uID0gIm1heChDYiwgQ3MpIjsK
KyAgICAgICAgYmxlbmRDb21wb25lbnRFeHByZXNzaW9uID0gIkNvID0gbWF4KENiLCBDcyk7IjsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVEaWZmZXJlbmNlOgotICAgICAgICBl
eHByZXNzaW9uID0gImFicyhDYiAtIENzKSI7CisgICAgICAgIGJsZW5kQ29tcG9uZW50RXhwcmVz
c2lvbiA9ICJDbyA9IGFicyhDYiAtIENzKTsiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJs
ZW5kTW9kZUV4Y2x1c2lvbjoKLSAgICAgICAgZXhwcmVzc2lvbiA9ICJDYiArIENzIC0gMi4wICog
Q2IgKiBDcyI7CisgICAgICAgIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiA9ICJDbyA9IENiICsg
Q3MgLSAyLjAgKiBDYiAqIENzOyI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2Rl
T3ZlcmxheToKKyAgICAgICAgLyoKKyAgICAgICAgICAgIENvID0gSGFyZExpZ2h0KENzLCBDYikK
KyAgICAgICAgICAgICAgID0gaWYoQ2IgPD0gMC41KQorICAgICAgICAgICAgICAgICAgICAgTXVs
dGlwbHkoQ3MsIDIgeCBDYikKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgU2NyZWVuKENzLCAyIHggQ2IgLSAxKQorICAgICAgICAgICAgICAgPSBpZihDYiA8PSAw
LjUpCisgICAgICAgICAgICAgICAgICAgICBDcyB4ICgyIHggQ2IpCisgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIENzICsgKDIgeCBDYiAtIDEpIC0gKENzIHggKDIg
eCBDYiAtIDEpKQorICAgICAgICAqLworICAgICAgICBibGVuZENvbXBvbmVudEV4cHJlc3Npb24g
PSBTSEFERVIoCisgICAgICAgICAgICBpZiAoQ2IgPD0gMC41KQorICAgICAgICAgICAgICAgIENv
ID0gQ3MgKiAoMi4wICogQ2IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENv
ID0gQ3MgKyAoMi4wICogQ2IgLSAxLjApIC0gKENzICogKDIuMCAqIENiIC0gMS4wKSk7CisgICAg
ICAgICk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlQ29sb3JEb2RnZToKKyAg
ICAgICAgLyoKKyAgICAgICAgICAgIENvID0gaWYoQ3MgPCAxKQorICAgICAgICAgICAgICAgICAg
ICAgbWluKDEsIENiIC8gKDEgLSBDcykpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgIDEKKyAgICAgICAgKi8KKyAgICAgICAgYmxlbmRDb21wb25lbnRFeHByZXNz
aW9uID0gU0hBREVSKAorICAgICAgICAgICAgaWYgKENzIDwgMS4wKQorICAgICAgICAgICAgICAg
IENvID0gbWluKDEuMCwgQ2IgLyAoMS4wIC0gQ3MpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBDbyA9IDEuMDsKKyAgICAgICAgKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCbGVuZE1vZGVDb2xvckJ1cm46CisgICAgICAgIC8qCisgICAgICAgICAgICBDbyA9IGlmKENz
ID4gMCkKKyAgICAgICAgICAgICAgICAgICAgIDEgLSBtaW4oMSwgKDEgLSBDYikgLyBDcykKKyAg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgMAorICAgICAgICAqLwor
ICAgICAgICBibGVuZENvbXBvbmVudEV4cHJlc3Npb24gPSBTSEFERVIoCisgICAgICAgICAgICBp
ZiAoQ3MgPiAwLjApCisgICAgICAgICAgICAgICAgQ28gPSAxLjAgLSBtaW4oMS4wLCAoMS4wIC0g
Q2IpIC8gQ3MpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENvID0gMC4wOwor
ICAgICAgICApOworICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZUhhcmRMaWdodDoK
KyAgICAgICAgLyoKKyAgICAgICAgICAgIENvID0gaWYoQ3MgPD0gMC41KQorICAgICAgICAgICAg
ICAgICAgICAgTXVsdGlwbHkoQ2IsIDIgeCBDcykKKyAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgU2NyZWVuKENiLCAyIHggQ3MgLTEpCisgICAgICAgICAgICAgICA9
IGlmKENzIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIENiIHggKDIgeCBDcykKKyAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgQ2IgKyAoMiB4IENzIC0gMSkg
LSAoQ2IgeCAoMiB4IENzIC0gMSkpCisgICAgICAgICovCisgICAgICAgIGJsZW5kQ29tcG9uZW50
RXhwcmVzc2lvbiA9IFNIQURFUigKKyAgICAgICAgICAgIGlmIChDcyA8PSAwLjUpCisgICAgICAg
ICAgICAgICAgQ28gPSBDYiAqICgyLjAgKiBDcyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgQ28gPSBDYiArICgyLjAgKiBDcyAtIDEuMCkgLSAoQ2IgKiAoMi4wICogQ3MgLSAx
LjApKTsKKyAgICAgICAgKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVTb2Z0
TGlnaHQ6CisgICAgICAgIC8qCisgICAgICAgICAgICBDbyA9IGlmKENzIDw9IDAuNSkKKyAgICAg
ICAgICAgICAgICAgICAgIENiIC0gKDEgLSAyIHggQ3MpIHggQ2IgeCAoMSAtIENiKQorICAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICBDYiArICgyIHggQ3MgLSAxKSB4
IChEKENiKSAtIENiKQorCisgICAgICAgICAgICB3aXRoCisKKyAgICAgICAgICAgIEQoQ2IpID0g
aWYoQ2IgPD0gMC4yNSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgxNiAqIENiIC0gMTIpIHgg
Q2IgKyA0KSB4IENiCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNxcnQoQ2IpCisgICAgICAgICovCisgICAgICAgIGJsZW5kQ29tcG9uZW50RXhwcmVz
c2lvbiA9IFNIQURFUigKKyAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgRDsKKyAgICAgICAgICAg
IGlmIChDYiA8PSAwLjI1KQorICAgICAgICAgICAgICAgIEQgPSAoKDE2LjAgKiBDYiAtIDEyLjAp
ICogQ2IgKyA0LjApICogQ2I7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgRCA9
IHNxcnQoQ2IpOworCisgICAgICAgICAgICBpZiAoQ3MgPD0gMC41KQorICAgICAgICAgICAgICAg
IENvID0gQ2IgLSAoMS4wIC0gMi4wICogQ3MpICogQ2IgKiAoMS4wIC0gQ2IpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIENvID0gQ2IgKyAoMi4wICogQ3MgLSAxLjApICogKEQg
LSBDYik7CisgICAgICAgICk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlSHVl
OgogICAgIGNhc2UgQmxlbmRNb2RlU2F0dXJhdGlvbjoKICAgICBjYXNlIEJsZW5kTW9kZUNvbG9y
OgogICAgIGNhc2UgQmxlbmRNb2RlTHVtaW5vc2l0eToKICAgICAgICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICBBU1NFUlQoZXhwcmVzc2lvbik7CiAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KFNIQURFUigK
LSAgICAgICAgbWVkaXVtcCB2ZWMzIGNzc19CbGVuZChtZWRpdW1wIHZlYzMgQ2IsIG1lZGl1bXAg
dmVjMyBDcykKKyAgICAgICAgbWVkaXVtcCBmbG9hdCBjc3NfQmxlbmRDb21wb25lbnQobWVkaXVt
cCBmbG9hdCBDYiwgbWVkaXVtcCBmbG9hdCBDcykKKyAgICAgICAgeworICAgICAgICAgICAgbWVk
aXVtcCBmbG9hdCBDbzsKKyAgICAgICAgICAgICVzOworICAgICAgICAgICAgcmV0dXJuIENvOwor
ICAgICAgICB9CisgICAgICAgIG1lZGl1bXAgdmVjMyBjc3NfQmxlbmRDb2xvcihtZWRpdW1wIHZl
YzMgQ2IsIG1lZGl1bXAgdmVjMyBDcykKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICVz
OworICAgICAgICAgICAgcmV0dXJuIHZlYzMoY3NzX0JsZW5kQ29tcG9uZW50KENiLnIsIENzLnIp
LCBjc3NfQmxlbmRDb21wb25lbnQoQ2IuZywgQ3MuZyksIGNzc19CbGVuZENvbXBvbmVudChDYi5i
LCBDcy5iKSk7CiAgICAgICAgIH0KLSAgICApLCBleHByZXNzaW9uKTsKKyAgICApLCBibGVuZENv
bXBvbmVudEV4cHJlc3Npb24pOwogfQogCiBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJv
Z3JhbTo6Y29tcG9zaXRlRnVuY3Rpb25TdHJpbmcoQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3BlcmF0b3IpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNzNjYzRmOGY5NjIxY2FkNDk4Y2FkNjE3NGIxNGZkYThlMmU5ZmZh
NC4uZGI4ODE4MWVkZTIxOGE0MDFkYjJmMWQ2OTRiODlkNmY3YjBkZmM4ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTEwLTEwICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkx
MDAubmV0PgorCisgICAgICAgIFtDU1MgU2hhZGVyc10gSW1wbGVtZW50IG92ZXJsYXksIGNvbG9y
LWRvZGdlLCBjb2xvci1idXJuLCBoYXJkLWxpZ2h0LCBzb2Z0LWxpZ2h0IGJsZW5kIG1vZGVzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1MDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhl
IHRlc3QgZm9yIHRoZSBhZm9yZW1lbnRpb25lZCBibGVuZCBtb2Rlcy4KKworICAgICAgICAqIGNz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVuZC1tb2Rlcy1leHBlY3RlZC5odG1s
OgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVuZC1tb2Rl
cy5odG1sOgorCiAyMDEyLTEwLTA0ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkx
MDAubmV0PgogCiAgICAgICAgIFtDU1MgU2hhZGVyc10gSW1wbGVtZW50IGFsbCBjb21wb3NpdGUg
b3BlcmF0b3JzIGV4Y2VwdCBkZXN0aW5hdGlvbiBhbmQgbGlnaHRlci4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVuZC1tb2Rlcy1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmls
dGVyLWJsZW5kLW1vZGVzLWV4cGVjdGVkLmh0bWwKaW5kZXggZWUyMzU1M2Q4NjA1MzVlZDYzMDA4
MzMwNmVjMDhlMWVhZGQxNTg4YS4uYTYxMjVjY2U1NWFkY2NiYzYyOTgzNmUxNDBmOGQ4NDAzMDIw
NWY5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20t
ZmlsdGVyLWJsZW5kLW1vZGVzLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLWV4cGVjdGVkLmh0bWwKQEAg
LTQwLDYgKzQwLDIxIEBACiAgICAgLmV4Y2x1c2lvbi1leHBlY3RlZCB7CiAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHJnYigyNTUsIDEzOCwgMTI3KTsKICAgICB9CisgICAgLm92ZXJsYXktZXhw
ZWN0ZWQgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCA5MSwgMTI4KTsKKyAg
ICB9CisgICAgLmNvbG9yLWRvZGdlLWV4cGVjdGVkIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogcmdiKDI1NSwgMTkwLCAyNTUpOworICAgIH0KKyAgICAuY29sb3ItYnVybi1leHBlY3RlZCB7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAxKTsKKyAgICB9CisgICAgLmhh
cmQtbGlnaHQtZXhwZWN0ZWQgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCUsIDQ0
JSwgNTAlKTsKKyAgICB9CisgICAgLnNvZnQtbGlnaHQtZXhwZWN0ZWQgeworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoMjU1LCA4OSwgMTI4KTsKKyAgICB9CiAgICAgPC9zdHlsZT4KIDwv
aGVhZD4KIDxib2R5PgpAQCAtNzEsNyArODYsMjcgQEAKICAgICAgICAgPGRpdiBjbGFzcz0iZXhj
bHVzaW9uLWV4cGVjdGVkIj48L2Rpdj4KICAgICAgICAgPGRpdiBjbGFzcz0iZXhjbHVzaW9uLWV4
cGVjdGVkIj48L2Rpdj4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFy
ZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LWV4cGVjdGVkIj48L2Rpdj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1leHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+CiAgICAg
PCEtLQorICAgIDxkaXYgY2xhc3M9InBhaXItb2Ytc3F1YXJlcyI+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbG9yLWRvZGdlLWV4cGVjdGVkIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29s
b3ItZG9kZ2UtZXhwZWN0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBh
aXItb2Ytc3F1YXJlcyI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWJ1cm4tZXhwZWN0ZWQi
PjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1idXJuLWV4cGVjdGVkIj48L2Rpdj4K
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJoYXJkLWxpZ2h0LWV4cGVjdGVkIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaGFyZC1saWdodC1leHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic29mdC1saWdodC1leHBl
Y3RlZCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNvZnQtbGlnaHQtZXhwZWN0ZWQiPjwv
ZGl2PgorICAgIDwvZGl2PgogICAgICAgICBJZiB5b3UgYWRkIG1vcmUgYmxlbmQgbW9kZXMgdG8g
dGhpcyBwYWdlLCBiZSBjYXJlZnVsIG5vdCB0byBleGNlZWQgNjAwcHggaW4gCiAgICAgICAgIGhl
aWdodCwgc2luY2UgRHVtcFJlbmRlclRyZWUgY29tcGFyZXMgODAweDYwMCBzbmFwc2hvdHMgb2Yg
dGhpcyBwYWdlLgogICAgIC0tPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJz
L2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9kZXMuaHRtbAppbmRleCAyNmFi
MDJhNzE2NmM0NDQ0OWQ0MDYzY2M4ZGU1NzlhOWY4MDMxODU4Li40NTIyNzVmZmM2MTIzYzYzYjk4
NTQ0NTA4Y2EwZDM0YjA3MjRmODM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9kZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9kZXMuaHRtbApAQCAt
MTQ3LDYgKzE0NywxMjQgQEAKICAgICAgICAgKi8KICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmdiKDI1NSwgMTM4LCAxMjcpOwogICAgIH0KKyAgICAub3ZlcmxheSB7CisgICAgICAgIC13ZWJr
aXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZz
Jykgb3ZlcmxheSBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAuNSAxLjApOworICAg
IH0KKyAgICAub3ZlcmxheS1leHBlY3RlZCB7CisgICAgICAgIC8qCisgICAgICAgICAgICBPdmVy
bGF5OgorCisgICAgICAgICAgICBDbyA9IEhhcmRMaWdodChDcywgQ2IpCisgICAgICAgICAgICAg
ICA9IGlmKENiIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIE11bHRpcGx5KENzLCAyICog
Q2IpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIFNjcmVlbihD
cywgMiAqIENiIC0gMSkKKyAgICAgICAgICAgICAgID0gaWYoQ2IgPD0gMC41KQorICAgICAgICAg
ICAgICAgICAgICAgQ3MgKiAoMiAqIENiKQorICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgICBDcyArICgyICogQ2IgLSAxKSAtIChDcyAqICgyICogQ2IgLSAxKSkKKwor
ICAgICAgICAgICAgciA9IDAgKyAoMiAqIDEgLSAxKSAtICgwICogKDIgKiAxIC0gMSkpID0gMQor
ICAgICAgICAgICAgZyA9IDAuNiAqICgyICogMC4zKSA9IDAuMzYKKyAgICAgICAgICAgIGIgPSAw
LjUgKiAoMiAqIDAuNSkgPSAwLjUKKworICAgICAgICAgICAgVGhlIGVycm9yIGluIHRoZSBjb2xv
ciBjYWxjdWxhdGlvbiByZXF1aXJlcyB1cyB0byB1c2UgdGhlIDgtYml0IHZhbHVlcyBmb3I6Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwJSwgMzYlLCA1MCUpOworICAgICAg
ICAqLworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCA5MSwgMTI4KTsKKyAgICB9
CisgICAgLmNvbG9yLWRvZGdlIHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25l
IG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvci1kb2RnZSBzb3VyY2Ut
YXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAuNSAxLjApOworICAgIH0KKyAgICAuY29sb3ItZG9k
Z2UtZXhwZWN0ZWQgeworICAgICAgICAvKgorICAgICAgICAgICAgQ29sb3JEb2RnZToKKworICAg
ICAgICAgICAgQ28gPSBpZihDcyA8IDEpCisgICAgICAgICAgICAgICAgICAgICBtaW4oMSwgQ2Ig
LyAoMSAtIENzKSkKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
MQorCisgICAgICAgICAgICByID0gbWluKDEsIDEgLyAoMSAtIDApKSA9IDEKKyAgICAgICAgICAg
IGcgPSBtaW4oMSwgMC4zIC8gKDEgLSAwLjYpKSA9IDAuNzUKKyAgICAgICAgICAgIGIgPSBtaW4o
MSwgMC41IC8gKDEgLSAwLjUpKSA9IDEKKworICAgICAgICAgICAgVGhlIGVycm9yIGluIHRoZSBj
b2xvciBjYWxjdWxhdGlvbiByZXF1aXJlcyB1cyB0byB1c2UgdGhlIDgtYml0IHZhbHVlcyBmb3I6
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwJSwgNzUlLCAxMDAlKTsKKyAg
ICAgICAgKi8KKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMTkwLCAyNTUpOwor
ICAgIH0KKyAgICAuY29sb3ItYnVybiB7CisgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20o
bm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgY29sb3ItYnVybiBzb3Vy
Y2UtYXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAuNSAxLjApOworICAgIH0KKyAgICAuY29sb3It
YnVybi1leHBlY3RlZCB7CisgICAgICAgIC8qCisgICAgICAgICAgICBDb2xvckJ1cm46CisKKyAg
ICAgICAgICAgIENvID0gaWYoQ3MgPiAwKQorICAgICAgICAgICAgICAgICAgICAgMSAtIG1pbigx
LCAoMSAtIENiKSAvIENzKQorICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAwCisKKyAgICAgICAgICAgIHIgPSAwCisgICAgICAgICAgICBnID0gMSAtIG1pbigxLCAo
MSAtIDAuMykgLyAwLjYpID0gMAorICAgICAgICAgICAgYiA9IDEgLSBtaW4oMSwgKDEgLSAwLjUp
IC8gMC41KSA9IDAKKyAgICAgICAgKi8KKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAs
IDAsIDEpOworICAgIH0KKyAgICAuaGFyZC1saWdodCB7CisgICAgICAgIC13ZWJraXQtZmlsdGVy
OiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgaGFyZC1s
aWdodCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAuNSAxLjApOworICAgIH0KKyAg
ICAuaGFyZC1saWdodC1leHBlY3RlZCB7CisgICAgICAgIC8qCisgICAgICAgICAgICBIYXJkTGln
aHQ6CisKKyAgICAgICAgICAgIENvID0gaWYoQ3MgPD0gMC41KQorICAgICAgICAgICAgICAgICAg
ICAgTXVsdGlwbHkoQ2IsIDIgKiBDcykKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgU2NyZWVuKENiLCAyICogQ3MgLTEpCisgICAgICAgICAgICAgICA9IGlmKENz
IDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIENiICogKDIgKiBDcykKKyAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgQ2IgKyAoMiAqIENzIC0gMSkgLSAoQ2Ig
KiAoMiAqIENzIC0gMSkpCisKKyAgICAgICAgICAgIHIgPSAxICogKDIgKiAwKSA9IDAKKyAgICAg
ICAgICAgIGcgPSAwLjMgKyAoMiAqIDAuNiAtIDEpIC0gKDAuMyAqICgyICogMC42IC0gMSkpID0g
MC40NAorICAgICAgICAgICAgYiA9IDAuNSAqICgyICogMC41KSA9IDAuNQorICAgICAgICAqLwor
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCUsIDQ0JSwgNTAlKTsKKyAgICB9CisgICAg
LnNvZnQtbGlnaHQgeworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVy
bCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIHNvZnQtbGlnaHQgc291cmNlLWF0b3ApLCBt
aXhfY29sb3IgMC4wIDAuNiAwLjUgMS4wKTsKKyAgICB9CisgICAgLnNvZnQtbGlnaHQtZXhwZWN0
ZWQgeworICAgICAgICAvKgorICAgICAgICAgICAgU29mdExpZ2h0OgorCisgICAgICAgICAgICBD
byA9IGlmKENzIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIENiIC0gKDEgLSAyICogQ3Mp
ICogQ2IgKiAoMSAtIENiKQorICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICBDYiArICgyICogQ3MgLSAxKSAqIChEKENiKSAtIENiKQorCisgICAgICAgICAgICB3aXRo
CisKKyAgICAgICAgICAgIEQoQ2IpID0gaWYoQ2IgPD0gMC4yNSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICgxNiAqIENiIC0gMTIpICogQ2IgKyA0KSAqIENiCisgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHNxcnQoQ2IpCisKKyAgICAgICAgICAgIEQu
ciA9IHNxcnQoMSkgPSAxCisgICAgICAgICAgICBELmcgPSBzcXJ0KDAuMykgPSAwLjU0NzcyMjU1
NzUwNTE2NgorICAgICAgICAgICAgRC5iID0gc3FydCgwLjUpID0gMC43MDcxMDY3ODExODY1NDgK
KyAgICAgICAgICAgIHIgPSAxIC0gKDEgLSAyICogMCkgKiAxICogKDEgLSAxKSA9IDEKKyAgICAg
ICAgICAgIGcgPSAwLjMgKyAoMiAqIDAuNiAtIDEpICogKEQuZyAtIDAuMykgPSAwLjM0OTU0NDUx
MTUwMTAzMworICAgICAgICAgICAgYiA9IDAuNSAtICgxIC0gMiAqIDAuNSkgKiAwLjUgKiAoMSAt
IDAuNSkgPSAwLjUKKworICAgICAgICAgICAgVGhlIGVycm9yIGluIHRoZSBjb2xvciBjYWxjdWxh
dGlvbiByZXF1aXJlcyB1cyB0byB1c2UgdGhlIDgtYml0IHZhbHVlcyBmb3I6CisgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwJSwgMzQuOTU0NDUxJSwgNTAlKTsKKyAgICAgICAg
Ki8KKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgODksIDEyOCk7CisgICAgfQog
ICAgIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTE3OCw3ICsyOTYsMjcgQEAKICAgICAg
ICAgPGRpdiBjbGFzcz0iZGVzdGluYXRpb24gZXhjbHVzaW9uIj48L2Rpdj4KICAgICAgICAgPGRp
diBjbGFzcz0iZXhjbHVzaW9uLWV4cGVjdGVkIj48L2Rpdj4KICAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0aW5hdGlv
biBvdmVybGF5Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1leHBlY3RlZCI+
PC9kaXY+CisgICAgPC9kaXY+CiAgICAgPCEtLQorICAgIDxkaXYgY2xhc3M9InBhaXItb2Ytc3F1
YXJlcyI+CisgICAgICAgIDxkaXYgY2xhc3M9ImRlc3RpbmF0aW9uIGNvbG9yLWRvZGdlIj48L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItZG9kZ2UtZXhwZWN0ZWQiPjwvZGl2PgorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBhaXItb2Ytc3F1YXJlcyI+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImRlc3RpbmF0aW9uIGNvbG9yLWJ1cm4iPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNz
PSJjb2xvci1idXJuLWV4cGVjdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0aW5hdGlvbiBoYXJk
LWxpZ2h0Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaGFyZC1saWdodC1leHBlY3RlZCI+
PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iZGVzdGluYXRpb24gc29mdC1saWdodCI+PC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9InNvZnQtbGlnaHQtZXhwZWN0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgogICAg
ICAgICBJZiB5b3UgYWRkIG1vcmUgYmxlbmQgbW9kZXMgdG8gdGhpcyBwYWdlLCBiZSBjYXJlZnVs
IG5vdCB0byBleGNlZWQgNjAwcHggaW4gCiAgICAgICAgIGhlaWdodCwgc2luY2UgRHVtcFJlbmRl
clRyZWUgY29tcGFyZXMgODAweDYwMCBzbmFwc2hvdHMgb2YgdGhpcyBwYWdlLgogICAgIC0tPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168290</attachid>
            <date>2012-10-11 15:34:59 -0700</date>
            <delta_ts>2012-10-12 23:03:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98504-20121012073349.patch</filename>
            <type>text/plain</type>
            <size>15620</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY4MzRlZGI2OTUxYjc5
MzViODIwODY0NWIzOTE1NmJjNmUwNmUzMy4uNDQyZWFmNWY3NzdlMjEwMTZjODFmM2RlZWE5MjZh
MTY4OWYxNmZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEyLTEwLTEwICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gSW1wbGVtZW50IG92ZXJsYXksIGNvbG9yLWRvZGdlLCBjb2xvci1idXJuLCBoYXJkLWxp
Z2h0LCBzb2Z0LWxpZ2h0IGJsZW5kIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgZXhwcmVzc2lvbnMgZm9yIHRoZSBhZm9yZW1lbnRpb25l
ZCBibGVuZCBtb2Rlcy4gVGhlIGV4cHJlc3Npb25zIGFyZSBsaWZ0ZWQKKyAgICAgICAgZGlyZWN0
bHkgZnJvbSB0aGUgQ1NTIENvbXBvc2l0aW5nIGFuZCBCbGVuZGluZyBzcGVjIFsxXS4gV2ViS2l0
IGFkZHMgdGhlc2UKKyAgICAgICAgYmxlbmRpbmcgZXhwcmVzc2lvbnMgdG8gdGhlIGF1dGhvcidz
IHNoYWRlci4KKworICAgICAgICBbMV06IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvRlhURi9yYXdm
aWxlL3RpcC9jb21wb3NpdGluZy9pbmRleC5odG1sI2JsZW5kaW5nbm9ybWFsCisKKyAgICAgICAg
VGVzdDogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtOjpyZXdyaXRlTWl4RnJhZ21lbnRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyk6CisKKzIwMTIt
MTAtMTAgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKICAgICAg
ICAgW0NTUyBTaGFkZXJzXSBBZGQgQ3VzdG9tRmlsdGVyUmVuZGVyZXIgdG8gcmV1c2UgdGhpcyBj
bGFzcyBieSBBY2NlbGVyYXRlZCBDb21wb3NpdGluZy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3Jh
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCmluZGV4IGExMzc5ZGY2NmMyZGU4MjY4N2NjNTQ2MmRm
MWVkMjM2ZDEzYzM0ZTMuLmU2N2M2ODQ3ZWIzNTY5OTU2MDE4NzA3YmIyZWYyOTgwMjhhYzE1Mzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcApAQCAt
MTY5LDcgKzE2OSw3IEBAIHZvaWQgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6cmV3cml0
ZU1peEZyYWdtZW50U2hhZGVyKCkKICAgICAgICAgICAgIGNzc19tYWluKCk7CiAgICAgICAgICAg
ICBtZWRpdW1wIHZlYzQgb3JpZ2luYWxDb2xvciA9IHRleHR1cmUyRChjc3NfdV90ZXh0dXJlLCBj
c3Nfdl90ZXhDb29yZCk7CiAgICAgICAgICAgICBtZWRpdW1wIHZlYzQgbXVsdGlwbGllZENvbG9y
ID0gY3NzX0NvbG9yTWF0cml4ICogb3JpZ2luYWxDb2xvcjsKLSAgICAgICAgICAgIG1lZGl1bXAg
dmVjMyBibGVuZGVkQ29sb3IgPSBjc3NfQmxlbmQobXVsdGlwbGllZENvbG9yLnJnYiwgY3NzX01p
eENvbG9yLnJnYik7CisgICAgICAgICAgICBtZWRpdW1wIHZlYzMgYmxlbmRlZENvbG9yID0gY3Nz
X0JsZW5kQ29sb3IobXVsdGlwbGllZENvbG9yLnJnYiwgY3NzX01peENvbG9yLnJnYik7CiAgICAg
ICAgICAgICBnbF9GcmFnQ29sb3IgPSBjc3NfQ29tcG9zaXRlKG11bHRpcGxpZWRDb2xvci5yZ2Is
IG11bHRpcGxpZWRDb2xvci5hLCBibGVuZGVkQ29sb3IucmdiLCBjc3NfTWl4Q29sb3IuYSk7CiAg
ICAgICAgIH0KICAgICApKTsKQEAgLTE4MiwzNCArMTgyLDEyMSBAQCBTdHJpbmcgQ3VzdG9tRmls
dGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1vZGUgYmxlbmRN
b2RlKQogICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvRlhURi9yYXdmaWxlL3RpcC9jb21w
b3NpdGluZy9pbmRleC5odG1sI2JsZW5kaW5nbm9ybWFsCiAgICAgLy8gQ3M6IGlzIHRoZSBzb3Vy
Y2UgY29sb3IKICAgICAvLyBDYjogaXMgdGhlIGJhY2tkcm9wIGNvbG9yCi0gICAgY29uc3QgY2hh
ciogZXhwcmVzc2lvbiA9IDA7CisgICAgY29uc3QgY2hhciogYmxlbmRDb21wb25lbnRFeHByZXNz
aW9uID0gMDsKICAgICBzd2l0Y2ggKGJsZW5kTW9kZSkgewogICAgIGNhc2UgQmxlbmRNb2RlTm9y
bWFsOgotICAgICAgICBleHByZXNzaW9uID0gIkNzIjsKKyAgICAgICAgYmxlbmRDb21wb25lbnRF
eHByZXNzaW9uID0gIkNvID0gQ3M7IjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1v
ZGVNdWx0aXBseToKLSAgICAgICAgZXhwcmVzc2lvbiA9ICJDcyAqIENiIjsKKyAgICAgICAgYmxl
bmRDb21wb25lbnRFeHByZXNzaW9uID0gIkNvID0gQ3MgKiBDYjsiOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJsZW5kTW9kZVNjcmVlbjoKLSAgICAgICAgZXhwcmVzc2lvbiA9ICJDYiArIENz
IC0gKENiICogQ3MpIjsKKyAgICAgICAgYmxlbmRDb21wb25lbnRFeHByZXNzaW9uID0gIkNvID0g
Q2IgKyBDcyAtIChDYiAqIENzKTsiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9k
ZURhcmtlbjoKLSAgICAgICAgZXhwcmVzc2lvbiA9ICJtaW4oQ2IsIENzKSI7CisgICAgICAgIGJs
ZW5kQ29tcG9uZW50RXhwcmVzc2lvbiA9ICJDbyA9IG1pbihDYiwgQ3MpOyI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlTGlnaHRlbjoKLSAgICAgICAgZXhwcmVzc2lvbiA9ICJt
YXgoQ2IsIENzKSI7CisgICAgICAgIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiA9ICJDbyA9IG1h
eChDYiwgQ3MpOyI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlRGlmZmVyZW5j
ZToKLSAgICAgICAgZXhwcmVzc2lvbiA9ICJhYnMoQ2IgLSBDcykiOworICAgICAgICBibGVuZENv
bXBvbmVudEV4cHJlc3Npb24gPSAiQ28gPSBhYnMoQ2IgLSBDcyk7IjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCbGVuZE1vZGVFeGNsdXNpb246Ci0gICAgICAgIGV4cHJlc3Npb24gPSAiQ2Ig
KyBDcyAtIDIuMCAqIENiICogQ3MiOworICAgICAgICBibGVuZENvbXBvbmVudEV4cHJlc3Npb24g
PSAiQ28gPSBDYiArIENzIC0gMi4wICogQ2IgKiBDczsiOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJsZW5kTW9kZU92ZXJsYXk6CisgICAgICAgIC8qCisgICAgICAgICAgICBDbyA9IEhhcmRM
aWdodChDcywgQ2IpCisgICAgICAgICAgICAgICA9IGlmKENiIDw9IDAuNSkKKyAgICAgICAgICAg
ICAgICAgICAgIE11bHRpcGx5KENzLCAyIHggQ2IpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgIFNjcmVlbihDcywgMiB4IENiIC0gMSkKKyAgICAgICAgICAgICAg
ID0gaWYoQ2IgPD0gMC41KQorICAgICAgICAgICAgICAgICAgICAgQ3MgeCAoMiB4IENiKQorICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICBDcyArICgyIHggQ2IgLSAx
KSAtIChDcyB4ICgyIHggQ2IgLSAxKSkKKyAgICAgICAgKi8KKyAgICAgICAgYmxlbmRDb21wb25l
bnRFeHByZXNzaW9uID0gU0hBREVSKAorICAgICAgICAgICAgaWYgKENiIDw9IDAuNSkKKyAgICAg
ICAgICAgICAgICBDbyA9IENzICogKDIuMCAqIENiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBDbyA9IENzICsgKDIuMCAqIENiIC0gMS4wKSAtIChDcyAqICgyLjAgKiBDYiAt
IDEuMCkpOworICAgICAgICApOworICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZUNv
bG9yRG9kZ2U6CisgICAgICAgIC8qCisgICAgICAgICAgICBDbyA9IGlmKENzIDwgMSkKKyAgICAg
ICAgICAgICAgICAgICAgIG1pbigxLCBDYiAvICgxIC0gQ3MpKQorICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAxCisgICAgICAgICovCisgICAgICAgIGJsZW5kQ29t
cG9uZW50RXhwcmVzc2lvbiA9IFNIQURFUigKKyAgICAgICAgICAgIGlmIChDcyA8IDEuMCkKKyAg
ICAgICAgICAgICAgICBDbyA9IG1pbigxLjAsIENiIC8gKDEuMCAtIENzKSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgQ28gPSAxLjA7CisgICAgICAgICk7CisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlQ29sb3JCdXJuOgorICAgICAgICAvKgorICAgICAgICAg
ICAgQ28gPSBpZihDcyA+IDApCisgICAgICAgICAgICAgICAgICAgICAxIC0gbWluKDEsICgxIC0g
Q2IpIC8gQ3MpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIDAK
KyAgICAgICAgKi8KKyAgICAgICAgYmxlbmRDb21wb25lbnRFeHByZXNzaW9uID0gU0hBREVSKAor
ICAgICAgICAgICAgaWYgKENzID4gMC4wKQorICAgICAgICAgICAgICAgIENvID0gMS4wIC0gbWlu
KDEuMCwgKDEuMCAtIENiKSAvIENzKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBDbyA9IDAuMDsKKyAgICAgICAgKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1v
ZGVIYXJkTGlnaHQ6CisgICAgICAgIC8qCisgICAgICAgICAgICBDbyA9IGlmKENzIDw9IDAuNSkK
KyAgICAgICAgICAgICAgICAgICAgIE11bHRpcGx5KENiLCAyIHggQ3MpCisgICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIFNjcmVlbihDYiwgMiB4IENzIC0xKQorICAg
ICAgICAgICAgICAgPSBpZihDcyA8PSAwLjUpCisgICAgICAgICAgICAgICAgICAgICBDYiB4ICgy
IHggQ3MpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIENiICsg
KDIgeCBDcyAtIDEpIC0gKENiIHggKDIgeCBDcyAtIDEpKQorICAgICAgICAqLworICAgICAgICBi
bGVuZENvbXBvbmVudEV4cHJlc3Npb24gPSBTSEFERVIoCisgICAgICAgICAgICBpZiAoQ3MgPD0g
MC41KQorICAgICAgICAgICAgICAgIENvID0gQ2IgKiAoMi4wICogQ3MpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIENvID0gQ2IgKyAoMi4wICogQ3MgLSAxLjApIC0gKENiICog
KDIuMCAqIENzIC0gMS4wKSk7CisgICAgICAgICk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QmxlbmRNb2RlU29mdExpZ2h0OgorICAgICAgICAvKgorICAgICAgICAgICAgQ28gPSBpZihDcyA8
PSAwLjUpCisgICAgICAgICAgICAgICAgICAgICBDYiAtICgxIC0gMiB4IENzKSB4IENiIHggKDEg
LSBDYikKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgQ2IgKyAo
MiB4IENzIC0gMSkgeCAoRChDYikgLSBDYikKKworICAgICAgICAgICAgd2l0aAorCisgICAgICAg
ICAgICBEKENiKSA9IGlmKENiIDw9IDAuMjUpCisgICAgICAgICAgICAgICAgICAgICAgICAoMTYg
KiBDYiAtIDEyKSB4IENiICsgNCkgeCBDYgorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICBzcXJ0KENiKQorICAgICAgICAqLworICAgICAgICBibGVuZENv
bXBvbmVudEV4cHJlc3Npb24gPSBTSEFERVIoCisgICAgICAgICAgICBtZWRpdW1wIGZsb2F0IEQ7
CisgICAgICAgICAgICBpZiAoQ2IgPD0gMC4yNSkKKyAgICAgICAgICAgICAgICBEID0gKCgxNi4w
ICogQ2IgLSAxMi4wKSAqIENiICsgNC4wKSAqIENiOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIEQgPSBzcXJ0KENiKTsKKworICAgICAgICAgICAgaWYgKENzIDw9IDAuNSkKKyAg
ICAgICAgICAgICAgICBDbyA9IENiIC0gKDEuMCAtIDIuMCAqIENzKSAqIENiICogKDEuMCAtIENi
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDbyA9IENiICsgKDIuMCAqIENz
IC0gMS4wKSAqIChEIC0gQ2IpOworICAgICAgICApOworICAgICAgICBicmVhazsKICAgICBjYXNl
IEJsZW5kTW9kZUh1ZToKICAgICBjYXNlIEJsZW5kTW9kZVNhdHVyYXRpb246CiAgICAgY2FzZSBC
bGVuZE1vZGVDb2xvcjoKQEAgLTIxOCwxMyArMzA1LDE5IEBAIFN0cmluZyBDdXN0b21GaWx0ZXJW
YWxpZGF0ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKEJsZW5kTW9kZSBibGVuZE1vZGUp
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKLSAgICBBU1NFUlQoZXhwcmVzc2lv
bik7CisgICAgQVNTRVJUKGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbik7CiAgICAgcmV0dXJuIFN0
cmluZzo6Zm9ybWF0KFNIQURFUigKLSAgICAgICAgbWVkaXVtcCB2ZWMzIGNzc19CbGVuZChtZWRp
dW1wIHZlYzMgQ2IsIG1lZGl1bXAgdmVjMyBDcykKKyAgICAgICAgbWVkaXVtcCBmbG9hdCBjc3Nf
QmxlbmRDb21wb25lbnQobWVkaXVtcCBmbG9hdCBDYiwgbWVkaXVtcCBmbG9hdCBDcykKKyAgICAg
ICAgeworICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBDbzsKKyAgICAgICAgICAgICVzOworICAg
ICAgICAgICAgcmV0dXJuIENvOworICAgICAgICB9CisgICAgICAgIG1lZGl1bXAgdmVjMyBjc3Nf
QmxlbmRDb2xvcihtZWRpdW1wIHZlYzMgQ2IsIG1lZGl1bXAgdmVjMyBDcykKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuICVzOworICAgICAgICAgICAgcmV0dXJuIHZlYzMoY3NzX0JsZW5k
Q29tcG9uZW50KENiLnIsIENzLnIpLCBjc3NfQmxlbmRDb21wb25lbnQoQ2IuZywgQ3MuZyksIGNz
c19CbGVuZENvbXBvbmVudChDYi5iLCBDcy5iKSk7CiAgICAgICAgIH0KLSAgICApLCBleHByZXNz
aW9uKTsKKyAgICApLCBibGVuZENvbXBvbmVudEV4cHJlc3Npb24pOwogfQogCiBTdHJpbmcgQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6Y29tcG9zaXRlRnVuY3Rpb25TdHJpbmcoQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWMwMWMwMWIzZDgwOGJiZTUw
NjgwZTYwOTBiMGRmZGJiZmEzY2FmYS4uZTQwNWVmYTYwZTQ1NWNlYTBkMDkzYWIzNmFkYTgzMWQy
Zjg5ZTgyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEwLTEwICBIdWFuZyBEb25nc3Vu
ZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtDU1MgU2hhZGVyc10gSW1w
bGVtZW50IG92ZXJsYXksIGNvbG9yLWRvZGdlLCBjb2xvci1idXJuLCBoYXJkLWxpZ2h0LCBzb2Z0
LWxpZ2h0IGJsZW5kIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTg1MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgdGhlIHRlc3QgZm9yIHRoZSBhZm9yZW1lbnRpb25lZCBibGVuZCBt
b2Rlcy4KKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVu
ZC1tb2Rlcy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3Vz
dG9tLWZpbHRlci1ibGVuZC1tb2Rlcy5odG1sOgorCiAyMDEyLTEwLTA0ICBIdWFuZyBEb25nc3Vu
ZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIFtDU1MgU2hhZGVyc10gSW1w
bGVtZW50IGFsbCBjb21wb3NpdGUgb3BlcmF0b3JzIGV4Y2VwdCBkZXN0aW5hdGlvbiBhbmQgbGln
aHRlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9t
LWZpbHRlci1ibGVuZC1tb2Rlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLWV4cGVjdGVkLmh0bWwKaW5kZXgg
ZWUyMzU1M2Q4NjA1MzVlZDYzMDA4MzMwNmVjMDhlMWVhZGQxNTg4YS4uZGMwY2IwNTY0ZmM0MWZl
YjllOGM3OTIxZWVmNmM4NTNkMjE5MGI1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLWV4cGVjdGVkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1v
ZGVzLWV4cGVjdGVkLmh0bWwKQEAgLTQwLDYgKzQwLDIxIEBACiAgICAgLmV4Y2x1c2lvbi1leHBl
Y3RlZCB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDEzOCwgMTI3KTsKICAg
ICB9CisgICAgLm92ZXJsYXktZXhwZWN0ZWQgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoMjU1LCA5MSwgMTI4KTsKKyAgICB9CisgICAgLmNvbG9yLWRvZGdlLWV4cGVjdGVkIHsKKyAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMTkwLCAyNTUpOworICAgIH0KKyAgICAu
Y29sb3ItYnVybi1leHBlY3RlZCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAw
LCAxKTsKKyAgICB9CisgICAgLmhhcmQtbGlnaHQtZXhwZWN0ZWQgeworICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2IoMCUsIDQ0JSwgNTAlKTsKKyAgICB9CisgICAgLnNvZnQtbGlnaHQtZXhw
ZWN0ZWQgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCA4OSwgMTI4KTsKKyAg
ICB9CiAgICAgPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgpAQCAtNzEsNiArODYsMjYgQEAKICAg
ICAgICAgPGRpdiBjbGFzcz0iZXhjbHVzaW9uLWV4cGVjdGVkIj48L2Rpdj4KICAgICAgICAgPGRp
diBjbGFzcz0iZXhjbHVzaW9uLWV4cGVjdGVkIj48L2Rpdj4KICAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LWV4
cGVjdGVkIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1leHBlY3RlZCI+PC9k
aXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iY29sb3ItZG9kZ2UtZXhwZWN0ZWQiPjwvZGl2PgorICAgICAgICA8ZGl2
IGNsYXNzPSJjb2xvci1kb2RnZS1leHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItYnVy
bi1leHBlY3RlZCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWJ1cm4tZXhwZWN0
ZWQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBhaXItb2Ytc3F1YXJlcyI+
CisgICAgICAgIDxkaXYgY2xhc3M9ImhhcmQtbGlnaHQtZXhwZWN0ZWQiPjwvZGl2PgorICAgICAg
ICA8ZGl2IGNsYXNzPSJoYXJkLWxpZ2h0LWV4cGVjdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzb2Z0
LWxpZ2h0LWV4cGVjdGVkIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic29mdC1saWdodC1l
eHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+CiAgICAgPCEtLQogICAgICAgICBJZiB5b3UgYWRk
IG1vcmUgYmxlbmQgbW9kZXMgdG8gdGhpcyBwYWdlLCBiZSBjYXJlZnVsIG5vdCB0byBleGNlZWQg
NjAwcHggaW4gCiAgICAgICAgIGhlaWdodCwgc2luY2UgRHVtcFJlbmRlclRyZWUgY29tcGFyZXMg
ODAweDYwMCBzbmFwc2hvdHMgb2YgdGhpcyBwYWdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9kZXMuaHRt
bAppbmRleCAyNmFiMDJhNzE2NmM0NDQ0OWQ0MDYzY2M4ZGU1NzlhOWY4MDMxODU4Li5mOTc3ODc1
OGE0OWVkMjM4ZDdmMjA2ZmE1NDRmMDhhNWY4ZTNlMThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9kZXMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtbW9k
ZXMuaHRtbApAQCAtMTQ3LDYgKzE0NywxMjQgQEAKICAgICAgICAgKi8KICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiKDI1NSwgMTM4LCAxMjcpOwogICAgIH0KKyAgICAub3ZlcmxheSB7Cisg
ICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMv
bWl4LWNvbG9yLmZzJykgb3ZlcmxheSBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAu
NSAxLjApOworICAgIH0KKyAgICAub3ZlcmxheS1leHBlY3RlZCB7CisgICAgICAgIC8qCisgICAg
ICAgICAgICBPdmVybGF5OgorCisgICAgICAgICAgICBDbyA9IEhhcmRMaWdodChDcywgQ2IpCisg
ICAgICAgICAgICAgICA9IGlmKENiIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIE11bHRp
cGx5KENzLCAyICogQ2IpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgIFNjcmVlbihDcywgMiAqIENiIC0gMSkKKyAgICAgICAgICAgICAgID0gaWYoQ2IgPD0gMC41
KQorICAgICAgICAgICAgICAgICAgICAgQ3MgKiAoMiAqIENiKQorICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICBDcyArICgyICogQ2IgLSAxKSAtIChDcyAqICgyICog
Q2IgLSAxKSkKKworICAgICAgICAgICAgciA9IDAgKyAoMiAqIDEgLSAxKSAtICgwICogKDIgKiAx
IC0gMSkpID0gMQorICAgICAgICAgICAgZyA9IDAuNiAqICgyICogMC4zKSA9IDAuMzYKKyAgICAg
ICAgICAgIGIgPSAwLjUgKiAoMiAqIDAuNSkgPSAwLjUKKworICAgICAgICAgICAgVGhlIGVycm9y
IGluIHRoZSBjb2xvciBjYWxjdWxhdGlvbiByZXF1aXJlcyB1cyB0byB1c2UgdGhlIDgtYml0IHZh
bHVlcyBmb3I6CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwJSwgMzYlLCA1
MCUpOworICAgICAgICAqLworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCA5MSwg
MTI4KTsKKyAgICB9CisgICAgLmNvbG9yLWRvZGdlIHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6
IGN1c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvci1k
b2RnZSBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAuNSAxLjApOworICAgIH0KKyAg
ICAuY29sb3ItZG9kZ2UtZXhwZWN0ZWQgeworICAgICAgICAvKgorICAgICAgICAgICAgQ29sb3JE
b2RnZToKKworICAgICAgICAgICAgQ28gPSBpZihDcyA8IDEpCisgICAgICAgICAgICAgICAgICAg
ICBtaW4oMSwgQ2IgLyAoMSAtIENzKSkKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgMQorCisgICAgICAgICAgICByID0gbWluKDEsIDEgLyAoMSAtIDApKSA9IDEK
KyAgICAgICAgICAgIGcgPSBtaW4oMSwgMC4zIC8gKDEgLSAwLjYpKSA9IDAuNzUKKyAgICAgICAg
ICAgIGIgPSBtaW4oMSwgMC41IC8gKDEgLSAwLjUpKSA9IDEKKworICAgICAgICAgICAgVGhlIGVy
cm9yIGluIHRoZSBjb2xvciBjYWxjdWxhdGlvbiByZXF1aXJlcyB1cyB0byB1c2UgdGhlIDgtYml0
IHZhbHVlcyBmb3I6CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwJSwgNzUl
LCAxMDAlKTsKKyAgICAgICAgKi8KKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwg
MTkwLCAyNTUpOworICAgIH0KKyAgICAuY29sb3ItYnVybiB7CisgICAgICAgIC13ZWJraXQtZmls
dGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgY29s
b3ItYnVybiBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAuNSAxLjApOworICAgIH0K
KyAgICAuY29sb3ItYnVybi1leHBlY3RlZCB7CisgICAgICAgIC8qCisgICAgICAgICAgICBDb2xv
ckJ1cm46CisKKyAgICAgICAgICAgIENvID0gaWYoQ3MgPiAwKQorICAgICAgICAgICAgICAgICAg
ICAgMSAtIG1pbigxLCAoMSAtIENiKSAvIENzKQorICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAwCisKKyAgICAgICAgICAgIHIgPSAwCisgICAgICAgICAgICBnID0g
MSAtIG1pbigxLCAoMSAtIDAuMykgLyAwLjYpID0gMAorICAgICAgICAgICAgYiA9IDEgLSBtaW4o
MSwgKDEgLSAwLjUpIC8gMC41KSA9IDAKKyAgICAgICAgKi8KKyAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmdiKDAsIDAsIDEpOworICAgIH0KKyAgICAuaGFyZC1saWdodCB7CisgICAgICAgIC13
ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9y
LmZzJykgaGFyZC1saWdodCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAuNSAxLjAp
OworICAgIH0KKyAgICAuaGFyZC1saWdodC1leHBlY3RlZCB7CisgICAgICAgIC8qCisgICAgICAg
ICAgICBIYXJkTGlnaHQ6CisKKyAgICAgICAgICAgIENvID0gaWYoQ3MgPD0gMC41KQorICAgICAg
ICAgICAgICAgICAgICAgTXVsdGlwbHkoQ2IsIDIgKiBDcykKKyAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgU2NyZWVuKENiLCAyICogQ3MgLTEpCisgICAgICAgICAg
ICAgICA9IGlmKENzIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIENiICogKDIgKiBDcykK
KyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgQ2IgKyAoMiAqIENz
IC0gMSkgLSAoQ2IgKiAoMiAqIENzIC0gMSkpCisKKyAgICAgICAgICAgIHIgPSAxICogKDIgKiAw
KSA9IDAKKyAgICAgICAgICAgIGcgPSAwLjMgKyAoMiAqIDAuNiAtIDEpIC0gKDAuMyAqICgyICog
MC42IC0gMSkpID0gMC40NAorICAgICAgICAgICAgYiA9IDAuNSAqICgyICogMC41KSA9IDAuNQor
ICAgICAgICAqLworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCUsIDQ0JSwgNTAlKTsK
KyAgICB9CisgICAgLnNvZnQtbGlnaHQgeworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9t
KG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIHNvZnQtbGlnaHQgc291
cmNlLWF0b3ApLCBtaXhfY29sb3IgMC4wIDAuNiAwLjUgMS4wKTsKKyAgICB9CisgICAgLnNvZnQt
bGlnaHQtZXhwZWN0ZWQgeworICAgICAgICAvKgorICAgICAgICAgICAgU29mdExpZ2h0OgorCisg
ICAgICAgICAgICBDbyA9IGlmKENzIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIENiIC0g
KDEgLSAyICogQ3MpICogQ2IgKiAoMSAtIENiKQorICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICBDYiArICgyICogQ3MgLSAxKSAqIChEKENiKSAtIENiKQorCisgICAg
ICAgICAgICB3aXRoCisKKyAgICAgICAgICAgIEQoQ2IpID0gaWYoQ2IgPD0gMC4yNSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICgxNiAqIENiIC0gMTIpICogQ2IgKyA0KSAqIENiCisgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHNxcnQoQ2IpCisKKyAg
ICAgICAgICAgIEQuciA9IHNxcnQoMSkgPSAxCisgICAgICAgICAgICBELmcgPSBzcXJ0KDAuMykg
PSAwLjU0NzcyMjU1NzUwNTE2NgorICAgICAgICAgICAgRC5iID0gc3FydCgwLjUpID0gMC43MDcx
MDY3ODExODY1NDgKKyAgICAgICAgICAgIHIgPSAxIC0gKDEgLSAyICogMCkgKiAxICogKDEgLSAx
KSA9IDEKKyAgICAgICAgICAgIGcgPSAwLjMgKyAoMiAqIDAuNiAtIDEpICogKEQuZyAtIDAuMykg
PSAwLjM0OTU0NDUxMTUwMTAzMworICAgICAgICAgICAgYiA9IDAuNSAtICgxIC0gMiAqIDAuNSkg
KiAwLjUgKiAoMSAtIDAuNSkgPSAwLjUKKworICAgICAgICAgICAgVGhlIGVycm9yIGluIHRoZSBj
b2xvciBjYWxjdWxhdGlvbiByZXF1aXJlcyB1cyB0byB1c2UgdGhlIDgtYml0IHZhbHVlcyBmb3I6
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwJSwgMzQuOTU0NDUxJSwgNTAl
KTsKKyAgICAgICAgKi8KKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgODksIDEy
OCk7CisgICAgfQogICAgIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTE3OCw2ICsyOTYs
MjYgQEAKICAgICAgICAgPGRpdiBjbGFzcz0iZGVzdGluYXRpb24gZXhjbHVzaW9uIj48L2Rpdj4K
ICAgICAgICAgPGRpdiBjbGFzcz0iZXhjbHVzaW9uLWV4cGVjdGVkIj48L2Rpdj4KICAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJkZXN0aW5hdGlvbiBvdmVybGF5Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ib3Zlcmxh
eS1leHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1z
cXVhcmVzIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZGVzdGluYXRpb24gY29sb3ItZG9kZ2UiPjwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1kb2RnZS1leHBlY3RlZCI+PC9kaXY+Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iZGVzdGluYXRpb24gY29sb3ItYnVybiI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbG9yLWJ1cm4tZXhwZWN0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9InBhaXItb2Ytc3F1YXJlcyI+CisgICAgICAgIDxkaXYgY2xhc3M9ImRlc3RpbmF0aW9uIGhh
cmQtbGlnaHQiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJoYXJkLWxpZ2h0LWV4cGVjdGVk
Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0aW5hdGlvbiBzb2Z0LWxpZ2h0Ij48L2Rpdj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ic29mdC1saWdodC1leHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+CiAg
ICAgPCEtLQogICAgICAgICBJZiB5b3UgYWRkIG1vcmUgYmxlbmQgbW9kZXMgdG8gdGhpcyBwYWdl
LCBiZSBjYXJlZnVsIG5vdCB0byBleGNlZWQgNjAwcHggaW4gCiAgICAgICAgIGhlaWdodCwgc2lu
Y2UgRHVtcFJlbmRlclRyZWUgY29tcGFyZXMgODAweDYwMCBzbmFwc2hvdHMgb2YgdGhpcyBwYWdl
Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168543</attachid>
            <date>2012-10-12 23:04:05 -0700</date>
            <delta_ts>2012-10-23 14:35:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98504-20121013150259.patch</filename>
            <type>text/plain</type>
            <size>16042</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE0OTY1NzFkMjEyMzdh
MTc2ZjA5NmEyNDM2NTM4ZDA3YmRkZDNjNy4uNWMxZTE2YTk5MDIwYTZlMmI5N2E1ZjMzOTQyM2Q2
N2MyYmI5NWU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEyLTEwLTEyICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gSW1wbGVtZW50IG92ZXJsYXksIGNvbG9yLWRvZGdlLCBjb2xvci1idXJuLCBoYXJkLWxp
Z2h0LCBzb2Z0LWxpZ2h0IGJsZW5kIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgZXhwcmVzc2lvbnMgZm9yIHRoZSBhZm9yZW1lbnRpb25l
ZCBibGVuZCBtb2Rlcy4gVGhlIGV4cHJlc3Npb25zIGFyZSBsaWZ0ZWQKKyAgICAgICAgZGlyZWN0
bHkgZnJvbSB0aGUgQ1NTIENvbXBvc2l0aW5nIGFuZCBCbGVuZGluZyBzcGVjIFsxXS4gV2ViS2l0
IGFkZHMgdGhlc2UKKyAgICAgICAgYmxlbmRpbmcgZXhwcmVzc2lvbnMgdG8gdGhlIGF1dGhvcidz
IHNoYWRlci4KKworICAgICAgICBbMV06IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvRlhURi9yYXdm
aWxlL3RpcC9jb21wb3NpdGluZy9pbmRleC5odG1sI2JsZW5kaW5nbm9ybWFsCisKKyAgICAgICAg
VGVzdDogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtOjpyZXdyaXRlTWl4RnJhZ21lbnRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyk6CisKKzIwMTIt
MTAtMTIgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKICAgICAg
ICAgW1dLMl0gQWRkIEN1c3RvbUZpbHRlck9wZXJhdGlvbiBzZXJpYWxpemF0aW9uIGluIEFyZ3Vt
ZW50Q29kZXIuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05ODczMwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNw
cAppbmRleCBhMTM3OWRmNjZjMmRlODI2ODdjYzU0NjJkZjFlZDIzNmQxM2MzNGUzLi43MzlmZjdh
OTIzZjY4NTNiNDQxYWY1NjY1MzBiMzA1ODU4ZWQ3YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dy
YW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIEN1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OnJld3JpdGVNaXhGcmFnbWVudFNoYWRlcigpCiAg
ICAgICAgICAgICBjc3NfbWFpbigpOwogICAgICAgICAgICAgbWVkaXVtcCB2ZWM0IG9yaWdpbmFs
Q29sb3IgPSB0ZXh0dXJlMkQoY3NzX3VfdGV4dHVyZSwgY3NzX3ZfdGV4Q29vcmQpOwogICAgICAg
ICAgICAgbWVkaXVtcCB2ZWM0IG11bHRpcGxpZWRDb2xvciA9IGNzc19Db2xvck1hdHJpeCAqIG9y
aWdpbmFsQ29sb3I7Ci0gICAgICAgICAgICBtZWRpdW1wIHZlYzMgYmxlbmRlZENvbG9yID0gY3Nz
X0JsZW5kKG11bHRpcGxpZWRDb2xvci5yZ2IsIGNzc19NaXhDb2xvci5yZ2IpOworICAgICAgICAg
ICAgbWVkaXVtcCB2ZWMzIGJsZW5kZWRDb2xvciA9IGNzc19CbGVuZENvbG9yKG11bHRpcGxpZWRD
b2xvci5yZ2IsIGNzc19NaXhDb2xvci5yZ2IpOwogICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0g
Y3NzX0NvbXBvc2l0ZShtdWx0aXBsaWVkQ29sb3IucmdiLCBtdWx0aXBsaWVkQ29sb3IuYSwgYmxl
bmRlZENvbG9yLnJnYiwgY3NzX01peENvbG9yLmEpOwogICAgICAgICB9CiAgICAgKSk7CkBAIC0x
ODAsMzYgKzE4MCwxMjQgQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmJs
ZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKICAgICAvLyBJbXBsZW1l
bnRlZCB1c2luZyB0aGUgc2FtZSBzeW1ib2wgbmFtZXMgYXMgdGhlIENvbXBvc2l0aW5nIGFuZCBC
bGVuZGluZyBzcGVjOgogICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvRlhURi9yYXdmaWxl
L3RpcC9jb21wb3NpdGluZy9pbmRleC5odG1sI2JsZW5kaW5nbm9ybWFsCi0gICAgLy8gQ3M6IGlz
IHRoZSBzb3VyY2UgY29sb3IKLSAgICAvLyBDYjogaXMgdGhlIGJhY2tkcm9wIGNvbG9yCi0gICAg
Y29uc3QgY2hhciogZXhwcmVzc2lvbiA9IDA7CisgICAgLy8gQ3M6IGlzIHRoZSBzb3VyY2UgY29s
b3IgaW4gY3NzX0JsZW5kQ29sb3IoKSBhbmQgdGhlIHNvdXJjZSBjb2xvciBjb21wb25lbnQgaW4g
Y3NzX0JsZW5kQ29tcG9uZW50KCkKKyAgICAvLyBDYjogaXMgdGhlIGJhY2tkcm9wIGNvbG9yIGlu
IGNzc19CbGVuZENvbG9yKCkgYW5kIHRoZSBiYWNrZHJvcCBjb2xvciBjb21wb25lbnQgaW4gY3Nz
X0JsZW5kQ29tcG9uZW50KCkKKyAgICBjb25zdCBjaGFyKiBibGVuZENvbG9yRXhwcmVzc2lvbiA9
ICJ2ZWMzKGNzc19CbGVuZENvbXBvbmVudChDYi5yLCBDcy5yKSwgY3NzX0JsZW5kQ29tcG9uZW50
KENiLmcsIENzLmcpLCBjc3NfQmxlbmRDb21wb25lbnQoQ2IuYiwgQ3MuYikpIjsKKyAgICBjb25z
dCBjaGFyKiBibGVuZENvbXBvbmVudEV4cHJlc3Npb24gPSAiQ28gPSAwLjA7IjsKICAgICBzd2l0
Y2ggKGJsZW5kTW9kZSkgewogICAgIGNhc2UgQmxlbmRNb2RlTm9ybWFsOgotICAgICAgICBleHBy
ZXNzaW9uID0gIkNzIjsKKyAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Npb24gPSAiQ3MiOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZU11bHRpcGx5OgotICAgICAgICBleHByZXNz
aW9uID0gIkNzICogQ2IiOworICAgICAgICBibGVuZENvbG9yRXhwcmVzc2lvbiA9ICJDcyAqIENi
IjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVTY3JlZW46Ci0gICAgICAgIGV4
cHJlc3Npb24gPSAiQ2IgKyBDcyAtIChDYiAqIENzKSI7CisgICAgICAgIGJsZW5kQ29sb3JFeHBy
ZXNzaW9uID0gIkNiICsgQ3MgLSAoQ2IgKiBDcykiOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJsZW5kTW9kZURhcmtlbjoKLSAgICAgICAgZXhwcmVzc2lvbiA9ICJtaW4oQ2IsIENzKSI7Cisg
ICAgICAgIGJsZW5kQ29sb3JFeHByZXNzaW9uID0gIm1pbihDYiwgQ3MpIjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBCbGVuZE1vZGVMaWdodGVuOgotICAgICAgICBleHByZXNzaW9uID0gIm1h
eChDYiwgQ3MpIjsKKyAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Npb24gPSAibWF4KENiLCBDcyki
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZURpZmZlcmVuY2U6Ci0gICAgICAg
IGV4cHJlc3Npb24gPSAiYWJzKENiIC0gQ3MpIjsKKyAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Np
b24gPSAiYWJzKENiIC0gQ3MpIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVF
eGNsdXNpb246Ci0gICAgICAgIGV4cHJlc3Npb24gPSAiQ2IgKyBDcyAtIDIuMCAqIENiICogQ3Mi
OworICAgICAgICBibGVuZENvbG9yRXhwcmVzc2lvbiA9ICJDYiArIENzIC0gMi4wICogQ2IgKiBD
cyI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlT3ZlcmxheToKKyAgICAgICAg
LyoKKyAgICAgICAgICAgIENvID0gSGFyZExpZ2h0KENzLCBDYikKKyAgICAgICAgICAgICAgID0g
aWYoQ2IgPD0gMC41KQorICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbHkoQ3MsIDIgeCBDYikK
KyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgU2NyZWVuKENzLCAy
IHggQ2IgLSAxKQorICAgICAgICAgICAgICAgPSBpZihDYiA8PSAwLjUpCisgICAgICAgICAgICAg
ICAgICAgICBDcyB4ICgyIHggQ2IpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgIENzICsgKDIgeCBDYiAtIDEpIC0gKENzIHggKDIgeCBDYiAtIDEpKQorICAgICAg
ICAqLworICAgICAgICBibGVuZENvbXBvbmVudEV4cHJlc3Npb24gPSBTSEFERVIoCisgICAgICAg
ICAgICBpZiAoQ2IgPD0gMC41KQorICAgICAgICAgICAgICAgIENvID0gQ3MgKiAoMi4wICogQ2Ip
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENvID0gQ3MgKyAoMi4wICogQ2Ig
LSAxLjApIC0gKENzICogKDIuMCAqIENiIC0gMS4wKSk7CisgICAgICAgICk7CisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlQ29sb3JEb2RnZToKKyAgICAgICAgLyoKKyAgICAgICAg
ICAgIENvID0gaWYoQ3MgPCAxKQorICAgICAgICAgICAgICAgICAgICAgbWluKDEsIENiIC8gKDEg
LSBDcykpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIDEKKyAg
ICAgICAgKi8KKyAgICAgICAgYmxlbmRDb21wb25lbnRFeHByZXNzaW9uID0gU0hBREVSKAorICAg
ICAgICAgICAgaWYgKENzIDwgMS4wKQorICAgICAgICAgICAgICAgIENvID0gbWluKDEuMCwgQ2Ig
LyAoMS4wIC0gQ3MpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDbyA9IDEu
MDsKKyAgICAgICAgKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVDb2xvckJ1
cm46CisgICAgICAgIC8qCisgICAgICAgICAgICBDbyA9IGlmKENzID4gMCkKKyAgICAgICAgICAg
ICAgICAgICAgIDEgLSBtaW4oMSwgKDEgLSBDYikgLyBDcykKKyAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgMAorICAgICAgICAqLworICAgICAgICBibGVuZENvbXBv
bmVudEV4cHJlc3Npb24gPSBTSEFERVIoCisgICAgICAgICAgICBpZiAoQ3MgPiAwLjApCisgICAg
ICAgICAgICAgICAgQ28gPSAxLjAgLSBtaW4oMS4wLCAoMS4wIC0gQ2IpIC8gQ3MpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENvID0gMC4wOworICAgICAgICApOworICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZUhhcmRMaWdodDoKKyAgICAgICAgLyoKKyAgICAg
ICAgICAgIENvID0gaWYoQ3MgPD0gMC41KQorICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbHko
Q2IsIDIgeCBDcykKKyAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
U2NyZWVuKENiLCAyIHggQ3MgLTEpCisgICAgICAgICAgICAgICA9IGlmKENzIDw9IDAuNSkKKyAg
ICAgICAgICAgICAgICAgICAgIENiIHggKDIgeCBDcykKKyAgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgQ2IgKyAoMiB4IENzIC0gMSkgLSAoQ2IgeCAoMiB4IENzIC0g
MSkpCisgICAgICAgICovCisgICAgICAgIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiA9IFNIQURF
UigKKyAgICAgICAgICAgIGlmIChDcyA8PSAwLjUpCisgICAgICAgICAgICAgICAgQ28gPSBDYiAq
ICgyLjAgKiBDcyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ28gPSBDYiAr
ICgyLjAgKiBDcyAtIDEuMCkgLSAoQ2IgKiAoMi4wICogQ3MgLSAxLjApKTsKKyAgICAgICAgKTsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVTb2Z0TGlnaHQ6CisgICAgICAgIC8q
CisgICAgICAgICAgICBDbyA9IGlmKENzIDw9IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIENi
IC0gKDEgLSAyIHggQ3MpIHggQ2IgeCAoMSAtIENiKQorICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICBDYiArICgyIHggQ3MgLSAxKSB4IChEKENiKSAtIENiKQorCisg
ICAgICAgICAgICB3aXRoCisKKyAgICAgICAgICAgIEQoQ2IpID0gaWYoQ2IgPD0gMC4yNSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICgxNiAqIENiIC0gMTIpIHggQ2IgKyA0KSB4IENiCisgICAg
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHNxcnQoQ2IpCisg
ICAgICAgICovCisgICAgICAgIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiA9IFNIQURFUigKKyAg
ICAgICAgICAgIG1lZGl1bXAgZmxvYXQgRDsKKyAgICAgICAgICAgIGlmIChDYiA8PSAwLjI1KQor
ICAgICAgICAgICAgICAgIEQgPSAoKDE2LjAgKiBDYiAtIDEyLjApICogQ2IgKyA0LjApICogQ2I7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgRCA9IHNxcnQoQ2IpOworCisgICAg
ICAgICAgICBpZiAoQ3MgPD0gMC41KQorICAgICAgICAgICAgICAgIENvID0gQ2IgLSAoMS4wIC0g
Mi4wICogQ3MpICogQ2IgKiAoMS4wIC0gQ2IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIENvID0gQ2IgKyAoMi4wICogQ3MgLSAxLjApICogKEQgLSBDYik7CisgICAgICAgICk7
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlSHVlOgogICAgIGNhc2UgQmxlbmRN
b2RlU2F0dXJhdGlvbjoKICAgICBjYXNlIEJsZW5kTW9kZUNvbG9yOgpAQCAtMjE4LDEzICszMDYs
MTggQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmJsZW5kRnVuY3Rpb25T
dHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAg
IH0KIAotICAgIEFTU0VSVChleHByZXNzaW9uKTsKICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQo
U0hBREVSKAotICAgICAgICBtZWRpdW1wIHZlYzMgY3NzX0JsZW5kKG1lZGl1bXAgdmVjMyBDYiwg
bWVkaXVtcCB2ZWMzIENzKQorICAgICAgICBtZWRpdW1wIGZsb2F0IGNzc19CbGVuZENvbXBvbmVu
dChtZWRpdW1wIGZsb2F0IENiLCBtZWRpdW1wIGZsb2F0IENzKQorICAgICAgICB7CisgICAgICAg
ICAgICBtZWRpdW1wIGZsb2F0IENvOworICAgICAgICAgICAgJXMKKyAgICAgICAgICAgIHJldHVy
biBDbzsKKyAgICAgICAgfQorICAgICAgICBtZWRpdW1wIHZlYzMgY3NzX0JsZW5kQ29sb3IobWVk
aXVtcCB2ZWMzIENiLCBtZWRpdW1wIHZlYzMgQ3MpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJl
dHVybiAlczsKICAgICAgICAgfQotICAgICksIGV4cHJlc3Npb24pOworICAgICksIGJsZW5kQ29t
cG9uZW50RXhwcmVzc2lvbiwgYmxlbmRDb2xvckV4cHJlc3Npb24pOwogfQogCiBTdHJpbmcgQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6Y29tcG9zaXRlRnVuY3Rpb25TdHJpbmcoQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTE2NjgyODRhYTQ5ODg1OWE4
MGM1MzJjN2ZlNTkyMjMxZTg1YzQxYy4uNWZiN2U1M2FmODFjYWY3N2QwMWNkYmI3ODA3M2UwYzY1
MjE1Y2FiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEwLTEyICBIdWFuZyBEb25nc3Vu
ZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtDU1MgU2hhZGVyc10gSW1w
bGVtZW50IG92ZXJsYXksIGNvbG9yLWRvZGdlLCBjb2xvci1idXJuLCBoYXJkLWxpZ2h0LCBzb2Z0
LWxpZ2h0IGJsZW5kIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTg1MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgdGhlIHRlc3QgZm9yIHRoZSBhZm9yZW1lbnRpb25lZCBibGVuZCBt
b2Rlcy4KKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVu
ZC1tb2Rlcy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3Vz
dG9tLWZpbHRlci1ibGVuZC1tb2Rlcy5odG1sOgorCiAyMDEyLTEwLTEzICBIdWFuZyBEb25nc3Vu
ZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIFtDU1MgU2hhZGVyc10gSW1w
bGVtZW50IGFsbCBjb21wb3NpdGUgb3BlcmF0b3JzIGV4Y2VwdCBkZXN0aW5hdGlvbiBhbmQgbGln
aHRlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9t
LWZpbHRlci1ibGVuZC1tb2Rlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLWV4cGVjdGVkLmh0bWwKaW5kZXgg
ZWUyMzU1M2Q4NjA1MzVlZDYzMDA4MzMwNmVjMDhlMWVhZGQxNTg4YS4uNjgyNDAzZDkyZmFkM2Rm
ODBhMDFkMTE4YTAxOTBmYTI4MmYyN2Y5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLWV4cGVjdGVkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1v
ZGVzLWV4cGVjdGVkLmh0bWwKQEAgLTQwLDYgKzQwLDIxIEBACiAgICAgLmV4Y2x1c2lvbi1leHBl
Y3RlZCB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDEzOCwgMTI3KTsKICAg
ICB9CisgICAgLm92ZXJsYXktZXhwZWN0ZWQgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoMjU1LCA5MSwgMTI4KTsKKyAgICB9CisgICAgLmNvbG9yLWRvZGdlLWV4cGVjdGVkIHsKKyAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMTkwLCAyNTUpOworICAgIH0KKyAgICAu
Y29sb3ItYnVybi1leHBlY3RlZCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUs
IDMxLCA5Nik7CisgICAgfQorICAgIC5oYXJkLWxpZ2h0LWV4cGVjdGVkIHsKKyAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDAlLCA0NCUsIDUwJSk7CisgICAgfQorICAgIC5zb2Z0LWxpZ2h0
LWV4cGVjdGVkIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgODksIDEyOCk7
CisgICAgfQogICAgIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTcxLDYgKzg2LDI2IEBA
CiAgICAgICAgIDxkaXYgY2xhc3M9ImV4Y2x1c2lvbi1leHBlY3RlZCI+PC9kaXY+CiAgICAgICAg
IDxkaXYgY2xhc3M9ImV4Y2x1c2lvbi1leHBlY3RlZCI+PC9kaXY+CiAgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ib3Zlcmxh
eS1leHBlY3RlZCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktZXhwZWN0ZWQi
PjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBhaXItb2Ytc3F1YXJlcyI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWRvZGdlLWV4cGVjdGVkIj48L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iY29sb3ItZG9kZ2UtZXhwZWN0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9InBhaXItb2Ytc3F1YXJlcyI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9y
LWJ1cm4tZXhwZWN0ZWQiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1idXJuLWV4
cGVjdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFy
ZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJoYXJkLWxpZ2h0LWV4cGVjdGVkIj48L2Rpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaGFyZC1saWdodC1leHBlY3RlZCI+PC9kaXY+CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
c29mdC1saWdodC1leHBlY3RlZCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNvZnQtbGln
aHQtZXhwZWN0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgogICAgIDwhLS0KICAgICAgICAgSWYgeW91
IGFkZCBtb3JlIGJsZW5kIG1vZGVzIHRvIHRoaXMgcGFnZSwgYmUgY2FyZWZ1bCBub3QgdG8gZXhj
ZWVkIDYwMHB4IGluIAogICAgICAgICBoZWlnaHQsIHNpbmNlIER1bXBSZW5kZXJUcmVlIGNvbXBh
cmVzIDgwMHg2MDAgc25hcHNob3RzIG9mIHRoaXMgcGFnZS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVuZC1tb2Rlcy5odG1sIGIv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVz
Lmh0bWwKaW5kZXggMjZhYjAyYTcxNjZjNDQ0NDlkNDA2M2NjOGRlNTc5YTlmODAzMTg1OC4uYjJm
NDA5NWNjZWY4M2Q3MDhlNDM0MzBiOWE4ZjIwYjc1YjMyMjgwZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLW1vZGVzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5k
LW1vZGVzLmh0bWwKQEAgLTE0Nyw2ICsxNDcsMTI3IEBACiAgICAgICAgICovCiAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYigyNTUsIDEzOCwgMTI3KTsKICAgICB9CisgICAgLm92ZXJsYXkg
eworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3Vy
Y2VzL21peC1jb2xvci5mcycpIG92ZXJsYXkgc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMC4wIDAu
NiAwLjUgMS4wKTsKKyAgICB9CisgICAgLm92ZXJsYXktZXhwZWN0ZWQgeworICAgICAgICAvKgor
ICAgICAgICAgICAgT3ZlcmxheToKKworICAgICAgICAgICAgQ28gPSBIYXJkTGlnaHQoQ3MsIENi
KQorICAgICAgICAgICAgICAgPSBpZihDYiA8PSAwLjUpCisgICAgICAgICAgICAgICAgICAgICBN
dWx0aXBseShDcywgMiAqIENiKQorICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICBTY3JlZW4oQ3MsIDIgKiBDYiAtIDEpCisgICAgICAgICAgICAgICA9IGlmKENiIDw9
IDAuNSkKKyAgICAgICAgICAgICAgICAgICAgIENzICogKDIgKiBDYikKKyAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgQ3MgKyAoMiAqIENiIC0gMSkgLSAoQ3MgKiAo
MiAqIENiIC0gMSkpCisKKyAgICAgICAgICAgIHIgPSAwICsgKDIgKiAxIC0gMSkgLSAoMCAqICgy
ICogMSAtIDEpKSA9IDEKKyAgICAgICAgICAgIGcgPSAwLjYgKiAoMiAqIDAuMykgPSAwLjM2Cisg
ICAgICAgICAgICBiID0gMC41ICogKDIgKiAwLjUpID0gMC41CisKKyAgICAgICAgICAgIFRoZSBl
cnJvciBpbiB0aGUgY29sb3IgY2FsY3VsYXRpb24gcmVxdWlyZXMgdXMgdG8gdXNlIHRoZSA4LWJp
dCB2YWx1ZXMgZm9yOgorICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCUsIDM2
JSwgNTAlKTsKKyAgICAgICAgKi8KKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwg
OTEsIDEyOCk7CisgICAgfQorICAgIC5jb2xvci1kb2RnZSB7CisgICAgICAgIC13ZWJraXQtZmls
dGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgY29s
b3ItZG9kZ2Ugc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMC4wIDAuNiAwLjUgMS4wKTsKKyAgICB9
CisgICAgLmNvbG9yLWRvZGdlLWV4cGVjdGVkIHsKKyAgICAgICAgLyoKKyAgICAgICAgICAgIENv
bG9yRG9kZ2U6CisKKyAgICAgICAgICAgIENvID0gaWYoQ3MgPCAxKQorICAgICAgICAgICAgICAg
ICAgICAgbWluKDEsIENiIC8gKDEgLSBDcykpCisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgIDEKKworICAgICAgICAgICAgciA9IG1pbigxLCAxIC8gKDEgLSAwKSkg
PSAxCisgICAgICAgICAgICBnID0gbWluKDEsIDAuMyAvICgxIC0gMC42KSkgPSAwLjc1CisgICAg
ICAgICAgICBiID0gbWluKDEsIDAuNSAvICgxIC0gMC41KSkgPSAxCisKKyAgICAgICAgICAgIFRo
ZSBlcnJvciBpbiB0aGUgY29sb3IgY2FsY3VsYXRpb24gcmVxdWlyZXMgdXMgdG8gdXNlIHRoZSA4
LWJpdCB2YWx1ZXMgZm9yOgorICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCUs
IDc1JSwgMTAwJSk7CisgICAgICAgICovCisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigy
NTUsIDE5MCwgMjU1KTsKKyAgICB9CisgICAgLmNvbG9yLWJ1cm4geworICAgICAgICAtd2Via2l0
LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycp
IGNvbG9yLWJ1cm4gc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMC44IDAuOCAwLjggMS4wKTsKKyAg
ICB9CisgICAgLmNvbG9yLWJ1cm4tZXhwZWN0ZWQgeworICAgICAgICAvKgorICAgICAgICAgICAg
Q29sb3JCdXJuOgorCisgICAgICAgICAgICBDbyA9IGlmKENzID4gMCkKKyAgICAgICAgICAgICAg
ICAgICAgIDEgLSBtaW4oMSwgKDEgLSBDYikgLyBDcykKKyAgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgMAorCisgICAgICAgICAgICAgciA9IDEgLSBtaW4oMSwgKDEg
LSAxKSAvIDAuOCkgPSAxCisgICAgICAgICAgICAgZyA9IDEgLSBtaW4oMSwgKDEgLSAwLjMpIC8g
MC44KSA9IDAuMTI1CisgICAgICAgICAgICAgYiA9IDEgLSBtaW4oMSwgKDEgLSAwLjUpIC8gMC44
KSA9IDAuMzc1CisKKyAgICAgICAgICAgIFRoZSBlcnJvciBpbiB0aGUgY29sb3IgY2FsY3VsYXRp
b24gcmVxdWlyZXMgdXMgdG8gdXNlIHRoZSA4LWJpdCB2YWx1ZXMgZm9yOgorICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCUsIDEyLjUlLCAzNy41JSk7CisgICAgICAgICovCisg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDMxLCA5Nik7CisgICAgfQorICAgIC5o
YXJkLWxpZ2h0IHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwo
Jy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBoYXJkLWxpZ2h0IHNvdXJjZS1hdG9wKSwgbWl4
X2NvbG9yIDAuMCAwLjYgMC41IDEuMCk7CisgICAgfQorICAgIC5oYXJkLWxpZ2h0LWV4cGVjdGVk
IHsKKyAgICAgICAgLyoKKyAgICAgICAgICAgIEhhcmRMaWdodDoKKworICAgICAgICAgICAgQ28g
PSBpZihDcyA8PSAwLjUpCisgICAgICAgICAgICAgICAgICAgICBNdWx0aXBseShDYiwgMiAqIENz
KQorICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICBTY3JlZW4oQ2Is
IDIgKiBDcyAtMSkKKyAgICAgICAgICAgICAgID0gaWYoQ3MgPD0gMC41KQorICAgICAgICAgICAg
ICAgICAgICAgQ2IgKiAoMiAqIENzKQorICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICBDYiArICgyICogQ3MgLSAxKSAtIChDYiAqICgyICogQ3MgLSAxKSkKKworICAg
ICAgICAgICAgciA9IDEgKiAoMiAqIDApID0gMAorICAgICAgICAgICAgZyA9IDAuMyArICgyICog
MC42IC0gMSkgLSAoMC4zICogKDIgKiAwLjYgLSAxKSkgPSAwLjQ0CisgICAgICAgICAgICBiID0g
MC41ICogKDIgKiAwLjUpID0gMC41CisgICAgICAgICovCisgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYigwJSwgNDQlLCA1MCUpOworICAgIH0KKyAgICAuc29mdC1saWdodCB7CisgICAgICAg
IC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNv
bG9yLmZzJykgc29mdC1saWdodCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjAgMC42IDAuNSAx
LjApOworICAgIH0KKyAgICAuc29mdC1saWdodC1leHBlY3RlZCB7CisgICAgICAgIC8qCisgICAg
ICAgICAgICBTb2Z0TGlnaHQ6CisKKyAgICAgICAgICAgIENvID0gaWYoQ3MgPD0gMC41KQorICAg
ICAgICAgICAgICAgICAgICAgQ2IgLSAoMSAtIDIgKiBDcykgKiBDYiAqICgxIC0gQ2IpCisgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIENiICsgKDIgKiBDcyAtIDEp
ICogKEQoQ2IpIC0gQ2IpCisKKyAgICAgICAgICAgIHdpdGgKKworICAgICAgICAgICAgRChDYikg
PSBpZihDYiA8PSAwLjI1KQorICAgICAgICAgICAgICAgICAgICAgICAgKDE2ICogQ2IgLSAxMikg
KiBDYiArIDQpICogQ2IKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgc3FydChDYikKKworICAgICAgICAgICAgRC5yID0gc3FydCgxKSA9IDEKKyAgICAg
ICAgICAgIEQuZyA9IHNxcnQoMC4zKSA9IDAuNTQ3NzIyNTU3NTA1MTY2CisgICAgICAgICAgICBE
LmIgPSBzcXJ0KDAuNSkgPSAwLjcwNzEwNjc4MTE4NjU0OAorICAgICAgICAgICAgciA9IDEgLSAo
MSAtIDIgKiAwKSAqIDEgKiAoMSAtIDEpID0gMQorICAgICAgICAgICAgZyA9IDAuMyArICgyICog
MC42IC0gMSkgKiAoRC5nIC0gMC4zKSA9IDAuMzQ5NTQ0NTExNTAxMDMzCisgICAgICAgICAgICBi
ID0gMC41IC0gKDEgLSAyICogMC41KSAqIDAuNSAqICgxIC0gMC41KSA9IDAuNQorCisgICAgICAg
ICAgICBUaGUgZXJyb3IgaW4gdGhlIGNvbG9yIGNhbGN1bGF0aW9uIHJlcXVpcmVzIHVzIHRvIHVz
ZSB0aGUgOC1iaXQgdmFsdWVzIGZvcjoKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJn
YigxMDAlLCAzNC45NTQ0NTElLCA1MCUpOworICAgICAgICAqLworICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2IoMjU1LCA4OSwgMTI4KTsKKyAgICB9CiAgICAgPC9zdHlsZT4KIDwvaGVhZD4K
IDxib2R5PgpAQCAtMTc4LDYgKzI5OSwyNiBAQAogICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0aW5h
dGlvbiBleGNsdXNpb24iPjwvZGl2PgogICAgICAgICA8ZGl2IGNsYXNzPSJleGNsdXNpb24tZXhw
ZWN0ZWQiPjwvZGl2PgogICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBhaXItb2Ytc3F1YXJl
cyI+CisgICAgICAgIDxkaXYgY2xhc3M9ImRlc3RpbmF0aW9uIG92ZXJsYXkiPjwvZGl2PgorICAg
ICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LWV4cGVjdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJwYWlyLW9mLXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0
aW5hdGlvbiBjb2xvci1kb2RnZSI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWRv
ZGdlLWV4cGVjdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwYWlyLW9m
LXNxdWFyZXMiPgorICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0aW5hdGlvbiBjb2xvci1idXJuIj48
L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItYnVybi1leHBlY3RlZCI+PC9kaXY+Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icGFpci1vZi1zcXVhcmVzIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iZGVzdGluYXRpb24gaGFyZC1saWdodCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9ImhhcmQtbGlnaHQtZXhwZWN0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9InBhaXItb2Ytc3F1YXJlcyI+CisgICAgICAgIDxkaXYgY2xhc3M9ImRlc3RpbmF0aW9uIHNv
ZnQtbGlnaHQiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzb2Z0LWxpZ2h0LWV4cGVjdGVk
Ij48L2Rpdj4KKyAgICA8L2Rpdj4KICAgICA8IS0tCiAgICAgICAgIElmIHlvdSBhZGQgbW9yZSBi
bGVuZCBtb2RlcyB0byB0aGlzIHBhZ2UsIGJlIGNhcmVmdWwgbm90IHRvIGV4Y2VlZCA2MDBweCBp
biAKICAgICAgICAgaGVpZ2h0LCBzaW5jZSBEdW1wUmVuZGVyVHJlZSBjb21wYXJlcyA4MDB4NjAw
IHNuYXBzaG90cyBvZiB0aGlzIHBhZ2UuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>