<?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>119614</bug_id>
          
          <creation_ts>2013-08-08 23:14:06 -0700</creation_ts>
          <short_desc>[CSS Masking] Add -webkit-mask-source-type property, with alpha and luminance values</short_desc>
          <delta_ts>2013-08-18 22:25:04 -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>CSS</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>119908</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrei Parvu">parvu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>krit</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>915697</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Parvu">parvu</who>
    <bug_when>2013-08-08 23:14:06 -0700</bug_when>
    <thetext>The CSS masking specification contains the mask-type property, which can have the value of alpha or luminance, thus creating two separate types of masks.
This bug regards only the adding and parsing of the mask-type property - we do not yet apply different masks depending on the mask type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915705</commentid>
    <comment_count>1</comment_count>
      <attachid>208398</attachid>
    <who name="Andrei Parvu">parvu</who>
    <bug_when>2013-08-09 00:01:08 -0700</bug_when>
    <thetext>Created attachment 208398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915707</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-09 00:05:34 -0700</bug_when>
    <thetext>Attachment 208398 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/masking/parsing-mask-type-expected.txt&apos;, u&apos;LayoutTests/fast/masking/parsing-mask-type.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSProperty.cpp&apos;, u&apos;Source/WebCore/css/CSSPropertyNames.in&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.cpp&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.h&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/rendering/style/FillLayer.cpp&apos;, u&apos;Source/WebCore/rendering/style/FillLayer.h&apos;, u&apos;Source/WebCore/rendering/style/RenderStyleConstants.h&apos;, u&apos;Source/WebCore/rendering/style/SVGRenderStyleDefs.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/style/RenderStyleConstants.h:167:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916256</commentid>
    <comment_count>3</comment_count>
    <who name="Andrei Parvu">parvu</who>
    <bug_when>2013-08-12 05:12:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 208398 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/masking/parsing-mask-type-expected.txt&apos;, u&apos;LayoutTests/fast/masking/parsing-mask-type.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSProperty.cpp&apos;, u&apos;Source/WebCore/css/CSSPropertyNames.in&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.cpp&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.h&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/rendering/style/FillLayer.cpp&apos;, u&apos;Source/WebCore/rendering/style/FillLayer.h&apos;, u&apos;Source/WebCore/rendering/style/RenderStyleConstants.h&apos;, u&apos;Source/WebCore/rendering/style/SVGRenderStyleDefs.h&apos;]&quot; exit_code: 1
&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:167:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Total errors found: 1 in 15 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

EMaskType was already defined in SVGRenderStyleDefs, I only moved it to RenderStyleConstants</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916264</commentid>
    <comment_count>4</comment_count>
      <attachid>208398</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-08-12 05:41:04 -0700</bug_when>
    <thetext>Comment on attachment 208398
Patch

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

Great patch! Still some snippets.

&gt; Source/WebCore/ChangeLog:4
&gt; +        [CSS Masking]Add -webkit-mask-type property, with alpha and luminance values
&gt; +        Added the -webkit-mask-type property, which can have a value of alpha or

First title, then in a new line the link to the bug report, a newline and then the description.

&gt; Source/WebCore/ChangeLog:13
&gt; +        * css/CSSComputedStyleDeclaration.cpp: Added case for CSSPropertyWebkitMaskType

Sentences please. You miss the period.

&gt; Source/WebCore/ChangeLog:15
&gt; +        * css/CSSParser.cpp: Parsed the values for CSSPropertyWebkitMaskType

Ditto, in the other sentences as well. Stop here.

&gt; Source/WebCore/ChangeLog:39
&gt; +        * rendering/style/RenderStyleConstants.h: Added EMaskType
&gt; +        * rendering/style/SVGRenderStyleDefs.h: Removed EMaskType

s/Added EMaskType/Moved EMaskType from SVGRenderStyleDefs.h./

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1789
&gt; +        case CSSPropertyWebkitMaskType: {
&gt; +            const FillLayer* layers = style-&gt;maskLayers();
&gt; +
&gt; +            if (!layers)
&gt; +                return cssValuePool().createIdentifierValue(CSSValueNone);
&gt; +
&gt; +            if (!layers-&gt;next()) {
&gt; +                if (layers-&gt;maskType() == MT_ALPHA)
&gt; +                    return cssValuePool().createIdentifierValue(CSSValueAlpha);
&gt; +                return cssValuePool().createIdentifierValue(CSSValueLuminance);
&gt; +            }
&gt; +
&gt; +            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
&gt; +            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next()) {
&gt; +                if (currLayer-&gt;maskType() == MT_ALPHA)
&gt; +                    list-&gt;append(cssValuePool().createIdentifierValue(CSSValueAlpha));
&gt; +                else
&gt; +                    list-&gt;append(cssValuePool().createIdentifierValue(CSSValueLuminance));
&gt; +            }
&gt; +            return list.release();
&gt; +        }

This needs testing. If you want to, you can add it to a new patch, since we do not compute the style for -webkit-mask yet. Or you need to add the code for testing as we do for the background property.

&gt; Source/WebCore/css/CSSParser.cpp:4438
&gt; +                case CSSPropertyWebkitMaskType: {
&gt; +                    if (val-&gt;id == CSSValueAlpha || val-&gt;id == CSSValueLuminance) {
&gt; +                        currValue = cssValuePool().createIdentifierValue(val-&gt;id);
&gt; +                        m_valueList-&gt;next();
&gt; +                    } else
&gt; +                        currValue = 0;
&gt; +                    break;
&gt; +                }

Hm, so the -webkit-mask property does not support parsing of luminance and alpha yet. Can you open a separate bug report and state that in the ChangeLog explicitly please?

&gt; Source/WebCore/css/CSSToStyleMap.cpp:313
&gt; +    CSSPrimitiveValue* primitiveValue = static_cast&lt;CSSPrimitiveValue*&gt;(value);
&gt; +    layer-&gt;setMaskType(*primitiveValue);

I think you want to set the enumeration and not pass the CSSPrimtiveValue.

&gt; Source/WebCore/rendering/style/FillLayer.cpp:57
&gt; +    , m_maskType(MT_ALPHA)

For consistency add a initialFillMaskType function that returns the enumeration.

&gt; Source/WebCore/rendering/style/FillLayer.h:191
&gt; +    static EMaskType initialMaskType(EFillLayerType) { return MT_ALPHA; }

So you already have the initial function here. Why didn&apos;t you use it?

&gt; LayoutTests/ChangeLog:10
&gt; +        * fast/masking/parsing-mask-type-expected.txt: Added.
&gt; +        * fast/masking/parsing-mask-type.html: Added.

You can reuse the existing parsing-mask.html test. Just add your -webkit-mask-type tests there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916265</commentid>
    <comment_count>5</comment_count>
      <attachid>208398</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-08-12 05:45:11 -0700</bug_when>
    <thetext>Comment on attachment 208398
Patch

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:4438
&gt;&gt; +                }
&gt; 
&gt; Hm, so the -webkit-mask property does not support parsing of luminance and alpha yet. Can you open a separate bug report and state that in the ChangeLog explicitly please?

Forget to say that it is the -webkit-mask-source-type property, not the -webkit-mask-type property. Also, -webkit-mask-source-type has an initial value of &apos;auto&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916567</commentid>
    <comment_count>6</comment_count>
      <attachid>208597</attachid>
    <who name="Andrei Parvu">parvu</who>
    <bug_when>2013-08-12 23:31:49 -0700</bug_when>
    <thetext>Created attachment 208597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916569</commentid>
    <comment_count>7</comment_count>
    <who name="Andrei Parvu">parvu</who>
    <bug_when>2013-08-12 23:34:16 -0700</bug_when>
    <thetext>&gt; &gt; LayoutTests/ChangeLog:10
&gt; &gt; +        * fast/masking/parsing-mask-type-expected.txt: Added.
&gt; &gt; +        * fast/masking/parsing-mask-type.html: Added.
&gt; 
&gt; You can reuse the existing parsing-mask.html test. Just add your -webkit-mask-type tests there.

Added some tests to the parsing-mask.html file. Also, I didn&apos;t remove my test file, because I wanted to test mask-source-type with multiple fill layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917092</commentid>
    <comment_count>8</comment_count>
      <attachid>208597</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-08-14 05:36:35 -0700</bug_when>
    <thetext>Comment on attachment 208597
Patch

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

Great progress. Some more snippets.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Added the -webkit-mask-type property, which can have a value of auto, alpha or

mask-source-type.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1436
&gt; +    default:
&gt; +        return cssValuePool().createValue(CSSValueAuto);
&gt; +    }

Usually we have ASSERT_NOT_REACHED in the default. To make sure we do not support more than expected.

&gt; Source/WebCore/css/CSSToStyleMap.cpp:323
&gt; +    default:
&gt; +        type = EMaskSourceType::MaskAuto;
&gt; +    }

Ditto. And still set type of course (to initial value: auto).

&gt; Source/WebCore/rendering/style/FillLayer.h:191
&gt; +    static EMaskSourceType initialMaskSourceType(EFillLayerType) { return MaskAuto; }

The spec says that mask-image has alpha as default. So even if we need to support auto for SVG Masks, we already know that it will be alpha for FillLayers. No need to store auto or return auto. Will affect computed value as well.

&gt; LayoutTests/fast/masking/parsing-mask-expected.txt:118
&gt; +PASS innerStyle(&quot;-webkit-mask-source-type&quot;, &quot;&quot;) is null

Test for existing but not supported keywords would be great as well.

&gt; LayoutTests/fast/masking/parsing-mask.html:177
&gt; +negativeTest(&quot;-webkit-mask-source-type&quot;, &quot;&quot;);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917500</commentid>
    <comment_count>9</comment_count>
      <attachid>208805</attachid>
    <who name="Andrei Parvu">parvu</who>
    <bug_when>2013-08-15 06:50:06 -0700</bug_when>
    <thetext>Created attachment 208805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917501</commentid>
    <comment_count>10</comment_count>
      <attachid>208805</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-15 06:58:38 -0700</bug_when>
    <thetext>Comment on attachment 208805
Patch

Attachment 208805 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1473147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917502</commentid>
    <comment_count>11</comment_count>
      <attachid>208805</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-15 06:59:44 -0700</bug_when>
    <thetext>Comment on attachment 208805
Patch

Attachment 208805 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1473148</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917505</commentid>
    <comment_count>12</comment_count>
      <attachid>208806</attachid>
    <who name="Andrei Parvu">parvu</who>
    <bug_when>2013-08-15 07:15:26 -0700</bug_when>
    <thetext>Created attachment 208806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917617</commentid>
    <comment_count>13</comment_count>
      <attachid>208806</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-08-15 12:06:28 -0700</bug_when>
    <thetext>Comment on attachment 208806
Patch

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

Patch looks great. Just a question.

&gt; Source/WebCore/css/CSSToStyleMap.cpp:322
&gt; +    case CSSValueAuto:
&gt; +        break;

Why don&apos;t you set type = EMaskSourceType::MaskAlpha; here? after all, the user explicitly specified auto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917840</commentid>
    <comment_count>14</comment_count>
    <who name="Andrei Parvu">parvu</who>
    <bug_when>2013-08-16 01:03:40 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 208806 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=208806&amp;action=review
&gt; 
&gt; Patch looks great. Just a question.
&gt; 
&gt; &gt; Source/WebCore/css/CSSToStyleMap.cpp:322
&gt; &gt; +    case CSSValueAuto:
&gt; &gt; +        break;
&gt; 
&gt; Why don&apos;t you set type = EMaskSourceType::MaskAlpha; here? after all, the user explicitly specified auto?

Type is already initialized to the default value, which is MaskAlpha, and since auto sets the default value for FillLayer, there&apos;s no need to assign it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917898</commentid>
    <comment_count>15</comment_count>
      <attachid>208806</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-08-16 04:17:16 -0700</bug_when>
    <thetext>Comment on attachment 208806
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917906</commentid>
    <comment_count>16</comment_count>
      <attachid>208806</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-16 04:40:48 -0700</bug_when>
    <thetext>Comment on attachment 208806
Patch

Clearing flags on attachment: 208806

Committed r154174: &lt;http://trac.webkit.org/changeset/154174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917907</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-16 04:40:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918525</commentid>
    <comment_count>18</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-18 22:11:20 -0700</bug_when>
    <thetext>How come the CSS masking code has no feature flag?
Was it decided to make an exception and I missed the thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918526</commentid>
    <comment_count>19</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-08-18 22:20:28 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; How come the CSS masking code has no feature flag?
&gt; Was it decided to make an exception and I missed the thread?

It was not developed behind a flag in the first place. I picked up the work and announced it on the webkit-dev mailing list: http://mac-os-forge.2317878.n4.nabble.com/CSS-Masking-in-WebKit-td191605.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918529</commentid>
    <comment_count>20</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-18 22:25:04 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; It was not developed behind a flag in the first place. I picked up the work and announced it on the webkit-dev mailing list: http://mac-os-forge.2317878.n4.nabble.com/CSS-Masking-in-WebKit-td191605.html

Fair enough :)
I did not remember that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208398</attachid>
            <date>2013-08-09 00:01:08 -0700</date>
            <delta_ts>2013-08-12 23:31:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119614-20130809100106.patch</filename>
            <type>text/plain</type>
            <size>21511</size>
            <attacher name="Andrei Parvu">parvu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDlkZDVmNjc0MjhkYTlj
ZTVkMTQzMWM4MTQzNjliODgyODU3MTk3MC4uNGJhOWRjMDE0ZDIzMDc2Mjg1YjBiNmEyZDRmNTdi
OWQ4ODUyZjE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTA4LTA4ICBBbmRy
ZWkgUGFydnUgIDxwYXJ2dUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBNYXNraW5nXUFkZCAt
d2Via2l0LW1hc2stdHlwZSBwcm9wZXJ0eSwgd2l0aCBhbHBoYSBhbmQgbHVtaW5hbmNlIHZhbHVl
cworICAgICAgICBBZGRlZCB0aGUgLXdlYmtpdC1tYXNrLXR5cGUgcHJvcGVydHksIHdoaWNoIGNh
biBoYXZlIGEgdmFsdWUgb2YgYWxwaGEgb3IKKyAgICAgICAgbHVtaW5hbmNlLiBUaGlzIHBhdGNo
IGNvbnRhaW5zIG9ubHkgdGhlIHBhcnNpbmcgb2YgdGhlIHByb3BlcnR5LCBub3QgdGhlIGFjdHVh
bCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBvZiB0aGUgdHdvIHR5cGVzIG9mIG1hc2tzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NjE0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9t
YXNraW5nL3BhcnNpbmctbWFzay10eXBlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwOiBBZGRlZCBjYXNlIGZvciBDU1NQcm9wZXJ0eVdlYmtpdE1h
c2tUeXBlCisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0
eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDogUGFyc2VkIHRoZSB2YWx1ZXMg
Zm9yIENTU1Byb3BlcnR5V2Via2l0TWFza1R5cGUKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsbFBy
b3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NQ
cm9wZXJ0eU5hbWVzLmluOiBBZGRlZCAtd2Via2l0LW1hc2stdHlwZSBwcm9wZXJ0eQorICAgICAg
ICAqIGNzcy9DU1NUb1N0eWxlTWFwLmNwcDogbWFwIHRoZSBwcm92aWRlZCBtYXNrIHR5cGUgdG8g
dGhlIEZpbGxMYXllciBjbGFzcworICAgICAgICAoV2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFw
RmlsbE1hc2tUeXBlKToKKyAgICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5oOgorICAgICAgICAq
IGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJl
Y2F0ZWRTdHlsZUJ1aWxkZXI6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIGNz
cy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFw
cGx5UHJvcGVydHkpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwOiBB
ZGRlZCB0aGUgbV9tYXNrVHlwZSBwcm9wZXJ0eSB0byB0aGUgRmlsbExheWVyIGNsYXNzCisgICAg
ICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OkZpbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6Om9wZXJh
dG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDogQWRkZWQgbWV0
aG9kcyBmb3Igd29ya2luZyB3aXRoIG1fbWFza1R5cGUKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxM
YXllcjo6bWFza1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppc01hc2tUeXBl
U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0TWFza1R5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGxMYXllcjo6aW5pdGlhbE1hc2tUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaDogQWRkZWQgRU1hc2tUeXBlCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oOiBSZW1vdmVkIEVNYXNrVHlwZQorCiAyMDEz
LTA4LTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3Zl
IG1vcmUgc3R5bGUgcmVjYWxjIGNvZGUgdG8gU3R5bGVSZXNvbHZlVHJlZS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXgg
NzE1ZTM5YzQ5NzM3NjU3OGUxODE0MGJjYjBkMDMxNWQyNWQ5YjdjZC4uNDVmNzE1Nzk3YjNkZjRh
YTNiOTE1ZTk2ZTJiMzdlZTI3ZjA2ZDdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTMyOSw2ICszMjksNyBAQCBzdGF0
aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQ
cm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvbiwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBl
YXQsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZSwKKyAgICBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tUeXBlLAogICAgIENTU1Byb3BlcnR5V2Via2l0TmJzcE1vZGUsCiAgICAgQ1NTUHJvcGVy
dHlXZWJraXRPcmRlciwKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5H
KQpAQCAtMTc2NSw2ICsxNzY2LDI3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5
bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAKICAgICAg
ICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKICAgICAgICAgfQorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFza1R5cGU6IHsKKyAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciog
bGF5ZXJzID0gc3R5bGUtPm1hc2tMYXllcnMoKTsKKworICAgICAgICAgICAgaWYgKCFsYXllcnMp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZU5vbmUpOworCisgICAgICAgICAgICBpZiAoIWxheWVycy0+bmV4dCgpKSB7
CisgICAgICAgICAgICAgICAgaWYgKGxheWVycy0+bWFza1R5cGUoKSA9PSBNVF9BTFBIQSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZUFscGhhKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTHVtaW5hbmNlKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlz
dDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgRmlsbExh
eWVyKiBjdXJyTGF5ZXIgPSBsYXllcnM7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3VyckxheWVy
LT5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VyckxheWVyLT5tYXNrVHlwZSgpID09
IE1UX0FMUEhBKQorICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQWxwaGEpKTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5j
cmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVMdW1pbmFuY2UpKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgfQogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0QmFja2dyb3VuZENvbXBvc2l0ZToKICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdE1hc2tDb21wb3NpdGU6IHsKICAgICAgICAgICAgIGNvbnN0IEZpbGxM
YXllciogbGF5ZXJzID0gcHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tDb21wb3Np
dGUgPyBzdHlsZS0+bWFza0xheWVycygpIDogc3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMzg2YmI3YjcwNzliYmI4MWI3OWFmNDEwZDAwMDA5
MzFiMjkxMjVhOS4uYTU0YmM0NmVmZDc4MDc0Zjc5NmZmMWQ5MzhkNjMyY2QyMmMxNDM5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTIxNDcsNiArMjE0Nyw3IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWDoKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TWFza1Bvc2l0aW9uWToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Np
emU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tUeXBlOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRNYXNrUmVwZWF0OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVw
ZWF0WDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFk6CkBAIC00NDI3LDYg
KzQ0MjgsMTQgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRmlsbFByb3BlcnR5KENTU1Byb3BlcnR5
SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEJiBwcm9wSWQxLAogICAgICAgICAgICAgICAgICAgICAg
ICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNr
VHlwZTogeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLT5pZCA9PSBDU1NWYWx1ZUFscGhh
IHx8IHZhbC0+aWQgPT0gQ1NTVmFsdWVMdW1pbmFuY2UpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cnJWYWx1ZSA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWwt
PmlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVl
ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggMjJkNWJlOTVlZWI4NDA4
MGQ4YTY3ZTM0ZGViYjU5OWE1NTBiMDdkMi4uMTgxNTNkNjQwMzI3MzVjOTM3NTUxMTc1NTJiMzc2
NmJmZGY0NzQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBAIC02NDIsNiArNjQy
LDcgQEAgYm9vbCBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXQ6CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRYOgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRNYXNrUmVwZWF0WToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1R5cGU6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTaXplOgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRNYXhMb2dpY2FsV2lkdGg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1heExvZ2lj
YWxIZWlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IGYwNjhm
NTkyNjM2MDAzYmNkY2YzMzhjNDFlNGJhMzE2ZmUwZGZlMTEuLmNkNzYyNzJhZjY5NGQ0YmJjZjA0
NGUxYmRkMGYwMGY1ZmQ1YTdhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluCkBAIC0zNTksNiArMzU5LDcgQEAgei1pbmRleAogLXdlYmtpdC1tYXNrLXJlcGVhdC14CiAt
d2Via2l0LW1hc2stcmVwZWF0LXkKIC13ZWJraXQtbWFzay1zaXplCistd2Via2l0LW1hc2stdHlw
ZQogLXdlYmtpdC1tYXgtbG9naWNhbC13aWR0aAogLXdlYmtpdC1tYXgtbG9naWNhbC1oZWlnaHQK
IC13ZWJraXQtbWluLWxvZ2ljYWwtd2lkdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNw
cAppbmRleCAxN2E3OWZkZDU0NjBkYWQ3NDQ4YzRhMjc0YTEyOGVhYWJkNTIxZTQzLi40YWNiMzhi
OTgyMWEyMWZkOWMzNDQwZmIyNTg0Y2YwYzIxNzI2NWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Rv
U3R5bGVNYXAuY3BwCkBAIC0yOTksNiArMjk5LDIwIEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFw
RmlsbFlQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXllciogbGF5ZXIs
CiAgICAgICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kWU9yaWdpbigqKHBhaXItPmZpcnN0KCkpKTsK
IH0KIAordm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsTWFza1R5cGUoQ1NTUHJvcGVydHlJRCwg
RmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS0+aXNJ
bml0aWFsVmFsdWUoKSkgeworICAgICAgICBsYXllci0+c2V0TWFza1R5cGUoRmlsbExheWVyOjpp
bml0aWFsTWFza1R5cGUobGF5ZXItPnR5cGUoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBsYXllci0+c2V0TWFza1R5cGUoKnByaW1pdGl2
ZVZhbHVlKTsKK30KKwogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25EZWxheShBbmlt
YXRpb24qIGFuaW1hdGlvbiwgQ1NTVmFsdWUqIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS0+aXNJ
bml0aWFsVmFsdWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5
bGVNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgKaW5kZXggM2NiMTIx
NTBhODQzZThhNDhlMzlhNWI1NDEzNTc1OTI5NGM0MTY3My4uNDU3YzYwYmEwN2ZmMTBjOWY4YzMx
ZTQ3Njc3MTM3OTJhNDRiMTZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Rv
U3R5bGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5oCkBAIC01
Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcEZpbGxTaXplKENTU1Byb3BlcnR5SUQs
IEZpbGxMYXllciosIENTU1ZhbHVlKik7CiAgICAgdm9pZCBtYXBGaWxsWFBvc2l0aW9uKENTU1By
b3BlcnR5SUQsIEZpbGxMYXllciosIENTU1ZhbHVlKik7CiAgICAgdm9pZCBtYXBGaWxsWVBvc2l0
aW9uKENTU1Byb3BlcnR5SUQsIEZpbGxMYXllciosIENTU1ZhbHVlKik7CisgICAgdm9pZCBtYXBG
aWxsTWFza1R5cGUoQ1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiwgQ1NTVmFsdWUqKTsKIAogICAg
IHZvaWQgbWFwQW5pbWF0aW9uRGVsYXkoQW5pbWF0aW9uKiwgQ1NTVmFsdWUqKTsKICAgICB2b2lk
IG1hcEFuaW1hdGlvbkRpcmVjdGlvbihBbmltYXRpb24qLCBDU1NWYWx1ZSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDAzOTAwYjA4ODdj
NjM4ZDI5ZTJmMzVlZDFkZjk0NDFlM2JlZjJlZDAuLjYwNDI5NDMzODJhNjk4ZjgyYmFiMmQ1NmRm
YmE3YmZmMDc4ZTRkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVk
U3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxl
QnVpbGRlci5jcHAKQEAgLTIzMTAsNiArMjMxMCw3IEBAIERlcHJlY2F0ZWRTdHlsZUJ1aWxkZXI6
OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVdlYmtpdE1hc2tSZXBlYXRYLCBBcHBseVByb3BlcnR5RmlsbExheWVyPEVGaWxsUmVwZWF0
LCBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRYLCBNYXNrRmlsbExheWVyLCAmUmVuZGVyU3R5
bGU6OmFjY2Vzc01hc2tMYXllcnMsICZSZW5kZXJTdHlsZTo6bWFza0xheWVycywgJkZpbGxMYXll
cjo6aXNSZXBlYXRYU2V0LCAmRmlsbExheWVyOjpyZXBlYXRYLCAmRmlsbExheWVyOjpzZXRSZXBl
YXRYLCAmRmlsbExheWVyOjpjbGVhclJlcGVhdFgsICZGaWxsTGF5ZXI6OmluaXRpYWxGaWxsUmVw
ZWF0WCwgJkNTU1RvU3R5bGVNYXA6Om1hcEZpbGxSZXBlYXRYPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WSwgQXBw
bHlQcm9wZXJ0eUZpbGxMYXllcjxFRmlsbFJlcGVhdCwgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVw
ZWF0WSwgTWFza0ZpbGxMYXllciwgJlJlbmRlclN0eWxlOjphY2Nlc3NNYXNrTGF5ZXJzLCAmUmVu
ZGVyU3R5bGU6Om1hc2tMYXllcnMsICZGaWxsTGF5ZXI6OmlzUmVwZWF0WVNldCwgJkZpbGxMYXll
cjo6cmVwZWF0WSwgJkZpbGxMYXllcjo6c2V0UmVwZWF0WSwgJkZpbGxMYXllcjo6Y2xlYXJSZXBl
YXRZLCAmRmlsbExheWVyOjppbml0aWFsRmlsbFJlcGVhdFksICZDU1NUb1N0eWxlTWFwOjptYXBG
aWxsUmVwZWF0WT46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5V2Via2l0TWFza1NpemUsIEFwcGx5UHJvcGVydHlGaWxsTGF5ZXI8RmlsbFNpemUs
IENTU1Byb3BlcnR5V2Via2l0TWFza1NpemUsIE1hc2tGaWxsTGF5ZXIsICZSZW5kZXJTdHlsZTo6
YWNjZXNzTWFza0xheWVycywgJlJlbmRlclN0eWxlOjptYXNrTGF5ZXJzLCAmRmlsbExheWVyOjpp
c1NpemVTZXQsICZGaWxsTGF5ZXI6OnNpemUsICZGaWxsTGF5ZXI6OnNldFNpemUsICZGaWxsTGF5
ZXI6OmNsZWFyU2l6ZSwgJkZpbGxMYXllcjo6aW5pdGlhbEZpbGxTaXplLCAmQ1NTVG9TdHlsZU1h
cDo6bWFwRmlsbFNpemU+OjpjcmVhdGVIYW5kbGVyKCkpOworICAgIHNldFByb3BlcnR5SGFuZGxl
cihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tUeXBlLCBBcHBseVByb3BlcnR5RmlsbExheWVyPEVNYXNr
VHlwZSwgQ1NTUHJvcGVydHlXZWJraXRNYXNrVHlwZSwgTWFza0ZpbGxMYXllciwgJlJlbmRlclN0
eWxlOjphY2Nlc3NNYXNrTGF5ZXJzLCAmUmVuZGVyU3R5bGU6Om1hc2tMYXllcnMsICZGaWxsTGF5
ZXI6OmlzTWFza1R5cGVTZXQsICZGaWxsTGF5ZXI6Om1hc2tUeXBlLCAmRmlsbExheWVyOjpzZXRN
YXNrVHlwZSwgJkZpbGxMYXllcjo6Y2xlYXJNYXNrVHlwZSwgJkZpbGxMYXllcjo6aW5pdGlhbE1h
c2tUeXBlLCAmQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbE1hc2tUeXBlPjo6Y3JlYXRlSGFuZGxlcigp
KTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXROYnNwTW9kZSwgQXBw
bHlQcm9wZXJ0eURlZmF1bHQ8RU5CU1BNb2RlLCAmUmVuZGVyU3R5bGU6Om5ic3BNb2RlLCBFTkJT
UE1vZGUsICZSZW5kZXJTdHlsZTo6c2V0TkJTUE1vZGUsIEVOQlNQTW9kZSwgJlJlbmRlclN0eWxl
Ojppbml0aWFsTkJTUE1vZGU+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFu
ZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luLCBBcHBseVByb3BlcnR5RXhw
YW5kaW5nPFN1cHByZXNzVmFsdWUsIENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5Y
LCBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luWT46OmNyZWF0ZUhhbmRsZXIoKSk7
CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmln
aW5YLCBBcHBseVByb3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6cGVyc3BlY3RpdmVPcmlnaW5Y
LCAmUmVuZGVyU3R5bGU6OnNldFBlcnNwZWN0aXZlT3JpZ2luWCwgJlJlbmRlclN0eWxlOjppbml0
aWFsUGVyc3BlY3RpdmVPcmlnaW5YPjo6Y3JlYXRlSGFuZGxlcigpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAppbmRleCA0ZTFlYjYwNGEzODBhZjBhMGMwYjBjNzQxOTk0NGEzNDFk
OGZkYjM4Li5kYzc2ODNjMTI3Y2FmYzdlNGYxMDczMWQ1MjE5YmU3MzgxZmYxZTYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0zMDk5LDYgKzMwOTksNyBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZh
bHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WDoKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFk6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1h
c2tTaXplOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrVHlwZToKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TmJzcE1vZGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNw
ZWN0aXZlT3JpZ2luOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdp
blg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCmluZGV4
IGIxMWUyNGNjZDQ0ODNiZWU5ZTc5ZTc0Zjc3OTUyNTY5NzA1N2FiYmIuLmVmMzgxNmNiNjFhMGQz
ZGE2MjA2ZDY2MmU5ZTc1YjYyNGQ1YzZmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC01NCw2ICs1NCw3IEBAIEZpbGxMYXllcjo6RmlsbExh
eWVyKEVGaWxsTGF5ZXJUeXBlIHR5cGUpCiAgICAgLCBtX2NvbXBvc2l0ZShGaWxsTGF5ZXI6Omlu
aXRpYWxGaWxsQ29tcG9zaXRlKHR5cGUpKQogICAgICwgbV9zaXplVHlwZShGaWxsTGF5ZXI6Omlu
aXRpYWxGaWxsU2l6ZVR5cGUodHlwZSkpCiAgICAgLCBtX2JsZW5kTW9kZShGaWxsTGF5ZXI6Omlu
aXRpYWxGaWxsQmxlbmRNb2RlKHR5cGUpKQorICAgICwgbV9tYXNrVHlwZShNVF9BTFBIQSkKICAg
ICAsIG1faW1hZ2VTZXQoZmFsc2UpCiAgICAgLCBtX2F0dGFjaG1lbnRTZXQoZmFsc2UpCiAgICAg
LCBtX2NsaXBTZXQoZmFsc2UpCkBAIC02Nyw2ICs2OCw3IEBAIEZpbGxMYXllcjo6RmlsbExheWVy
KEVGaWxsTGF5ZXJUeXBlIHR5cGUpCiAgICAgLCBtX2JhY2tncm91bmRZT3JpZ2luKFRvcEVkZ2Up
CiAgICAgLCBtX2NvbXBvc2l0ZVNldCh0eXBlID09IE1hc2tGaWxsTGF5ZXIpCiAgICAgLCBtX2Js
ZW5kTW9kZVNldChmYWxzZSkKKyAgICAsIG1fbWFza1R5cGVTZXQoZmFsc2UpCiAgICAgLCBtX3R5
cGUodHlwZSkKIHsKIH0KQEAgLTg1LDYgKzg3LDcgQEAgRmlsbExheWVyOjpGaWxsTGF5ZXIoY29u
c3QgRmlsbExheWVyJiBvKQogICAgICwgbV9jb21wb3NpdGUoby5tX2NvbXBvc2l0ZSkKICAgICAs
IG1fc2l6ZVR5cGUoby5tX3NpemVUeXBlKQogICAgICwgbV9ibGVuZE1vZGUoby5tX2JsZW5kTW9k
ZSkKKyAgICAsIG1fbWFza1R5cGUoby5tX21hc2tUeXBlKQogICAgICwgbV9pbWFnZVNldChvLm1f
aW1hZ2VTZXQpCiAgICAgLCBtX2F0dGFjaG1lbnRTZXQoby5tX2F0dGFjaG1lbnRTZXQpCiAgICAg
LCBtX2NsaXBTZXQoby5tX2NsaXBTZXQpCkBAIC05OCw2ICsxMDEsNyBAQCBGaWxsTGF5ZXI6OkZp
bGxMYXllcihjb25zdCBGaWxsTGF5ZXImIG8pCiAgICAgLCBtX2JhY2tncm91bmRZT3JpZ2luKG8u
bV9iYWNrZ3JvdW5kWU9yaWdpbikKICAgICAsIG1fY29tcG9zaXRlU2V0KG8ubV9jb21wb3NpdGVT
ZXQpCiAgICAgLCBtX2JsZW5kTW9kZVNldChvLm1fYmxlbmRNb2RlU2V0KQorICAgICwgbV9tYXNr
VHlwZVNldChvLm1fbWFza1R5cGVTZXQpCiAgICAgLCBtX3R5cGUoby5tX3R5cGUpCiB7CiB9CkBA
IC0xMjksNiArMTMzLDcgQEAgRmlsbExheWVyJiBGaWxsTGF5ZXI6Om9wZXJhdG9yPShjb25zdCBG
aWxsTGF5ZXImIG8pCiAgICAgbV9yZXBlYXRYID0gby5tX3JlcGVhdFg7CiAgICAgbV9yZXBlYXRZ
ID0gby5tX3JlcGVhdFk7CiAgICAgbV9zaXplVHlwZSA9IG8ubV9zaXplVHlwZTsKKyAgICBtX21h
c2tUeXBlID0gby5tX21hc2tUeXBlOwogCiAgICAgbV9pbWFnZVNldCA9IG8ubV9pbWFnZVNldDsK
ICAgICBtX2F0dGFjaG1lbnRTZXQgPSBvLm1fYXR0YWNobWVudFNldDsKQEAgLTE0MCw3ICsxNDUs
OCBAQCBGaWxsTGF5ZXImIEZpbGxMYXllcjo6b3BlcmF0b3I9KGNvbnN0IEZpbGxMYXllciYgbykK
ICAgICBtX3JlcGVhdFlTZXQgPSBvLm1fcmVwZWF0WVNldDsKICAgICBtX3hQb3NTZXQgPSBvLm1f
eFBvc1NldDsKICAgICBtX3lQb3NTZXQgPSBvLm1feVBvc1NldDsKLSAgICAKKyAgICBtX21hc2tU
eXBlU2V0ID0gby5tX21hc2tUeXBlU2V0OworCiAgICAgbV90eXBlID0gby5tX3R5cGU7CiAKICAg
ICByZXR1cm4gKnRoaXM7CkBAIC0xNTQsOCArMTYwLDkgQEAgYm9vbCBGaWxsTGF5ZXI6Om9wZXJh
dG9yPT0oY29uc3QgRmlsbExheWVyJiBvKSBjb25zdAogICAgICAgICAgICAgJiYgbV9iYWNrZ3Jv
dW5kWE9yaWdpbiA9PSBvLm1fYmFja2dyb3VuZFhPcmlnaW4gJiYgbV9iYWNrZ3JvdW5kWU9yaWdp
biA9PSBvLm1fYmFja2dyb3VuZFlPcmlnaW4KICAgICAgICAgICAgICYmIG1fYXR0YWNobWVudCA9
PSBvLm1fYXR0YWNobWVudCAmJiBtX2NsaXAgPT0gby5tX2NsaXAgJiYgbV9jb21wb3NpdGUgPT0g
by5tX2NvbXBvc2l0ZQogICAgICAgICAgICAgJiYgbV9ibGVuZE1vZGUgPT0gby5tX2JsZW5kTW9k
ZSAmJiBtX29yaWdpbiA9PSBvLm1fb3JpZ2luICYmIG1fcmVwZWF0WCA9PSBvLm1fcmVwZWF0WAot
ICAgICAgICAgICAgJiYgbV9yZXBlYXRZID09IG8ubV9yZXBlYXRZICYmIG1fc2l6ZVR5cGUgPT0g
by5tX3NpemVUeXBlICYmIG1fc2l6ZUxlbmd0aCA9PSBvLm1fc2l6ZUxlbmd0aAotICAgICAgICAg
ICAgJiYgbV90eXBlID09IG8ubV90eXBlICYmICgobV9uZXh0ICYmIG8ubV9uZXh0KSA/ICptX25l
eHQgPT0gKm8ubV9uZXh0IDogbV9uZXh0ID09IG8ubV9uZXh0KTsKKyAgICAgICAgICAgICYmIG1f
cmVwZWF0WSA9PSBvLm1fcmVwZWF0WSAmJiBtX3NpemVUeXBlID09IG8ubV9zaXplVHlwZSAmJiBt
X21hc2tUeXBlID09IG8ubV9tYXNrVHlwZQorICAgICAgICAgICAgJiYgbV9zaXplTGVuZ3RoID09
IG8ubV9zaXplTGVuZ3RoICYmIG1fdHlwZSA9PSBvLm1fdHlwZQorICAgICAgICAgICAgJiYgKCht
X25leHQgJiYgby5tX25leHQpID8gKm1fbmV4dCA9PSAqby5tX25leHQgOiBtX25leHQgPT0gby5t
X25leHQpOwogfQogCiB2b2lkIEZpbGxMYXllcjo6ZmlsbFVuc2V0UHJvcGVydGllcygpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggMDQwYTNmMTI1MjYz
MWI4ZmI0YWU5NzFiZTM3Nzc3MGVhNzIyNDEyMC4uYmMxNDdhNDhkZjk0YjZiYTY0NTEzMGIwOWJh
YTU5YzBlNjIzZjNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5
ZXIuaApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgTGVuZ3RoU2l6ZSBzaXplTGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplTGVuZ3RoOyB9CiAgICAgRUZpbGxTaXplVHlwZSBzaXpl
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGaWxsU2l6ZVR5cGU+KG1fc2l6ZVR5
cGUpOyB9CiAgICAgRmlsbFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEZpbGxTaXplKHN0YXRp
Y19jYXN0PEVGaWxsU2l6ZVR5cGU+KG1fc2l6ZVR5cGUpLCBtX3NpemVMZW5ndGgpOyB9CisgICAg
RU1hc2tUeXBlIG1hc2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RU1hc2tUeXBl
PihtX21hc2tUeXBlKTsgfQogCiAgICAgY29uc3QgRmlsbExheWVyKiBuZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV9uZXh0OyB9CiAgICAgRmlsbExheWVyKiBuZXh0KCkgeyByZXR1cm4gbV9uZXh0OyB9
CkBAIC05Niw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29tcG9zaXRlU2V0KCkgY29u
c3QgeyByZXR1cm4gbV9jb21wb3NpdGVTZXQ7IH0KICAgICBib29sIGlzQmxlbmRNb2RlU2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9ibGVuZE1vZGVTZXQ7IH0KICAgICBib29sIGlzU2l6ZVNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2l6ZVR5cGUgIT0gU2l6ZU5vbmU7IH0KLSAgICAKKyAgICBib29sIGlz
TWFza1R5cGVTZXQoKSBjb25zdCB7IHJldHVybiBtX21hc2tUeXBlU2V0OyB9CisKICAgICB2b2lk
IHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaSkgeyBtX2ltYWdlID0gaTsgbV9pbWFn
ZVNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldFhQb3NpdGlvbihMZW5ndGggbCkgeyBtX3hQb3Np
dGlvbiA9IGw7IG1feFBvc1NldCA9IHRydWU7IH0KICAgICB2b2lkIHNldFlQb3NpdGlvbihMZW5n
dGggbCkgeyBtX3lQb3NpdGlvbiA9IGw7IG1feVBvc1NldCA9IHRydWU7IH0KQEAgLTExMiw3ICsx
MTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaXplVHlwZShFRmlsbFNpemVUeXBlIGIpIHsg
bV9zaXplVHlwZSA9IGI7IH0KICAgICB2b2lkIHNldFNpemVMZW5ndGgoTGVuZ3RoU2l6ZSBsKSB7
IG1fc2l6ZUxlbmd0aCA9IGw7IH0KICAgICB2b2lkIHNldFNpemUoRmlsbFNpemUgZikgeyBtX3Np
emVUeXBlID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0KLSAgICAKKyAgICB2b2lk
IHNldE1hc2tUeXBlKEVNYXNrVHlwZSBtKSB7IG1fbWFza1R5cGUgPSBtOyBtX21hc2tUeXBlU2V0
ID0gdHJ1ZTsgfQorCiAgICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlLmNsZWFyKCk7IG1f
aW1hZ2VTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJYUG9zaXRpb24oKQogICAgIHsKQEAg
LTEzMyw2ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNvbXBvc2l0ZSgpIHsgbV9j
b21wb3NpdGVTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJCbGVuZE1vZGUoKSB7IG1fYmxl
bmRNb2RlU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyU2l6ZSgpIHsgbV9zaXplVHlwZSA9
IFNpemVOb25lOyB9CisgICAgdm9pZCBjbGVhck1hc2tUeXBlKCkgeyBtX21hc2tUeXBlU2V0ID0g
ZmFsc2U7IH0KIAogICAgIHZvaWQgc2V0TmV4dChGaWxsTGF5ZXIqIG4pIHsgaWYgKG1fbmV4dCAh
PSBuKSB7IGRlbGV0ZSBtX25leHQ7IG1fbmV4dCA9IG47IH0gfQogCkBAIC0xODQsNiArMTg4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbEZpbGxYUG9zaXRpb24oRUZpbGxM
YXllclR5cGUpIHsgcmV0dXJuIExlbmd0aCgwLjAsIFBlcmNlbnQpOyB9CiAgICAgc3RhdGljIExl
bmd0aCBpbml0aWFsRmlsbFlQb3NpdGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gTGVuZ3Ro
KDAuMCwgUGVyY2VudCk7IH0KICAgICBzdGF0aWMgU3R5bGVJbWFnZSogaW5pdGlhbEZpbGxJbWFn
ZShFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBFTWFza1R5cGUgaW5p
dGlhbE1hc2tUeXBlKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiBNVF9BTFBIQTsgfQogCiBwcml2
YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJTdHlsZTsKQEAgLTIwOSw3ICsyMTQsOCBAQCBw
cml2YXRlOgogICAgIHVuc2lnbmVkIG1fY29tcG9zaXRlIDogNDsgLy8gQ29tcG9zaXRlT3BlcmF0
b3IKICAgICB1bnNpZ25lZCBtX3NpemVUeXBlIDogMjsgLy8gRUZpbGxTaXplVHlwZQogICAgIHVu
c2lnbmVkIG1fYmxlbmRNb2RlIDogNTsgLy8gQmxlbmRNb2RlCi0gICAgCisgICAgdW5zaWduZWQg
bV9tYXNrVHlwZSA6IDE7IC8vIEVNYXNrVHlwZQorCiAgICAgdW5zaWduZWQgbV9pbWFnZVNldCA6
IDE7CiAgICAgdW5zaWduZWQgbV9hdHRhY2htZW50U2V0IDogMTsKICAgICB1bnNpZ25lZCBtX2Ns
aXBTZXQgOiAxOwpAQCAtMjIzLDcgKzIyOSw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9i
YWNrZ3JvdW5kWU9yaWdpbiA6IDI7IC8vIEJhY2tncm91bmRFZGdlT3JpZ2luCiAgICAgdW5zaWdu
ZWQgbV9jb21wb3NpdGVTZXQgOiAxOwogICAgIHVuc2lnbmVkIG1fYmxlbmRNb2RlU2V0IDogMTsK
LSAgICAKKyAgICB1bnNpZ25lZCBtX21hc2tUeXBlU2V0IDogMTsKKwogICAgIHVuc2lnbmVkIG1f
dHlwZSA6IDE7IC8vIEVGaWxsTGF5ZXJUeXBlCiAKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fY2xp
cE1heCA6IDI7IC8vIEVGaWxsQm94LCBtYXhpbXVtIG1fY2xpcCB2YWx1ZSBmcm9tIHRoaXMgdG8g
Ym90dG9tIGxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDgzMDYxMmU1N2U4MzZlODJiNzE4OWI2OWRjOTNk
ZDAwOTM2ZjJiNDkuLjZkMDU5MGUxNWM5MGE2OWQ5OWRlY2ZiNDZmYTk2NmZjMjk5YTEyNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCkBAIC0xNjMsNiArMTYzLDkgQEAgZW51bSBFRmlsbFNpemVUeXBlIHsgQ29udGFp
biwgQ292ZXIsIFNpemVMZW5ndGgsIFNpemVOb25lIH07CiAvLyBDU1MzIEJhY2tncm91bmQgUG9z
aXRpb24KIGVudW0gQmFja2dyb3VuZEVkZ2VPcmlnaW4geyBUb3BFZGdlLCBSaWdodEVkZ2UsIEJv
dHRvbUVkZ2UsIExlZnRFZGdlIH07CiAKKy8vIENTUzMgTWFzayBTb3VyY2UgVHlwZXMKK2VudW0g
RU1hc2tUeXBlIHsgTVRfQUxQSEEsIE1UX0xVTUlOQU5DRSB9OworCiAvLyBDU1MzIE1hcnF1ZWUg
UHJvcGVydGllcwogCiBlbnVtIEVNYXJxdWVlQmVoYXZpb3IgeyBNTk9ORSwgTVNDUk9MTCwgTVNM
SURFLCBNQUxURVJOQVRFIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKaW5kZXggYjRjMDY2ODA1NjIwYjljNDRkM2FmYTg1NTYy
MzIxYmI5MTE3MWMyMy4uNjgyMDYxMjA5MjIzNThkYzE2Njc0YTVmMzhiZmQ3NzY4Yzg5ODM3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxl
RGVmcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHls
ZURlZnMuaApAQCAtODksMTEgKzg5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBC
Ul9TVEFUSUMKICAgICB9OwogCi0gICAgZW51bSBFTWFza1R5cGUgewotICAgICAgICBNVF9MVU1J
TkFOQ0UsCi0gICAgICAgIE1UX0FMUEhBCi0gICAgfTsKLQogICAgIGNsYXNzIENTU1ZhbHVlOwog
ICAgIGNsYXNzIENTU1ZhbHVlTGlzdDsKICAgICBjbGFzcyBTVkdQYWludDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MGQ3
ZTViMTE0Y2NkZmFkYzY0N2ZhYzk5NGE1ZjRlMzljN2YyYzFhLi40ZTA1NjQ2YTZjYmY1YTE0Mzg3
M2ExYzE2YjYwNzU0ZmVkMzU0Zjk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDgtMDgg
IEFuZHJlaSBQYXJ2dSAgPHBhcnZ1QGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIE1hc2tpbmdd
QWRkIC13ZWJraXQtbWFzay10eXBlIHByb3BlcnR5LCB3aXRoIGFscGhhIGFuZCBsdW1pbmFuY2Ug
dmFsdWVzCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciB0aGUgcGFyc2luZyBvZiB0aGUgLXdlYmtp
dC1tYXNrLXR5cGUgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExOTYxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay10eXBlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay10eXBlLmh0bWw6
IEFkZGVkLgorCiAyMDEzLTA4LTA4ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OKHIxMzkyODIpOiBPbGQgY2FyZXQgc29tZXRpbWVzIGdldHMg
InN0dWNrIiAobm90IHJlcGFpbnRlZCkgaW4gY29udGVudGVkaXRhYmxlIGVsZW1lbnRzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay10eXBlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLW1hc2stdHlwZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI0OGY4MzQ4NmQzMjJhNzQ1N2I4N2ZhYzliYjQzYjIwNWZk
ZTYzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5n
LW1hc2stdHlwZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitQQVNTIHNldFByb3BlcnR5
KCJhbHBoYSIpIGlzICJhbHBoYSwgYWxwaGEiCitQQVNTIHNldFByb3BlcnR5KCJsdW1pbmFuY2Ui
KSBpcyAibHVtaW5hbmNlLCBhbHBoYSIKK1BBU1Mgc2V0UHJvcGVydHkoIiIpIGlzICJhbHBoYSwg
YWxwaGEiCitQQVNTIHNldFByb3BlcnR5KCJhbHBoYSwgbHVtaW5hbmNlIikgaXMgImFscGhhLCBs
dW1pbmFuY2UiCitQQVNTIHNldFByb3BlcnR5KCJydWJiaXNoIikgaXMgImFscGhhLCBhbHBoYSIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLXR5cGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLW1hc2stdHlwZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVkMWNkZTcyY2FjNWEzZTRhMjI0ODU2OTZmMmJmZjQ0NTBlN2M3YTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLXR5cGUuaHRtbApA
QCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxzdHlsZT4KKyAg
ICAgICAgKiB7IGZvbnQtc2l6ZTogMTZweDsgfQorICAgICAgICBkaXYgeyBmb250LXNpemU6IDhw
eDsgfQorICAgIDwvc3R5bGU+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0Pgor
ICAgICAgICAgICAgZnVuY3Rpb24gc2V0UHJvcGVydHkodmFsdWUpIHsKKyAgICAgICAgICAgICAg
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworICAgICAgICAgICAgICAgIGRpdi5z
dHlsZS5zZXRQcm9wZXJ0eSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgIm5vbmUsIG5vbmUiKTsKKyAg
ICAgICAgICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoIi13ZWJraXQtbWFzay10eXBlIiwg
dmFsdWUpOworCisgICAgICAgICAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSBnZXRDb21wdXRl
ZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZSgiLXdlYmtpdC1tYXNrLXR5cGUiKTsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisKKyAgICAgICAgICAg
ICAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gdGVzdCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3NldFByb3BlcnR5KCInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlc3QoImFscGhhIiwgImFscGhhLCBhbHBo
YSIpOworICAgICAgICAgICAgdGVzdCgibHVtaW5hbmNlIiwgImx1bWluYW5jZSwgYWxwaGEiKTsK
KyAgICAgICAgICAgIHRlc3QoIiIsICJhbHBoYSwgYWxwaGEiKTsKKyAgICAgICAgICAgIHRlc3Qo
ImFscGhhLCBsdW1pbmFuY2UiLCAiYWxwaGEsIGx1bWluYW5jZSIpOworICAgICAgICAgICAgdGVz
dCgicnViYmlzaCIsICJhbHBoYSwgYWxwaGEiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208597</attachid>
            <date>2013-08-12 23:31:49 -0700</date>
            <delta_ts>2013-08-15 06:49:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119614-20130813093148.patch</filename>
            <type>text/plain</type>
            <size>25875</size>
            <attacher name="Andrei Parvu">parvu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDlkZDVmNjc0MjhkYTlj
ZTVkMTQzMWM4MTQzNjliODgyODU3MTk3MC4uMWFiMzI4NTRiZjI0YmY3ZDIyZmEzMzRlNWM0Njg3
M2JmZjFkOWI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTA4LTEyICBBbmRy
ZWkgUGFydnUgIDxwYXJ2dUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBNYXNraW5nXSBBZGQg
LXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIHByb3BlcnR5LCB3aXRoIGF1dG8sIGFscGhhIGFuZCBs
dW1pbmFuY2UgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTk2MTQKKworICAgICAgICBBZGRlZCB0aGUgLXdlYmtpdC1tYXNrLXR5cGUgcHJv
cGVydHksIHdoaWNoIGNhbiBoYXZlIGEgdmFsdWUgb2YgYXV0bywgYWxwaGEgb3IKKyAgICAgICAg
bHVtaW5hbmNlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBhdXRvLiBUaGlzIHBhdGNoIGNvbnRhaW5z
IG9ubHkgdGhlIHBhcnNpbmcgb2YgdGhlIHByb3BlcnR5LAorICAgICAgICBub3QgdGhlIGFjdHVh
bCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHlwZXMgb2YgbWFza3MuIFRoZSBwYXJzaW5nIG9mIG1h
c2stc291cmNlLXR5cGUgaW4gdGhlCisgICAgICAgIC13ZWJraXQtbWFzayBwcm9wZXJ0eSB3aWxs
IGJlIGhhbmRsZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L21hc2tpbmcvcGFyc2luZy1tYXNr
LXNvdXJjZS10eXBlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwOiBBZGRlZCBjYXNlIGZvciBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tUeXBlLgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZSk6Cisg
ICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6IFBhcnNlZCB0aGUgdmFsdWVzIGZvciBDU1NQcm9w
ZXJ0eVdlYmtpdE1hc2tUeXBlLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUHJvcGVydHkpOgor
ICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW46IEFkZGVkIC13ZWJraXQtbWFzay10eXBlIHByb3BlcnR5LgorICAgICAgICAqIGNzcy9D
U1NUb1N0eWxlTWFwLmNwcDogbWFwIHRoZSBwcm92aWRlZCBtYXNrIHR5cGUgdG8gdGhlIEZpbGxM
YXllciBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1hcEZpbGxNYXNr
VHlwZSk6CisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuaDoKKyAgICAgICAgKiBjc3MvRGVw
cmVjYXRlZFN0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkU3R5
bGVCdWlsZGVyOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyKToKKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3Bl
cnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcDogQWRkZWQgdGhl
IG1fbWFza1R5cGUgcHJvcGVydHkgdG8gdGhlIEZpbGxMYXllciBjbGFzcy4KKyAgICAgICAgKFdl
YkNvcmU6OkZpbGxMYXllcjo6RmlsbExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXll
cjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6b3BlcmF0b3I9PSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOiBBZGRlZCBtZXRob2RzIGZv
ciB3b3JraW5nIHdpdGggbV9tYXNrVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6
bWFza1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppc01hc2tUeXBlU2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0TWFza1R5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxM
YXllcjo6aW5pdGlhbE1hc2tUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaDogQWRkZWQgdGhlIEVNYXNrU291cmNlVHlwZSBlbnVtLgorCiAyMDEz
LTA4LTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3Zl
IG1vcmUgc3R5bGUgcmVjYWxjIGNvZGUgdG8gU3R5bGVSZXNvbHZlVHJlZS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXgg
NzE1ZTM5YzQ5NzM3NjU3OGUxODE0MGJjYjBkMDMxNWQyNWQ5YjdjZC4uODNmZWM5MGRkYTRhZTJh
ZDJjZGJhNGQ0MTlmOTQwYTlkZmVmODM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTMyOSw2ICszMjksNyBAQCBzdGF0
aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQ
cm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvbiwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBl
YXQsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZSwKKyAgICBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tTb3VyY2VUeXBlLAogICAgIENTU1Byb3BlcnR5V2Via2l0TmJzcE1vZGUsCiAgICAgQ1NT
UHJvcGVydHlXZWJraXRPcmRlciwKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NS
T0xMSU5HKQpAQCAtMTQyMyw2ICsxNDI0LDE3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBmaWxsUmVwZWF0VG9DU1NWYWx1ZShFRmlsbFJlcGVhdCB4UmVwZWF0LCBFRmlsbFJlcGVhCiAg
ICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogfQogCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gZmlsbFNvdXJjZVR5cGVUb0NTU1ZhbHVlKEVNYXNrU291cmNlVHlwZSB0eXBlKQoreworICAg
IHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgTWFza0FscGhhOgorICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoQ1NTVmFsdWVBbHBoYSk7CisgICAgY2FzZSBNYXNrTHVt
aW5hbmNlOgorICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoQ1NTVmFs
dWVMdW1pbmFuY2UpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVWYWx1ZShDU1NWYWx1ZUF1dG8pOworICAgIH0KK30KIHN0YXRpYyBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBmaWxsU2l6ZVRvQ1NTVmFsdWUoY29uc3QgRmlsbFNpemUmIGZpbGxTaXplLCBj
b25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgaWYgKGZpbGxTaXplLnR5cGUgPT0gQ29u
dGFpbikKQEAgLTE3NjUsNiArMTc3NywyMSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRl
ZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydAogCiAg
ICAgICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiAgICAgICAgIH0KKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlOiB7CisgICAgICAgICAgICBjb25zdCBG
aWxsTGF5ZXIqIGxheWVycyA9IHN0eWxlLT5tYXNrTGF5ZXJzKCk7CisKKyAgICAgICAgICAgIGlm
ICghbGF5ZXJzKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJ
ZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKKworICAgICAgICAgICAgaWYgKCFsYXllcnMt
Pm5leHQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlsbFNvdXJjZVR5cGVUb0NTU1ZhbHVl
KGxheWVycy0+bWFza1NvdXJjZVR5cGUoKSk7CisKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1
ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAg
ICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogY3VyckxheWVyID0gbGF5ZXJzOyBjdXJyTGF5
ZXI7IGN1cnJMYXllciA9IGN1cnJMYXllci0+bmV4dCgpKQorICAgICAgICAgICAgICAgIGxpc3Qt
PmFwcGVuZChmaWxsU291cmNlVHlwZVRvQ1NTVmFsdWUoY3VyckxheWVyLT5tYXNrU291cmNlVHlw
ZSgpKSk7CisKKyAgICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgfQog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QmFja2dyb3VuZENvbXBvc2l0ZToKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tDb21wb3NpdGU6IHsKICAgICAgICAgICAgIGNv
bnN0IEZpbGxMYXllciogbGF5ZXJzID0gcHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVdlYmtpdE1h
c2tDb21wb3NpdGUgPyBzdHlsZS0+bWFza0xheWVycygpIDogc3R5bGUtPmJhY2tncm91bmRMYXll
cnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMzg2YmI3YjcwNzliYmI4MWI3OWFm
NDEwZDAwMDA5MzFiMjkxMjVhOS4uZDA5NzkzMzIxYTFkNWQ1MGEzODQ4MzY2ZDk3NTk0YTZhNjBj
Y2ZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTIxNDcsNiArMjE0Nyw3IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWDoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0TWFza1NpemU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0OgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXNrUmVwZWF0WDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVh
dFk6CkBAIC00NDI3LDYgKzQ0MjgsMTQgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRmlsbFByb3Bl
cnR5KENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEJiBwcm9wSWQxLAogICAgICAg
ICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRNYXNrU291cmNlVHlwZTogeworICAgICAgICAgICAgICAgICAgICBpZiAodmFs
LT5pZCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsLT5pZCA9PSBDU1NWYWx1ZUFscGhhIHx8IHZhbC0+
aWQgPT0gQ1NTVmFsdWVMdW1pbmFuY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJW
YWx1ZSA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWwtPmlkKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gMDsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggMjJkNWJlOTVlZWI4NDA4MGQ4YTY3ZTM0
ZGViYjU5OWE1NTBiMDdkMi4uNDZkMmE1MmQ2ZjZkN2Q4MTkwOTZkNGFlYTg0ZjViZWYyZjljZWZh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBAIC02NDMsNiArNjQzLDcgQEAgYm9v
bCBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SUQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRYOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFz
a1NpemU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRNYXhMb2dpY2FsV2lkdGg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1heExvZ2ljYWxIZWlnaHQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1pbkxv
Z2ljYWxXaWR0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggZjA2
OGY1OTI2MzYwMDNiY2RjZjMzOGM0MWU0YmEzMTZmZTBkZmUxMS4uYjliOTVkNTdlMTkzMTMwZjZj
YzYyMDMxOWMzNzQ3ZjllOGEwYzMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4KQEAgLTM1OSw2ICszNTksNyBAQCB6LWluZGV4CiAtd2Via2l0LW1hc2stcmVwZWF0LXgK
IC13ZWJraXQtbWFzay1yZXBlYXQteQogLXdlYmtpdC1tYXNrLXNpemUKKy13ZWJraXQtbWFzay1z
b3VyY2UtdHlwZQogLXdlYmtpdC1tYXgtbG9naWNhbC13aWR0aAogLXdlYmtpdC1tYXgtbG9naWNh
bC1oZWlnaHQKIC13ZWJraXQtbWluLWxvZ2ljYWwtd2lkdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0
eWxlTWFwLmNwcAppbmRleCAxN2E3OWZkZDU0NjBkYWQ3NDQ4YzRhMjc0YTEyOGVhYWJkNTIxZTQz
Li43NjNmYzI4NDFhYTkyZDI2NThjNWEyNTA3M2M5NjA2ZmIzYjA5OTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC0yOTksNiArMjk5LDMyIEBAIHZvaWQgQ1NTVG9TdHls
ZU1hcDo6bWFwRmlsbFlQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXll
ciogbGF5ZXIsCiAgICAgICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kWU9yaWdpbigqKHBhaXItPmZp
cnN0KCkpKTsKIH0KIAordm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsTWFza1NvdXJjZVR5cGUo
Q1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQoreworICAg
IGlmICh2YWx1ZS0+aXNJbml0aWFsVmFsdWUoKSkgeworICAgICAgICBsYXllci0+c2V0TWFza1Nv
dXJjZVR5cGUoRmlsbExheWVyOjppbml0aWFsTWFza1NvdXJjZVR5cGUobGF5ZXItPnR5cGUoKSkp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVW
YWx1ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0
aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBF
TWFza1NvdXJjZVR5cGUgdHlwZTsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1
ZUlEKCkpIHsKKyAgICBjYXNlIENTU1ZhbHVlQWxwaGE6CisgICAgICAgIHR5cGUgPSBFTWFza1Nv
dXJjZVR5cGU6Ok1hc2tBbHBoYTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUx1
bWluYW5jZToKKyAgICAgICAgdHlwZSA9IEVNYXNrU291cmNlVHlwZTo6TWFza0x1bWluYW5jZTsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgdHlwZSA9IEVNYXNrU291cmNl
VHlwZTo6TWFza0F1dG87CisgICAgfQorCisgICAgbGF5ZXItPnNldE1hc2tTb3VyY2VUeXBlKHR5
cGUpOworfQorCiB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkRlbGF5KEFuaW1hdGlv
biogYW5pbWF0aW9uLCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLT5pc0luaXRp
YWxWYWx1ZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1h
cC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuaAppbmRleCAzY2IxMjE1MGE4
NDNlOGE0OGUzOWE1YjU0MTM1NzU5Mjk0YzQxNjczLi5jZjUwYzg1OTQyYTgwMTgyNjMzYTNjMzEw
MmNiNzY3OTI2OWE0MDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHls
ZU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgKQEAgLTUzLDYg
KzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbWFwRmlsbFNpemUoQ1NTUHJvcGVydHlJRCwgRmls
bExheWVyKiwgQ1NTVmFsdWUqKTsKICAgICB2b2lkIG1hcEZpbGxYUG9zaXRpb24oQ1NTUHJvcGVy
dHlJRCwgRmlsbExheWVyKiwgQ1NTVmFsdWUqKTsKICAgICB2b2lkIG1hcEZpbGxZUG9zaXRpb24o
Q1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiwgQ1NTVmFsdWUqKTsKKyAgICB2b2lkIG1hcEZpbGxN
YXNrU291cmNlVHlwZShDU1NQcm9wZXJ0eUlELCBGaWxsTGF5ZXIqLCBDU1NWYWx1ZSopOwogCiAg
ICAgdm9pZCBtYXBBbmltYXRpb25EZWxheShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwogICAgIHZv
aWQgbWFwQW5pbWF0aW9uRGlyZWN0aW9uKEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5kZXggMDM5MDBiMDg4
N2M2MzhkMjllMmYzNWVkMWRmOTQ0MWUzYmVmMmVkMC4uMGI2MTBjMDNmM2U4NDg1Y2IyNTEzNTc1
OTg4NjkyMjUxYWNjYTc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRTdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5
bGVCdWlsZGVyLmNwcApAQCAtMjMxMCw2ICsyMzEwLDcgQEAgRGVwcmVjYXRlZFN0eWxlQnVpbGRl
cjo6RGVwcmVjYXRlZFN0eWxlQnVpbGRlcigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1By
b3BlcnR5V2Via2l0TWFza1JlcGVhdFgsIEFwcGx5UHJvcGVydHlGaWxsTGF5ZXI8RUZpbGxSZXBl
YXQsIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFgsIE1hc2tGaWxsTGF5ZXIsICZSZW5kZXJT
dHlsZTo6YWNjZXNzTWFza0xheWVycywgJlJlbmRlclN0eWxlOjptYXNrTGF5ZXJzLCAmRmlsbExh
eWVyOjppc1JlcGVhdFhTZXQsICZGaWxsTGF5ZXI6OnJlcGVhdFgsICZGaWxsTGF5ZXI6OnNldFJl
cGVhdFgsICZGaWxsTGF5ZXI6OmNsZWFyUmVwZWF0WCwgJkZpbGxMYXllcjo6aW5pdGlhbEZpbGxS
ZXBlYXRYLCAmQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbFJlcGVhdFg+OjpjcmVhdGVIYW5kbGVyKCkp
OwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRZLCBB
cHBseVByb3BlcnR5RmlsbExheWVyPEVGaWxsUmVwZWF0LCBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tS
ZXBlYXRZLCBNYXNrRmlsbExheWVyLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01hc2tMYXllcnMsICZS
ZW5kZXJTdHlsZTo6bWFza0xheWVycywgJkZpbGxMYXllcjo6aXNSZXBlYXRZU2V0LCAmRmlsbExh
eWVyOjpyZXBlYXRZLCAmRmlsbExheWVyOjpzZXRSZXBlYXRZLCAmRmlsbExheWVyOjpjbGVhclJl
cGVhdFksICZGaWxsTGF5ZXI6OmluaXRpYWxGaWxsUmVwZWF0WSwgJkNTU1RvU3R5bGVNYXA6Om1h
cEZpbGxSZXBlYXRZPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZSwgQXBwbHlQcm9wZXJ0eUZpbGxMYXllcjxGaWxsU2l6
ZSwgQ1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZSwgTWFza0ZpbGxMYXllciwgJlJlbmRlclN0eWxl
OjphY2Nlc3NNYXNrTGF5ZXJzLCAmUmVuZGVyU3R5bGU6Om1hc2tMYXllcnMsICZGaWxsTGF5ZXI6
OmlzU2l6ZVNldCwgJkZpbGxMYXllcjo6c2l6ZSwgJkZpbGxMYXllcjo6c2V0U2l6ZSwgJkZpbGxM
YXllcjo6Y2xlYXJTaXplLCAmRmlsbExheWVyOjppbml0aWFsRmlsbFNpemUsICZDU1NUb1N0eWxl
TWFwOjptYXBGaWxsU2l6ZT46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJvcGVydHlIYW5k
bGVyKENTU1Byb3BlcnR5V2Via2l0TWFza1NvdXJjZVR5cGUsIEFwcGx5UHJvcGVydHlGaWxsTGF5
ZXI8RU1hc2tTb3VyY2VUeXBlLCBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlLCBNYXNr
RmlsbExheWVyLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01hc2tMYXllcnMsICZSZW5kZXJTdHlsZTo6
bWFza0xheWVycywgJkZpbGxMYXllcjo6aXNNYXNrU291cmNlVHlwZVNldCwgJkZpbGxMYXllcjo6
bWFza1NvdXJjZVR5cGUsICZGaWxsTGF5ZXI6OnNldE1hc2tTb3VyY2VUeXBlLCAmRmlsbExheWVy
OjpjbGVhck1hc2tTb3VyY2VUeXBlLCAmRmlsbExheWVyOjppbml0aWFsTWFza1NvdXJjZVR5cGUs
ICZDU1NUb1N0eWxlTWFwOjptYXBGaWxsTWFza1NvdXJjZVR5cGU+OjpjcmVhdGVIYW5kbGVyKCkp
OwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlLCBBcHBs
eVByb3BlcnR5RGVmYXVsdDxFTkJTUE1vZGUsICZSZW5kZXJTdHlsZTo6bmJzcE1vZGUsIEVOQlNQ
TW9kZSwgJlJlbmRlclN0eWxlOjpzZXROQlNQTW9kZSwgRU5CU1BNb2RlLCAmUmVuZGVyU3R5bGU6
OmluaXRpYWxOQlNQTW9kZT46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5k
bGVyKENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW4sIEFwcGx5UHJvcGVydHlFeHBh
bmRpbmc8U3VwcHJlc3NWYWx1ZSwgQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdpblgs
IENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5ZPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdp
blgsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjpwZXJzcGVjdGl2ZU9yaWdpblgs
ICZSZW5kZXJTdHlsZTo6c2V0UGVyc3BlY3RpdmVPcmlnaW5YLCAmUmVuZGVyU3R5bGU6OmluaXRp
YWxQZXJzcGVjdGl2ZU9yaWdpblg+OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDRlMWViNjA0YTM4MGFmMGEwYzBiMGM3NDE5OTQ0YTM0MWQ4
ZmRiMzguLjAwZWVkMDc1NjhkN2I1NDg2M2MxM2M1OWM4NDc5NTk0ZmU1Y2UxZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTMwOTksNiArMzA5OSw3IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFs
dWUpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRYOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFz
a1NpemU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXROYnNwTW9kZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
UGVyc3BlY3RpdmVPcmlnaW46CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZl
T3JpZ2luWDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAK
aW5kZXggYjExZTI0Y2NkNDQ4M2JlZTllNzllNzRmNzc5NTI1Njk3MDU3YWJiYi4uNTMwNzQ3MTY3
YmY0N2I5MWQ5NmJhN2E3NjJjODljMTRjZGVkYWMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgRmlsbExheWVyOjpG
aWxsTGF5ZXIoRUZpbGxMYXllclR5cGUgdHlwZSkKICAgICAsIG1fY29tcG9zaXRlKEZpbGxMYXll
cjo6aW5pdGlhbEZpbGxDb21wb3NpdGUodHlwZSkpCiAgICAgLCBtX3NpemVUeXBlKEZpbGxMYXll
cjo6aW5pdGlhbEZpbGxTaXplVHlwZSh0eXBlKSkKICAgICAsIG1fYmxlbmRNb2RlKEZpbGxMYXll
cjo6aW5pdGlhbEZpbGxCbGVuZE1vZGUodHlwZSkpCisgICAgLCBtX21hc2tTb3VyY2VUeXBlKEZp
bGxMYXllcjo6aW5pdGlhbE1hc2tTb3VyY2VUeXBlKHR5cGUpKQogICAgICwgbV9pbWFnZVNldChm
YWxzZSkKICAgICAsIG1fYXR0YWNobWVudFNldChmYWxzZSkKICAgICAsIG1fY2xpcFNldChmYWxz
ZSkKQEAgLTY3LDYgKzY4LDcgQEAgRmlsbExheWVyOjpGaWxsTGF5ZXIoRUZpbGxMYXllclR5cGUg
dHlwZSkKICAgICAsIG1fYmFja2dyb3VuZFlPcmlnaW4oVG9wRWRnZSkKICAgICAsIG1fY29tcG9z
aXRlU2V0KHR5cGUgPT0gTWFza0ZpbGxMYXllcikKICAgICAsIG1fYmxlbmRNb2RlU2V0KGZhbHNl
KQorICAgICwgbV9tYXNrU291cmNlVHlwZVNldChmYWxzZSkKICAgICAsIG1fdHlwZSh0eXBlKQog
ewogfQpAQCAtODUsNiArODcsNyBAQCBGaWxsTGF5ZXI6OkZpbGxMYXllcihjb25zdCBGaWxsTGF5
ZXImIG8pCiAgICAgLCBtX2NvbXBvc2l0ZShvLm1fY29tcG9zaXRlKQogICAgICwgbV9zaXplVHlw
ZShvLm1fc2l6ZVR5cGUpCiAgICAgLCBtX2JsZW5kTW9kZShvLm1fYmxlbmRNb2RlKQorICAgICwg
bV9tYXNrU291cmNlVHlwZShvLm1fbWFza1NvdXJjZVR5cGUpCiAgICAgLCBtX2ltYWdlU2V0KG8u
bV9pbWFnZVNldCkKICAgICAsIG1fYXR0YWNobWVudFNldChvLm1fYXR0YWNobWVudFNldCkKICAg
ICAsIG1fY2xpcFNldChvLm1fY2xpcFNldCkKQEAgLTk4LDYgKzEwMSw3IEBAIEZpbGxMYXllcjo6
RmlsbExheWVyKGNvbnN0IEZpbGxMYXllciYgbykKICAgICAsIG1fYmFja2dyb3VuZFlPcmlnaW4o
by5tX2JhY2tncm91bmRZT3JpZ2luKQogICAgICwgbV9jb21wb3NpdGVTZXQoby5tX2NvbXBvc2l0
ZVNldCkKICAgICAsIG1fYmxlbmRNb2RlU2V0KG8ubV9ibGVuZE1vZGVTZXQpCisgICAgLCBtX21h
c2tTb3VyY2VUeXBlU2V0KG8ubV9tYXNrU291cmNlVHlwZVNldCkKICAgICAsIG1fdHlwZShvLm1f
dHlwZSkKIHsKIH0KQEAgLTEyOSw2ICsxMzMsNyBAQCBGaWxsTGF5ZXImIEZpbGxMYXllcjo6b3Bl
cmF0b3I9KGNvbnN0IEZpbGxMYXllciYgbykKICAgICBtX3JlcGVhdFggPSBvLm1fcmVwZWF0WDsK
ICAgICBtX3JlcGVhdFkgPSBvLm1fcmVwZWF0WTsKICAgICBtX3NpemVUeXBlID0gby5tX3NpemVU
eXBlOworICAgIG1fbWFza1NvdXJjZVR5cGUgPSBvLm1fbWFza1NvdXJjZVR5cGU7CiAKICAgICBt
X2ltYWdlU2V0ID0gby5tX2ltYWdlU2V0OwogICAgIG1fYXR0YWNobWVudFNldCA9IG8ubV9hdHRh
Y2htZW50U2V0OwpAQCAtMTQwLDcgKzE0NSw4IEBAIEZpbGxMYXllciYgRmlsbExheWVyOjpvcGVy
YXRvcj0oY29uc3QgRmlsbExheWVyJiBvKQogICAgIG1fcmVwZWF0WVNldCA9IG8ubV9yZXBlYXRZ
U2V0OwogICAgIG1feFBvc1NldCA9IG8ubV94UG9zU2V0OwogICAgIG1feVBvc1NldCA9IG8ubV95
UG9zU2V0OwotICAgIAorICAgIG1fbWFza1NvdXJjZVR5cGVTZXQgPSBvLm1fbWFza1NvdXJjZVR5
cGVTZXQ7CisKICAgICBtX3R5cGUgPSBvLm1fdHlwZTsKIAogICAgIHJldHVybiAqdGhpczsKQEAg
LTE1NCw4ICsxNjAsOSBAQCBib29sIEZpbGxMYXllcjo6b3BlcmF0b3I9PShjb25zdCBGaWxsTGF5
ZXImIG8pIGNvbnN0CiAgICAgICAgICAgICAmJiBtX2JhY2tncm91bmRYT3JpZ2luID09IG8ubV9i
YWNrZ3JvdW5kWE9yaWdpbiAmJiBtX2JhY2tncm91bmRZT3JpZ2luID09IG8ubV9iYWNrZ3JvdW5k
WU9yaWdpbgogICAgICAgICAgICAgJiYgbV9hdHRhY2htZW50ID09IG8ubV9hdHRhY2htZW50ICYm
IG1fY2xpcCA9PSBvLm1fY2xpcCAmJiBtX2NvbXBvc2l0ZSA9PSBvLm1fY29tcG9zaXRlCiAgICAg
ICAgICAgICAmJiBtX2JsZW5kTW9kZSA9PSBvLm1fYmxlbmRNb2RlICYmIG1fb3JpZ2luID09IG8u
bV9vcmlnaW4gJiYgbV9yZXBlYXRYID09IG8ubV9yZXBlYXRYCi0gICAgICAgICAgICAmJiBtX3Jl
cGVhdFkgPT0gby5tX3JlcGVhdFkgJiYgbV9zaXplVHlwZSA9PSBvLm1fc2l6ZVR5cGUgJiYgbV9z
aXplTGVuZ3RoID09IG8ubV9zaXplTGVuZ3RoCi0gICAgICAgICAgICAmJiBtX3R5cGUgPT0gby5t
X3R5cGUgJiYgKChtX25leHQgJiYgby5tX25leHQpID8gKm1fbmV4dCA9PSAqby5tX25leHQgOiBt
X25leHQgPT0gby5tX25leHQpOworICAgICAgICAgICAgJiYgbV9yZXBlYXRZID09IG8ubV9yZXBl
YXRZICYmIG1fc2l6ZVR5cGUgPT0gby5tX3NpemVUeXBlICYmIG1fbWFza1NvdXJjZVR5cGUgPT0g
by5tX21hc2tTb3VyY2VUeXBlCisgICAgICAgICAgICAmJiBtX3NpemVMZW5ndGggPT0gby5tX3Np
emVMZW5ndGggJiYgbV90eXBlID09IG8ubV90eXBlCisgICAgICAgICAgICAmJiAoKG1fbmV4dCAm
JiBvLm1fbmV4dCkgPyAqbV9uZXh0ID09ICpvLm1fbmV4dCA6IG1fbmV4dCA9PSBvLm1fbmV4dCk7
CiB9CiAKIHZvaWQgRmlsbExheWVyOjpmaWxsVW5zZXRQcm9wZXJ0aWVzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAppbmRleCAwNDBhM2YxMjUyNjMxYjhmYjRh
ZTk3MWJlMzc3NzcwZWE3MjI0MTIwLi45YmQ3NGM0NTVhYTNlZTk0NmNkODkwYzk5ZjdiMmQ0Y2Jh
M2NiMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCkBA
IC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICBMZW5ndGhTaXplIHNpemVMZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX3NpemVMZW5ndGg7IH0KICAgICBFRmlsbFNpemVUeXBlIHNpemVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxTaXplVHlwZT4obV9zaXplVHlwZSk7IH0K
ICAgICBGaWxsU2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gRmlsbFNpemUoc3RhdGljX2Nhc3Q8
RUZpbGxTaXplVHlwZT4obV9zaXplVHlwZSksIG1fc2l6ZUxlbmd0aCk7IH0KKyAgICBFTWFza1Nv
dXJjZVR5cGUgbWFza1NvdXJjZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFTWFz
a1NvdXJjZVR5cGU+KG1fbWFza1NvdXJjZVR5cGUpOyB9CiAKICAgICBjb25zdCBGaWxsTGF5ZXIq
IG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQ7IH0KICAgICBGaWxsTGF5ZXIqIG5leHQoKSB7
IHJldHVybiBtX25leHQ7IH0KQEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgaXND
b21wb3NpdGVTZXQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0ZVNldDsgfQogICAgIGJvb2wg
aXNCbGVuZE1vZGVTZXQoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kTW9kZVNldDsgfQogICAgIGJv
b2wgaXNTaXplU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zaXplVHlwZSAhPSBTaXplTm9uZTsgfQot
ICAgIAorICAgIGJvb2wgaXNNYXNrU291cmNlVHlwZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFz
a1NvdXJjZVR5cGVTZXQ7IH0KKwogICAgIHZvaWQgc2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUlt
YWdlPiBpKSB7IG1faW1hZ2UgPSBpOyBtX2ltYWdlU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0
WFBvc2l0aW9uKExlbmd0aCBsKSB7IG1feFBvc2l0aW9uID0gbDsgbV94UG9zU2V0ID0gdHJ1ZTsg
fQogICAgIHZvaWQgc2V0WVBvc2l0aW9uKExlbmd0aCBsKSB7IG1feVBvc2l0aW9uID0gbDsgbV95
UG9zU2V0ID0gdHJ1ZTsgfQpAQCAtMTEyLDcgKzExNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFNpemVUeXBlKEVGaWxsU2l6ZVR5cGUgYikgeyBtX3NpemVUeXBlID0gYjsgfQogICAgIHZvaWQg
c2V0U2l6ZUxlbmd0aChMZW5ndGhTaXplIGwpIHsgbV9zaXplTGVuZ3RoID0gbDsgfQogICAgIHZv
aWQgc2V0U2l6ZShGaWxsU2l6ZSBmKSB7IG1fc2l6ZVR5cGUgPSBmLnR5cGU7IG1fc2l6ZUxlbmd0
aCA9IGYuc2l6ZTsgfQotICAgIAorICAgIHZvaWQgc2V0TWFza1NvdXJjZVR5cGUoRU1hc2tTb3Vy
Y2VUeXBlIG0pIHsgbV9tYXNrU291cmNlVHlwZSA9IG07IG1fbWFza1NvdXJjZVR5cGVTZXQgPSB0
cnVlOyB9CisKICAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UuY2xlYXIoKTsgbV9pbWFn
ZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhclhQb3NpdGlvbigpCiAgICAgewpAQCAtMTMz
LDYgKzEzNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ29tcG9zaXRlKCkgeyBtX2NvbXBv
c2l0ZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhckJsZW5kTW9kZSgpIHsgbV9ibGVuZE1v
ZGVTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJTaXplKCkgeyBtX3NpemVUeXBlID0gU2l6
ZU5vbmU7IH0KKyAgICB2b2lkIGNsZWFyTWFza1NvdXJjZVR5cGUoKSB7IG1fbWFza1NvdXJjZVR5
cGVTZXQgPSBmYWxzZTsgfQogCiAgICAgdm9pZCBzZXROZXh0KEZpbGxMYXllciogbikgeyBpZiAo
bV9uZXh0ICE9IG4pIHsgZGVsZXRlIG1fbmV4dDsgbV9uZXh0ID0gbjsgfSB9CiAKQEAgLTE4NCw2
ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsRmlsbFhQb3NpdGlv
bihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMCwgUGVyY2VudCk7IH0KICAgICBz
dGF0aWMgTGVuZ3RoIGluaXRpYWxGaWxsWVBvc2l0aW9uKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVy
biBMZW5ndGgoMC4wLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBTdHlsZUltYWdlKiBpbml0aWFs
RmlsbEltYWdlKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIEVNYXNr
U291cmNlVHlwZSBpbml0aWFsTWFza1NvdXJjZVR5cGUoRUZpbGxMYXllclR5cGUpIHsgcmV0dXJu
IE1hc2tBdXRvOyB9CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlclN0eWxlOwpA
QCAtMjA5LDcgKzIxNCw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb21wb3NpdGUgOiA0
OyAvLyBDb21wb3NpdGVPcGVyYXRvcgogICAgIHVuc2lnbmVkIG1fc2l6ZVR5cGUgOiAyOyAvLyBF
RmlsbFNpemVUeXBlCiAgICAgdW5zaWduZWQgbV9ibGVuZE1vZGUgOiA1OyAvLyBCbGVuZE1vZGUK
LSAgICAKKyAgICB1bnNpZ25lZCBtX21hc2tTb3VyY2VUeXBlIDogMjsgLy8gRU1hc2tTb3VyY2VU
eXBlCisKICAgICB1bnNpZ25lZCBtX2ltYWdlU2V0IDogMTsKICAgICB1bnNpZ25lZCBtX2F0dGFj
aG1lbnRTZXQgOiAxOwogICAgIHVuc2lnbmVkIG1fY2xpcFNldCA6IDE7CkBAIC0yMjMsNyArMjI5
LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2JhY2tncm91bmRZT3JpZ2luIDogMjsgLy8g
QmFja2dyb3VuZEVkZ2VPcmlnaW4KICAgICB1bnNpZ25lZCBtX2NvbXBvc2l0ZVNldCA6IDE7CiAg
ICAgdW5zaWduZWQgbV9ibGVuZE1vZGVTZXQgOiAxOwotICAgIAorICAgIHVuc2lnbmVkIG1fbWFz
a1NvdXJjZVR5cGVTZXQgOiAxOworCiAgICAgdW5zaWduZWQgbV90eXBlIDogMTsgLy8gRUZpbGxM
YXllclR5cGUKIAogICAgIG11dGFibGUgdW5zaWduZWQgbV9jbGlwTWF4IDogMjsgLy8gRUZpbGxC
b3gsIG1heGltdW0gbV9jbGlwIHZhbHVlIGZyb20gdGhpcyB0byBib3R0b20gbGF5ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmgKaW5kZXggODMwNjEyZTU3ZTgzNmU4MmI3MTg5YjY5ZGM5M2RkMDA5MzZmMmI0OS4uOWMyZmNk
NTg5N2JmZTJmOTg0NjI0YjU3YmJmMTI2MzAwOWQ0Y2FlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTE2Myw2
ICsxNjMsOSBAQCBlbnVtIEVGaWxsU2l6ZVR5cGUgeyBDb250YWluLCBDb3ZlciwgU2l6ZUxlbmd0
aCwgU2l6ZU5vbmUgfTsKIC8vIENTUzMgQmFja2dyb3VuZCBQb3NpdGlvbgogZW51bSBCYWNrZ3Jv
dW5kRWRnZU9yaWdpbiB7IFRvcEVkZ2UsIFJpZ2h0RWRnZSwgQm90dG9tRWRnZSwgTGVmdEVkZ2Ug
fTsKIAorLy8gQ1NTMyBNYXNrIFNvdXJjZSBUeXBlcworZW51bSBFTWFza1NvdXJjZVR5cGUgeyBN
YXNrQWxwaGEsIE1hc2tMdW1pbmFuY2UsIE1hc2tBdXRvIH07CisKIC8vIENTUzMgTWFycXVlZSBQ
cm9wZXJ0aWVzCiAKIGVudW0gRU1hcnF1ZWVCZWhhdmlvciB7IE1OT05FLCBNU0NST0xMLCBNU0xJ
REUsIE1BTFRFUk5BVEUgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MGQ3ZTViMTE0Y2NkZmFkYzY0N2ZhYzk5NGE1ZjRl
MzljN2YyYzFhLi4zM2IzMTI1YzRhYjU5YmYzZGM5MjNhZWVlYjczOTM2YWM5YjNhZDliIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDgtMTIgIEFuZHJlaSBQYXJ2dSAgPHBhcnZ1QGFkb2Jl
LmNvbT4KKworICAgICAgICBbQ1NTIE1hc2tpbmddIEFkZCAtd2Via2l0LW1hc2stc291cmNlLXR5
cGUgcHJvcGVydHksIHdpdGggYXV0bywgYWxwaGEgYW5kIGx1bWluYW5jZSB2YWx1ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTYxNAorCisgICAg
ICAgIEFkZGVkIHRlc3RzIGZvciB0aGUgcGFyc2luZyBvZiB0aGUgLXdlYmtpdC1tYXNrLXNvdXJj
ZS10eXBlIHByb3BlcnR5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLXNvdXJjZS10eXBlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1zb3VyY2UtdHlwZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLmh0bWw6CisK
IDIwMTMtMDgtMDggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04ocjEzOTI4Mik6IE9sZCBjYXJldCBzb21ldGltZXMgZ2V0cyAic3R1Y2siIChu
b3QgcmVwYWludGVkKSBpbiBjb250ZW50ZWRpdGFibGUgZWxlbWVudHMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLW1hc2stZXhwZWN0ZWQudHh0CmluZGV4IDllOTQ3
NmZlMjA0MzRiMmFiNmNjYmFkMjMwYWRmNWUzMjVkNzY3NTIuLjY3NzQwYmY3OTFmZTgwNDQ3N2U4
YWNjZTJhZjQ2YzQ0NDZjMDViZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWFza2lu
Zy9wYXJzaW5nLW1hc2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2lu
Zy9wYXJzaW5nLW1hc2stZXhwZWN0ZWQudHh0CkBAIC0zOSw2ICszOSwxMSBAQCBQQVNTIGlubmVy
U3R5bGUoIi13ZWJraXQtbWFzay1wb3NpdGlvbiIsICJsZWZ0IDEwcHggY2VudGVyIikgaXMgImxl
ZnQgMTBweCB0b3AgNQogUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2stcG9zaXRpb24iLCAi
Y2VudGVyIHRvcCAyMHB4IikgaXMgImxlZnQgNTAlIHRvcCAyMHB4IgogUEFTUyBpbm5lclN0eWxl
KCItd2Via2l0LW1hc2stcG9zaXRpb24iLCAiY2VudGVyIGxlZnQgMzBweCIpIGlzICJsZWZ0IDMw
cHggdG9wIDUwJSIKIFBBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLXBvc2l0aW9uIiwgImxl
ZnQgMjAlIHRvcCIpIGlzICJsZWZ0IDIwJSB0b3AgMCUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJr
aXQtbWFzay1zb3VyY2UtdHlwZSIsICJhbHBoYSIpIGlzICJhbHBoYSIKK1BBU1MgaW5uZXJTdHls
ZSgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgImx1bWluYW5jZSIpIGlzICJsdW1pbmFuY2Ui
CitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIsICJhbHBoYSIp
IGlzICJhbHBoYSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBl
IiwgImx1bWluYW5jZSIpIGlzICJsdW1pbmFuY2UiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJr
aXQtbWFzay1zb3VyY2UtdHlwZSIsICIiKSBpcyAiYXV0byIKIFBBU1MgaW5uZXJTdHlsZSgiLXdl
YmtpdC1tYXNrIiwgInJlcGVhdC14IikgaXMgInJlcGVhdC14IgogUEFTUyBpbm5lclN0eWxlKCIt
d2Via2l0LW1hc2siLCAicmVwZWF0LXkiKSBpcyAicmVwZWF0LXkiCiBQQVNTIGlubmVyU3R5bGUo
Ii13ZWJraXQtbWFzayIsICJyZXBlYXQiKSBpcyAicmVwZWF0IgpAQCAtMTA5LDYgKzExNCw4IEBA
IFBBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrIiwgIm5vbmUgY2VudGVyIGNlbnRlciAyMHB4
IC8gYXV0byByZXBlYXQteCBzY3JvbGwKIFBBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrIiwg
Im5vbmUgdG9wIDIwcHggcmlnaHQgMzBweCBjZW50ZXIgLyBhdXRvIHJlcGVhdC14IHNjcm9sbCBi
b3JkZXItYm94IGJvcmRlci1ib3giKSBpcyBudWxsCiBQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQt
bWFzayIsICJub25lIHRvcCAyMHB4IHRvcCAzMHB4IC8gYXV0byByZXBlYXQteCBzY3JvbGwgYm9y
ZGVyLWJveCBib3JkZXItYm94IikgaXMgbnVsbAogUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1h
c2siLCAibm9uZSB0b3AgMjBweCBib3R0b20gLyBhdXRvIHJlcGVhdC14IHNjcm9sbCBib3JkZXIt
Ym94IGJvcmRlci1ib3giKSBpcyBudWxsCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzay1z
b3VyY2UtdHlwZSIsICJydWJiaXNoIikgaXMgbnVsbAorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0
LW1hc2stc291cmNlLXR5cGUiLCAiIikgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21h
c2tpbmcvcGFyc2luZy1tYXNrLXNvdXJjZS10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWFza2luZy9wYXJzaW5nLW1hc2stc291cmNlLXR5cGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRkYjM4Njk5N2NiZmEwN2M0OGNmNjkyMTZkNmFlMDcxNDVmZmVlZDYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLXNvdXJjZS10
eXBlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1BBU1Mgc2V0UHJvcGVydHkoImFscGhh
LCBhbHBoYSwgYWxwaGEsIGFscGhhIikgaXMgImFscGhhLCBhbHBoYSwgYWxwaGEsIGFscGhhIgor
UEFTUyBzZXRQcm9wZXJ0eSgibHVtaW5hbmNlLCBhbHBoYSIpIGlzICJsdW1pbmFuY2UsIGFscGhh
LCBhdXRvLCBhdXRvIgorUEFTUyBzZXRQcm9wZXJ0eSgibHVtaW5hbmNlLCBsdW1pbmFuY2UsIGx1
bWluYW5jZSwgbHVtaW5hbmNlIikgaXMgImx1bWluYW5jZSwgbHVtaW5hbmNlLCBsdW1pbmFuY2Us
IGx1bWluYW5jZSIKK1BBU1Mgc2V0UHJvcGVydHkoImF1dG8sIGFscGhhLCBsdW1pbmFuY2UsIGx1
bWluYW5jZSIpIGlzICJhdXRvLCBhbHBoYSwgbHVtaW5hbmNlLCBsdW1pbmFuY2UiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1zb3VyY2UtdHlwZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1zb3VyY2UtdHlwZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRmOTIxYTQ0ZDg5NzIxZGJlOTZiMjM5M2Q4MmZkNjdmZmQ1OGMwYjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLXNvdXJj
ZS10eXBlLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
ICA8c3R5bGU+CisgICAgICAgICogeyBmb250LXNpemU6IDE2cHg7IH0KKyAgICAgICAgZGl2IHsg
Zm9udC1zaXplOiA4cHg7IH0KKyAgICA8L3N0eWxlPgorICAgIDxib2R5PgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIHNldFByb3BlcnR5KHZhbHVlKSB7Cisg
ICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAg
ICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoIi13ZWJraXQtbWFzay1pbWFnZSIsICJub25l
LCBub25lLCBub25lLCBub25lIik7CisgICAgICAgICAgICAgICAgZGl2LnN0eWxlLnNldFByb3Bl
cnR5KCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCB2YWx1ZSk7CisKKyAgICAgICAgICAgICAg
ICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZh
bHVlKCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0
ZWRWYWx1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCh2YWx1
ZSwgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Nl
dFByb3BlcnR5KCInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHRlc3QoImFscGhhLCBhbHBoYSwgYWxwaGEsIGFscGhhIiwgImFscGhhLCBh
bHBoYSwgYWxwaGEsIGFscGhhIik7CisgICAgICAgICAgICB0ZXN0KCJsdW1pbmFuY2UsIGFscGhh
IiwgImx1bWluYW5jZSwgYWxwaGEsIGF1dG8sIGF1dG8iKTsKKyAgICAgICAgICAgIHRlc3QoImx1
bWluYW5jZSwgbHVtaW5hbmNlLCBsdW1pbmFuY2UsIGx1bWluYW5jZSIsICJsdW1pbmFuY2UsIGx1
bWluYW5jZSwgbHVtaW5hbmNlLCBsdW1pbmFuY2UiKTsKKyAgICAgICAgICAgIHRlc3QoImF1dG8s
IGFscGhhLCBsdW1pbmFuY2UsIGx1bWluYW5jZSIsICJhdXRvLCBhbHBoYSwgbHVtaW5hbmNlLCBs
dW1pbmFuY2UiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLmh0bWwKaW5kZXggNjBm
NTNmMzcyOTcyNGY5M2IxYTBmN2MwMTA4MDZjZjA1OWNjZTgwOS4uODU1MDFjMzc1OWI1MDU5MDlh
YWQ5ZGU3Y2Y2MjI3MTkyNGU4OWI2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNr
aW5nL3BhcnNpbmctbWFzay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJz
aW5nLW1hc2suaHRtbApAQCAtODMsNiArODMsMTMgQEAgdGVzdElubmVyKCItd2Via2l0LW1hc2st
cG9zaXRpb24iLCAiY2VudGVyIHRvcCAyMHB4IiwgImxlZnQgNTAlIHRvcCAyMHB4Iik7CiB0ZXN0
SW5uZXIoIi13ZWJraXQtbWFzay1wb3NpdGlvbiIsICJjZW50ZXIgbGVmdCAzMHB4IiwgImxlZnQg
MzBweCB0b3AgNTAlIik7CiB0ZXN0SW5uZXIoIi13ZWJraXQtbWFzay1wb3NpdGlvbiIsICJsZWZ0
IDIwJSB0b3AiLCAibGVmdCAyMCUgdG9wIDAlIik7CiAKKy8vIHRlc3QgbWFzay1zb3VyY2UtdHlw
ZQordGVzdElubmVyKCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAiYWxwaGEiLCAiYWxwaGEi
KTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgImx1bWluYW5jZSIsICJs
dW1pbmFuY2UiKTsKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgImFs
cGhhIiwgImFscGhhIik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIs
ICJsdW1pbmFuY2UiLCAibHVtaW5hbmNlIik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1z
b3VyY2UtdHlwZSIsICIiLCAiYXV0byIpOworCiAvLyB0ZXN0IG1hc2stcmVwZWF0CiB0ZXN0SW5u
ZXIoIi13ZWJraXQtbWFzayIsICJyZXBlYXQteCIsICJyZXBlYXQteCIpOwogdGVzdElubmVyKCIt
d2Via2l0LW1hc2siLCAicmVwZWF0LXkiLCAicmVwZWF0LXkiKTsKQEAgLTE2Niw2ICsxNzMsOCBA
QCBuZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzayIsICJub25lIGNlbnRlciBjZW50ZXIgMjBweCAv
IGF1dG8gcmVwZWF0LXggc2Nyb2xsIGJvcgogbmVnYXRpdmVUZXN0KCItd2Via2l0LW1hc2siLCAi
bm9uZSB0b3AgMjBweCByaWdodCAzMHB4IGNlbnRlciAvIGF1dG8gcmVwZWF0LXggc2Nyb2xsIGJv
cmRlci1ib3ggYm9yZGVyLWJveCIpOwogbmVnYXRpdmVUZXN0KCItd2Via2l0LW1hc2siLCAibm9u
ZSB0b3AgMjBweCB0b3AgMzBweCAvIGF1dG8gcmVwZWF0LXggc2Nyb2xsIGJvcmRlci1ib3ggYm9y
ZGVyLWJveCIpOwogbmVnYXRpdmVUZXN0KCItd2Via2l0LW1hc2siLCAibm9uZSB0b3AgMjBweCBi
b3R0b20gLyBhdXRvIHJlcGVhdC14IHNjcm9sbCBib3JkZXItYm94IGJvcmRlci1ib3giKTsKK25l
Z2F0aXZlVGVzdCgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgInJ1YmJpc2giKTsKK25lZ2F0
aXZlVGVzdCgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgIiIpOwogCiA8L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208805</attachid>
            <date>2013-08-15 06:50:06 -0700</date>
            <delta_ts>2013-08-15 07:15:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119614-20130815165008.patch</filename>
            <type>text/plain</type>
            <size>26411</size>
            <attacher name="Andrei Parvu">parvu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDlkZDVmNjc0MjhkYTlj
ZTVkMTQzMWM4MTQzNjliODgyODU3MTk3MC4uYTBiZDg0YTA0NmRlYTljZWQ1ZDA5NDA2ZGJiZjE3
NmM2MDViYWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTA4LTEyICBBbmRy
ZWkgUGFydnUgIDxwYXJ2dUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBNYXNraW5nXSBBZGQg
LXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIHByb3BlcnR5LCB3aXRoIGF1dG8sIGFscGhhIGFuZCBs
dW1pbmFuY2UgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTk2MTQKKworICAgICAgICBBZGRlZCB0aGUgLXdlYmtpdC1tYXNrLXNvdXJjZS10
eXBlIHByb3BlcnR5LCB3aGljaCBjYW4gaGF2ZSBhIHZhbHVlIG9mIGF1dG8sIGFscGhhIG9yCisg
ICAgICAgIGx1bWluYW5jZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYXV0by4gVGhpcyBwYXRjaCBj
b250YWlucyBvbmx5IHRoZSBwYXJzaW5nIG9mIHRoZSBwcm9wZXJ0eSwKKyAgICAgICAgbm90IHRo
ZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIHR5cGVzIG9mIG1hc2tzLiBUaGUgcGFyc2lu
ZyBvZiBtYXNrLXNvdXJjZS10eXBlIGluIHRoZQorICAgICAgICAtd2Via2l0LW1hc2sgcHJvcGVy
dHkgd2lsbCBiZSBoYW5kbGVkIGluIGEgc2VwYXJhdGUgcGF0Y2guCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tYXNraW5nL3BhcnNp
bmctbWFzay1zb3VyY2UtdHlwZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDogQWRkZWQgY2FzZSBmb3IgQ1NTUHJvcGVydHlXZWJraXRNYXNrVHlw
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOiBQYXJzZWQgdGhlIHZhbHVlcyBmb3Ig
Q1NTUHJvcGVydHlXZWJraXRNYXNrVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsbFByb3Bl
cnR5KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluOiBBZGRlZCAtd2Via2l0LW1hc2stdHlwZSBwcm9wZXJ0eS4KKyAgICAgICAg
KiBjc3MvQ1NTVG9TdHlsZU1hcC5jcHA6IG1hcCB0aGUgcHJvdmlkZWQgbWFzayB0eXBlIHRvIHRo
ZSBGaWxsTGF5ZXIgY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb1N0eWxlTWFwOjptYXBG
aWxsTWFza1R5cGUpOgorICAgICAgICAqIGNzcy9DU1NUb1N0eWxlTWFwLmg6CisgICAgICAgICog
Y3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVj
YXRlZFN0eWxlQnVpbGRlcjo6RGVwcmVjYXRlZFN0eWxlQnVpbGRlcik6CisgICAgICAgICogY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBw
bHlQcm9wZXJ0eSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHA6IEFk
ZGVkIHRoZSBtX21hc2tUeXBlIHByb3BlcnR5IHRvIHRoZSBGaWxsTGF5ZXIgY2xhc3MuCisgICAg
ICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OkZpbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6Om9wZXJh
dG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDogQWRkZWQgbWV0
aG9kcyBmb3Igd29ya2luZyB3aXRoIG1fbWFza1R5cGUuCisgICAgICAgIChXZWJDb3JlOjpGaWxs
TGF5ZXI6Om1hc2tUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aXNNYXNrVHlw
ZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OnNldE1hc2tUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6Y2xlYXJNYXNrVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxsTGF5ZXI6OmluaXRpYWxNYXNrVHlwZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6IEFkZGVkIHRoZSBFTWFza1NvdXJjZVR5cGUgZW51bS4K
KwogMjAxMy0wOC0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgTW92ZSBtb3JlIHN0eWxlIHJlY2FsYyBjb2RlIHRvIFN0eWxlUmVzb2x2ZVRyZWUuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IDcxNWUzOWM0OTczNzY1NzhlMTgxNDBiY2IwZDAzMTVkMjVkOWI3Y2QuLmVkNmI2Nzg2
Y2I3OThmNjU2ZWY2MWM5YzcxNmE5ZDlkYzgzNGNjODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMjksNiArMzI5LDcg
QEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAg
ICAgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb24sCiAgICAgQ1NTUHJvcGVydHlXZWJraXRN
YXNrUmVwZWF0LAogICAgIENTU1Byb3BlcnR5V2Via2l0TWFza1NpemUsCisgICAgQ1NTUHJvcGVy
dHlXZWJraXRNYXNrU291cmNlVHlwZSwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlLAog
ICAgIENTU1Byb3BlcnR5V2Via2l0T3JkZXIsCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJG
TE9XX1NDUk9MTElORykKQEAgLTE0MjMsNiArMTQyNCwxNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gZmlsbFJlcGVhdFRvQ1NTVmFsdWUoRUZpbGxSZXBlYXQgeFJlcGVhdCwgRUZpbGxS
ZXBlYQogICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKIH0KIAorc3RhdGljIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IGZpbGxTb3VyY2VUeXBlVG9DU1NWYWx1ZShFTWFza1NvdXJjZVR5cGUgdHlwZSkK
K3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIE1hc2tBbHBoYToKKyAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKENTU1ZhbHVlQWxwaGEpOworICAgIGNhc2Ug
TWFza0x1bWluYW5jZToKKyAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVl
KENTU1ZhbHVlTHVtaW5hbmNlKTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBmaWxsU2l6ZVRvQ1NTVmFsdWUoY29uc3Qg
RmlsbFNpemUmIGZpbGxTaXplLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgaWYg
KGZpbGxTaXplLnR5cGUgPT0gQ29udGFpbikKQEAgLTE3NjUsNiArMTc3NywyMSBAQCBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydAogCiAgICAgICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiAg
ICAgICAgIH0KKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlOiB7
CisgICAgICAgICAgICBjb25zdCBGaWxsTGF5ZXIqIGxheWVycyA9IHN0eWxlLT5tYXNrTGF5ZXJz
KCk7CisKKyAgICAgICAgICAgIGlmICghbGF5ZXJzKQorICAgICAgICAgICAgICAgIHJldHVybiBj
c3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKKworICAg
ICAgICAgICAgaWYgKCFsYXllcnMtPm5leHQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmls
bFNvdXJjZVR5cGVUb0NTU1ZhbHVlKGxheWVycy0+bWFza1NvdXJjZVR5cGUoKSk7CisKKyAgICAg
ICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNv
bW1hU2VwYXJhdGVkKCk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogY3Vyckxh
eWVyID0gbGF5ZXJzOyBjdXJyTGF5ZXI7IGN1cnJMYXllciA9IGN1cnJMYXllci0+bmV4dCgpKQor
ICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChmaWxsU291cmNlVHlwZVRvQ1NTVmFsdWUoY3Vy
ckxheWVyLT5tYXNrU291cmNlVHlwZSgpKSk7CisKKyAgICAgICAgICAgIHJldHVybiBsaXN0LnJl
bGVhc2UoKTsKKyAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QmFja2dy
b3VuZENvbXBvc2l0ZToKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tDb21wb3Np
dGU6IHsKICAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzID0gcHJvcGVydHlJRCA9
PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tDb21wb3NpdGUgPyBzdHlsZS0+bWFza0xheWVycygpIDog
c3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXgg
Mzg2YmI3YjcwNzliYmI4MWI3OWFmNDEwZDAwMDA5MzFiMjkxMjVhOS4uZDA5NzkzMzIxYTFkNWQ1
MGEzODQ4MzY2ZDk3NTk0YTZhNjBjY2ZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTIxNDcsNiArMjE0Nyw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFz
a1Bvc2l0aW9uWDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWToKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1NpemU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdE1hc2tTb3VyY2VUeXBlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WDoKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0TWFza1JlcGVhdFk6CkBAIC00NDI3LDYgKzQ0MjgsMTQgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlRmlsbFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0
eUlEJiBwcm9wSWQxLAogICAgICAgICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQo
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrU291cmNlVHlwZTogeworICAgICAg
ICAgICAgICAgICAgICBpZiAodmFsLT5pZCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsLT5pZCA9PSBD
U1NWYWx1ZUFscGhhIHx8IHZhbC0+aWQgPT0gQ1NTVmFsdWVMdW1pbmFuY2UpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGN1cnJWYWx1ZSA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZSh2YWwtPmlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5u
ZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgY3VyclZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggMjJk
NWJlOTVlZWI4NDA4MGQ4YTY3ZTM0ZGViYjU5OWE1NTBiMDdkMi4uNDZkMmE1MmQ2ZjZkN2Q4MTkw
OTZkNGFlYTg0ZjViZWYyZjljZWZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBA
IC02NDMsNiArNjQzLDcgQEAgYm9vbCBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tS
ZXBlYXRYOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFza1NpemU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1h
c2tTb3VyY2VUeXBlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXhMb2dpY2FsV2lkdGg6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1heExvZ2ljYWxIZWlnaHQ6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdE1pbkxvZ2ljYWxXaWR0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5TmFtZXMuaW4KaW5kZXggZjA2OGY1OTI2MzYwMDNiY2RjZjMzOGM0MWU0YmEzMTZmZTBkZmUx
MS4uYjliOTVkNTdlMTkzMTMwZjZjYzYyMDMxOWMzNzQ3ZjllOGEwYzMwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTM1OSw2ICszNTksNyBAQCB6LWluZGV4CiAt
d2Via2l0LW1hc2stcmVwZWF0LXgKIC13ZWJraXQtbWFzay1yZXBlYXQteQogLXdlYmtpdC1tYXNr
LXNpemUKKy13ZWJraXQtbWFzay1zb3VyY2UtdHlwZQogLXdlYmtpdC1tYXgtbG9naWNhbC13aWR0
aAogLXdlYmtpdC1tYXgtbG9naWNhbC1oZWlnaHQKIC13ZWJraXQtbWluLWxvZ2ljYWwtd2lkdGgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcAppbmRleCAxN2E3OWZkZDU0NjBkYWQ3NDQ4
YzRhMjc0YTEyOGVhYWJkNTIxZTQzLi41ZmVlYWQwMzgyMTZkZTBiYjU3ZDk5Y2FlNzBjMzA0MzVm
NzAxYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC0yOTksNiArMjk5
LDM1IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbFlQb3NpdGlvbihDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQsIEZpbGxMYXllciogbGF5ZXIsCiAgICAgICAgIGxheWVyLT5zZXRCYWNrZ3Jv
dW5kWU9yaWdpbigqKHBhaXItPmZpcnN0KCkpKTsKIH0KIAordm9pZCBDU1NUb1N0eWxlTWFwOjpt
YXBGaWxsTWFza1NvdXJjZVR5cGUoQ1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiBsYXllciwgQ1NT
VmFsdWUqIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS0+aXNJbml0aWFsVmFsdWUoKSkgeworICAg
ICAgICBsYXllci0+c2V0TWFza1NvdXJjZVR5cGUoRmlsbExheWVyOjppbml0aWFsTWFza1NvdXJj
ZVR5cGUobGF5ZXItPnR5cGUoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBDU1NQ
cmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KHZhbHVlKTsKKyAgICBFTWFza1NvdXJjZVR5cGUgdHlwZTsKKyAgICBzd2l0Y2ggKHBy
aW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKKyAgICBjYXNlIENTU1ZhbHVlQWxwaGE6Cisg
ICAgICAgIHR5cGUgPSBFTWFza1NvdXJjZVR5cGU6Ok1hc2tBbHBoYTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDU1NWYWx1ZUx1bWluYW5jZToKKyAgICAgICAgdHlwZSA9IEVNYXNrU291cmNl
VHlwZTo6TWFza0x1bWluYW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUF1
dG86CisgICAgICAgIHR5cGUgPSBGaWxsTGF5ZXI6OmluaXRpYWxNYXNrU291cmNlVHlwZShsYXll
ci0+dHlwZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgbGF5ZXItPnNldE1hc2tTb3VyY2VUeXBlKHR5
cGUpOworfQorCiB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkRlbGF5KEFuaW1hdGlv
biogYW5pbWF0aW9uLCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLT5pc0luaXRp
YWxWYWx1ZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1h
cC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuaAppbmRleCAzY2IxMjE1MGE4
NDNlOGE0OGUzOWE1YjU0MTM1NzU5Mjk0YzQxNjczLi5jZjUwYzg1OTQyYTgwMTgyNjMzYTNjMzEw
MmNiNzY3OTI2OWE0MDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHls
ZU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgKQEAgLTUzLDYg
KzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbWFwRmlsbFNpemUoQ1NTUHJvcGVydHlJRCwgRmls
bExheWVyKiwgQ1NTVmFsdWUqKTsKICAgICB2b2lkIG1hcEZpbGxYUG9zaXRpb24oQ1NTUHJvcGVy
dHlJRCwgRmlsbExheWVyKiwgQ1NTVmFsdWUqKTsKICAgICB2b2lkIG1hcEZpbGxZUG9zaXRpb24o
Q1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiwgQ1NTVmFsdWUqKTsKKyAgICB2b2lkIG1hcEZpbGxN
YXNrU291cmNlVHlwZShDU1NQcm9wZXJ0eUlELCBGaWxsTGF5ZXIqLCBDU1NWYWx1ZSopOwogCiAg
ICAgdm9pZCBtYXBBbmltYXRpb25EZWxheShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwogICAgIHZv
aWQgbWFwQW5pbWF0aW9uRGlyZWN0aW9uKEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5kZXggMDM5MDBiMDg4
N2M2MzhkMjllMmYzNWVkMWRmOTQ0MWUzYmVmMmVkMC4uMGI2MTBjMDNmM2U4NDg1Y2IyNTEzNTc1
OTg4NjkyMjUxYWNjYTc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRTdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5
bGVCdWlsZGVyLmNwcApAQCAtMjMxMCw2ICsyMzEwLDcgQEAgRGVwcmVjYXRlZFN0eWxlQnVpbGRl
cjo6RGVwcmVjYXRlZFN0eWxlQnVpbGRlcigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1By
b3BlcnR5V2Via2l0TWFza1JlcGVhdFgsIEFwcGx5UHJvcGVydHlGaWxsTGF5ZXI8RUZpbGxSZXBl
YXQsIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFgsIE1hc2tGaWxsTGF5ZXIsICZSZW5kZXJT
dHlsZTo6YWNjZXNzTWFza0xheWVycywgJlJlbmRlclN0eWxlOjptYXNrTGF5ZXJzLCAmRmlsbExh
eWVyOjppc1JlcGVhdFhTZXQsICZGaWxsTGF5ZXI6OnJlcGVhdFgsICZGaWxsTGF5ZXI6OnNldFJl
cGVhdFgsICZGaWxsTGF5ZXI6OmNsZWFyUmVwZWF0WCwgJkZpbGxMYXllcjo6aW5pdGlhbEZpbGxS
ZXBlYXRYLCAmQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbFJlcGVhdFg+OjpjcmVhdGVIYW5kbGVyKCkp
OwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRZLCBB
cHBseVByb3BlcnR5RmlsbExheWVyPEVGaWxsUmVwZWF0LCBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tS
ZXBlYXRZLCBNYXNrRmlsbExheWVyLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01hc2tMYXllcnMsICZS
ZW5kZXJTdHlsZTo6bWFza0xheWVycywgJkZpbGxMYXllcjo6aXNSZXBlYXRZU2V0LCAmRmlsbExh
eWVyOjpyZXBlYXRZLCAmRmlsbExheWVyOjpzZXRSZXBlYXRZLCAmRmlsbExheWVyOjpjbGVhclJl
cGVhdFksICZGaWxsTGF5ZXI6OmluaXRpYWxGaWxsUmVwZWF0WSwgJkNTU1RvU3R5bGVNYXA6Om1h
cEZpbGxSZXBlYXRZPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZSwgQXBwbHlQcm9wZXJ0eUZpbGxMYXllcjxGaWxsU2l6
ZSwgQ1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZSwgTWFza0ZpbGxMYXllciwgJlJlbmRlclN0eWxl
OjphY2Nlc3NNYXNrTGF5ZXJzLCAmUmVuZGVyU3R5bGU6Om1hc2tMYXllcnMsICZGaWxsTGF5ZXI6
OmlzU2l6ZVNldCwgJkZpbGxMYXllcjo6c2l6ZSwgJkZpbGxMYXllcjo6c2V0U2l6ZSwgJkZpbGxM
YXllcjo6Y2xlYXJTaXplLCAmRmlsbExheWVyOjppbml0aWFsRmlsbFNpemUsICZDU1NUb1N0eWxl
TWFwOjptYXBGaWxsU2l6ZT46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJvcGVydHlIYW5k
bGVyKENTU1Byb3BlcnR5V2Via2l0TWFza1NvdXJjZVR5cGUsIEFwcGx5UHJvcGVydHlGaWxsTGF5
ZXI8RU1hc2tTb3VyY2VUeXBlLCBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlLCBNYXNr
RmlsbExheWVyLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01hc2tMYXllcnMsICZSZW5kZXJTdHlsZTo6
bWFza0xheWVycywgJkZpbGxMYXllcjo6aXNNYXNrU291cmNlVHlwZVNldCwgJkZpbGxMYXllcjo6
bWFza1NvdXJjZVR5cGUsICZGaWxsTGF5ZXI6OnNldE1hc2tTb3VyY2VUeXBlLCAmRmlsbExheWVy
OjpjbGVhck1hc2tTb3VyY2VUeXBlLCAmRmlsbExheWVyOjppbml0aWFsTWFza1NvdXJjZVR5cGUs
ICZDU1NUb1N0eWxlTWFwOjptYXBGaWxsTWFza1NvdXJjZVR5cGU+OjpjcmVhdGVIYW5kbGVyKCkp
OwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlLCBBcHBs
eVByb3BlcnR5RGVmYXVsdDxFTkJTUE1vZGUsICZSZW5kZXJTdHlsZTo6bmJzcE1vZGUsIEVOQlNQ
TW9kZSwgJlJlbmRlclN0eWxlOjpzZXROQlNQTW9kZSwgRU5CU1BNb2RlLCAmUmVuZGVyU3R5bGU6
OmluaXRpYWxOQlNQTW9kZT46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5k
bGVyKENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW4sIEFwcGx5UHJvcGVydHlFeHBh
bmRpbmc8U3VwcHJlc3NWYWx1ZSwgQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdpblgs
IENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5ZPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdp
blgsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjpwZXJzcGVjdGl2ZU9yaWdpblgs
ICZSZW5kZXJTdHlsZTo6c2V0UGVyc3BlY3RpdmVPcmlnaW5YLCAmUmVuZGVyU3R5bGU6OmluaXRp
YWxQZXJzcGVjdGl2ZU9yaWdpblg+OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDRlMWViNjA0YTM4MGFmMGEwYzBiMGM3NDE5OTQ0YTM0MWQ4
ZmRiMzguLjAwZWVkMDc1NjhkN2I1NDg2M2MxM2M1OWM4NDc5NTk0ZmU1Y2UxZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTMwOTksNiArMzA5OSw3IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFs
dWUpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRYOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFz
a1NpemU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXROYnNwTW9kZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
UGVyc3BlY3RpdmVPcmlnaW46CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZl
T3JpZ2luWDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAK
aW5kZXggYjExZTI0Y2NkNDQ4M2JlZTllNzllNzRmNzc5NTI1Njk3MDU3YWJiYi4uNTMwNzQ3MTY3
YmY0N2I5MWQ5NmJhN2E3NjJjODljMTRjZGVkYWMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgRmlsbExheWVyOjpG
aWxsTGF5ZXIoRUZpbGxMYXllclR5cGUgdHlwZSkKICAgICAsIG1fY29tcG9zaXRlKEZpbGxMYXll
cjo6aW5pdGlhbEZpbGxDb21wb3NpdGUodHlwZSkpCiAgICAgLCBtX3NpemVUeXBlKEZpbGxMYXll
cjo6aW5pdGlhbEZpbGxTaXplVHlwZSh0eXBlKSkKICAgICAsIG1fYmxlbmRNb2RlKEZpbGxMYXll
cjo6aW5pdGlhbEZpbGxCbGVuZE1vZGUodHlwZSkpCisgICAgLCBtX21hc2tTb3VyY2VUeXBlKEZp
bGxMYXllcjo6aW5pdGlhbE1hc2tTb3VyY2VUeXBlKHR5cGUpKQogICAgICwgbV9pbWFnZVNldChm
YWxzZSkKICAgICAsIG1fYXR0YWNobWVudFNldChmYWxzZSkKICAgICAsIG1fY2xpcFNldChmYWxz
ZSkKQEAgLTY3LDYgKzY4LDcgQEAgRmlsbExheWVyOjpGaWxsTGF5ZXIoRUZpbGxMYXllclR5cGUg
dHlwZSkKICAgICAsIG1fYmFja2dyb3VuZFlPcmlnaW4oVG9wRWRnZSkKICAgICAsIG1fY29tcG9z
aXRlU2V0KHR5cGUgPT0gTWFza0ZpbGxMYXllcikKICAgICAsIG1fYmxlbmRNb2RlU2V0KGZhbHNl
KQorICAgICwgbV9tYXNrU291cmNlVHlwZVNldChmYWxzZSkKICAgICAsIG1fdHlwZSh0eXBlKQog
ewogfQpAQCAtODUsNiArODcsNyBAQCBGaWxsTGF5ZXI6OkZpbGxMYXllcihjb25zdCBGaWxsTGF5
ZXImIG8pCiAgICAgLCBtX2NvbXBvc2l0ZShvLm1fY29tcG9zaXRlKQogICAgICwgbV9zaXplVHlw
ZShvLm1fc2l6ZVR5cGUpCiAgICAgLCBtX2JsZW5kTW9kZShvLm1fYmxlbmRNb2RlKQorICAgICwg
bV9tYXNrU291cmNlVHlwZShvLm1fbWFza1NvdXJjZVR5cGUpCiAgICAgLCBtX2ltYWdlU2V0KG8u
bV9pbWFnZVNldCkKICAgICAsIG1fYXR0YWNobWVudFNldChvLm1fYXR0YWNobWVudFNldCkKICAg
ICAsIG1fY2xpcFNldChvLm1fY2xpcFNldCkKQEAgLTk4LDYgKzEwMSw3IEBAIEZpbGxMYXllcjo6
RmlsbExheWVyKGNvbnN0IEZpbGxMYXllciYgbykKICAgICAsIG1fYmFja2dyb3VuZFlPcmlnaW4o
by5tX2JhY2tncm91bmRZT3JpZ2luKQogICAgICwgbV9jb21wb3NpdGVTZXQoby5tX2NvbXBvc2l0
ZVNldCkKICAgICAsIG1fYmxlbmRNb2RlU2V0KG8ubV9ibGVuZE1vZGVTZXQpCisgICAgLCBtX21h
c2tTb3VyY2VUeXBlU2V0KG8ubV9tYXNrU291cmNlVHlwZVNldCkKICAgICAsIG1fdHlwZShvLm1f
dHlwZSkKIHsKIH0KQEAgLTEyOSw2ICsxMzMsNyBAQCBGaWxsTGF5ZXImIEZpbGxMYXllcjo6b3Bl
cmF0b3I9KGNvbnN0IEZpbGxMYXllciYgbykKICAgICBtX3JlcGVhdFggPSBvLm1fcmVwZWF0WDsK
ICAgICBtX3JlcGVhdFkgPSBvLm1fcmVwZWF0WTsKICAgICBtX3NpemVUeXBlID0gby5tX3NpemVU
eXBlOworICAgIG1fbWFza1NvdXJjZVR5cGUgPSBvLm1fbWFza1NvdXJjZVR5cGU7CiAKICAgICBt
X2ltYWdlU2V0ID0gby5tX2ltYWdlU2V0OwogICAgIG1fYXR0YWNobWVudFNldCA9IG8ubV9hdHRh
Y2htZW50U2V0OwpAQCAtMTQwLDcgKzE0NSw4IEBAIEZpbGxMYXllciYgRmlsbExheWVyOjpvcGVy
YXRvcj0oY29uc3QgRmlsbExheWVyJiBvKQogICAgIG1fcmVwZWF0WVNldCA9IG8ubV9yZXBlYXRZ
U2V0OwogICAgIG1feFBvc1NldCA9IG8ubV94UG9zU2V0OwogICAgIG1feVBvc1NldCA9IG8ubV95
UG9zU2V0OwotICAgIAorICAgIG1fbWFza1NvdXJjZVR5cGVTZXQgPSBvLm1fbWFza1NvdXJjZVR5
cGVTZXQ7CisKICAgICBtX3R5cGUgPSBvLm1fdHlwZTsKIAogICAgIHJldHVybiAqdGhpczsKQEAg
LTE1NCw4ICsxNjAsOSBAQCBib29sIEZpbGxMYXllcjo6b3BlcmF0b3I9PShjb25zdCBGaWxsTGF5
ZXImIG8pIGNvbnN0CiAgICAgICAgICAgICAmJiBtX2JhY2tncm91bmRYT3JpZ2luID09IG8ubV9i
YWNrZ3JvdW5kWE9yaWdpbiAmJiBtX2JhY2tncm91bmRZT3JpZ2luID09IG8ubV9iYWNrZ3JvdW5k
WU9yaWdpbgogICAgICAgICAgICAgJiYgbV9hdHRhY2htZW50ID09IG8ubV9hdHRhY2htZW50ICYm
IG1fY2xpcCA9PSBvLm1fY2xpcCAmJiBtX2NvbXBvc2l0ZSA9PSBvLm1fY29tcG9zaXRlCiAgICAg
ICAgICAgICAmJiBtX2JsZW5kTW9kZSA9PSBvLm1fYmxlbmRNb2RlICYmIG1fb3JpZ2luID09IG8u
bV9vcmlnaW4gJiYgbV9yZXBlYXRYID09IG8ubV9yZXBlYXRYCi0gICAgICAgICAgICAmJiBtX3Jl
cGVhdFkgPT0gby5tX3JlcGVhdFkgJiYgbV9zaXplVHlwZSA9PSBvLm1fc2l6ZVR5cGUgJiYgbV9z
aXplTGVuZ3RoID09IG8ubV9zaXplTGVuZ3RoCi0gICAgICAgICAgICAmJiBtX3R5cGUgPT0gby5t
X3R5cGUgJiYgKChtX25leHQgJiYgby5tX25leHQpID8gKm1fbmV4dCA9PSAqby5tX25leHQgOiBt
X25leHQgPT0gby5tX25leHQpOworICAgICAgICAgICAgJiYgbV9yZXBlYXRZID09IG8ubV9yZXBl
YXRZICYmIG1fc2l6ZVR5cGUgPT0gby5tX3NpemVUeXBlICYmIG1fbWFza1NvdXJjZVR5cGUgPT0g
by5tX21hc2tTb3VyY2VUeXBlCisgICAgICAgICAgICAmJiBtX3NpemVMZW5ndGggPT0gby5tX3Np
emVMZW5ndGggJiYgbV90eXBlID09IG8ubV90eXBlCisgICAgICAgICAgICAmJiAoKG1fbmV4dCAm
JiBvLm1fbmV4dCkgPyAqbV9uZXh0ID09ICpvLm1fbmV4dCA6IG1fbmV4dCA9PSBvLm1fbmV4dCk7
CiB9CiAKIHZvaWQgRmlsbExheWVyOjpmaWxsVW5zZXRQcm9wZXJ0aWVzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAppbmRleCAwNDBhM2YxMjUyNjMxYjhmYjRh
ZTk3MWJlMzc3NzcwZWE3MjI0MTIwLi5iNDhmMDc3OTU4ZmEwMDdmOTg3OThmNDY4MDgzNWMwNDQ4
NzU2OGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCkBA
IC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICBMZW5ndGhTaXplIHNpemVMZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX3NpemVMZW5ndGg7IH0KICAgICBFRmlsbFNpemVUeXBlIHNpemVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxTaXplVHlwZT4obV9zaXplVHlwZSk7IH0K
ICAgICBGaWxsU2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gRmlsbFNpemUoc3RhdGljX2Nhc3Q8
RUZpbGxTaXplVHlwZT4obV9zaXplVHlwZSksIG1fc2l6ZUxlbmd0aCk7IH0KKyAgICBFTWFza1Nv
dXJjZVR5cGUgbWFza1NvdXJjZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFTWFz
a1NvdXJjZVR5cGU+KG1fbWFza1NvdXJjZVR5cGUpOyB9CiAKICAgICBjb25zdCBGaWxsTGF5ZXIq
IG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQ7IH0KICAgICBGaWxsTGF5ZXIqIG5leHQoKSB7
IHJldHVybiBtX25leHQ7IH0KQEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgaXND
b21wb3NpdGVTZXQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0ZVNldDsgfQogICAgIGJvb2wg
aXNCbGVuZE1vZGVTZXQoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kTW9kZVNldDsgfQogICAgIGJv
b2wgaXNTaXplU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zaXplVHlwZSAhPSBTaXplTm9uZTsgfQot
ICAgIAorICAgIGJvb2wgaXNNYXNrU291cmNlVHlwZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFz
a1NvdXJjZVR5cGVTZXQ7IH0KKwogICAgIHZvaWQgc2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUlt
YWdlPiBpKSB7IG1faW1hZ2UgPSBpOyBtX2ltYWdlU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0
WFBvc2l0aW9uKExlbmd0aCBsKSB7IG1feFBvc2l0aW9uID0gbDsgbV94UG9zU2V0ID0gdHJ1ZTsg
fQogICAgIHZvaWQgc2V0WVBvc2l0aW9uKExlbmd0aCBsKSB7IG1feVBvc2l0aW9uID0gbDsgbV95
UG9zU2V0ID0gdHJ1ZTsgfQpAQCAtMTEyLDcgKzExNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFNpemVUeXBlKEVGaWxsU2l6ZVR5cGUgYikgeyBtX3NpemVUeXBlID0gYjsgfQogICAgIHZvaWQg
c2V0U2l6ZUxlbmd0aChMZW5ndGhTaXplIGwpIHsgbV9zaXplTGVuZ3RoID0gbDsgfQogICAgIHZv
aWQgc2V0U2l6ZShGaWxsU2l6ZSBmKSB7IG1fc2l6ZVR5cGUgPSBmLnR5cGU7IG1fc2l6ZUxlbmd0
aCA9IGYuc2l6ZTsgfQotICAgIAorICAgIHZvaWQgc2V0TWFza1NvdXJjZVR5cGUoRU1hc2tTb3Vy
Y2VUeXBlIG0pIHsgbV9tYXNrU291cmNlVHlwZSA9IG07IG1fbWFza1NvdXJjZVR5cGVTZXQgPSB0
cnVlOyB9CisKICAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UuY2xlYXIoKTsgbV9pbWFn
ZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhclhQb3NpdGlvbigpCiAgICAgewpAQCAtMTMz
LDYgKzEzNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ29tcG9zaXRlKCkgeyBtX2NvbXBv
c2l0ZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhckJsZW5kTW9kZSgpIHsgbV9ibGVuZE1v
ZGVTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJTaXplKCkgeyBtX3NpemVUeXBlID0gU2l6
ZU5vbmU7IH0KKyAgICB2b2lkIGNsZWFyTWFza1NvdXJjZVR5cGUoKSB7IG1fbWFza1NvdXJjZVR5
cGVTZXQgPSBmYWxzZTsgfQogCiAgICAgdm9pZCBzZXROZXh0KEZpbGxMYXllciogbikgeyBpZiAo
bV9uZXh0ICE9IG4pIHsgZGVsZXRlIG1fbmV4dDsgbV9uZXh0ID0gbjsgfSB9CiAKQEAgLTE4NCw2
ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsRmlsbFhQb3NpdGlv
bihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMCwgUGVyY2VudCk7IH0KICAgICBz
dGF0aWMgTGVuZ3RoIGluaXRpYWxGaWxsWVBvc2l0aW9uKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVy
biBMZW5ndGgoMC4wLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBTdHlsZUltYWdlKiBpbml0aWFs
RmlsbEltYWdlKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIEVNYXNr
U291cmNlVHlwZSBpbml0aWFsTWFza1NvdXJjZVR5cGUoRUZpbGxMYXllclR5cGUpIHsgcmV0dXJu
IE1hc2tBbHBoYTsgfQogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJTdHlsZTsK
QEAgLTIwOSw3ICsyMTQsOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fY29tcG9zaXRlIDog
NDsgLy8gQ29tcG9zaXRlT3BlcmF0b3IKICAgICB1bnNpZ25lZCBtX3NpemVUeXBlIDogMjsgLy8g
RUZpbGxTaXplVHlwZQogICAgIHVuc2lnbmVkIG1fYmxlbmRNb2RlIDogNTsgLy8gQmxlbmRNb2Rl
Ci0gICAgCisgICAgdW5zaWduZWQgbV9tYXNrU291cmNlVHlwZSA6IDE7IC8vIEVNYXNrU291cmNl
VHlwZQorCiAgICAgdW5zaWduZWQgbV9pbWFnZVNldCA6IDE7CiAgICAgdW5zaWduZWQgbV9hdHRh
Y2htZW50U2V0IDogMTsKICAgICB1bnNpZ25lZCBtX2NsaXBTZXQgOiAxOwpAQCAtMjIzLDcgKzIy
OSw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9iYWNrZ3JvdW5kWU9yaWdpbiA6IDI7IC8v
IEJhY2tncm91bmRFZGdlT3JpZ2luCiAgICAgdW5zaWduZWQgbV9jb21wb3NpdGVTZXQgOiAxOwog
ICAgIHVuc2lnbmVkIG1fYmxlbmRNb2RlU2V0IDogMTsKLSAgICAKKyAgICB1bnNpZ25lZCBtX21h
c2tTb3VyY2VUeXBlU2V0IDogMTsKKwogICAgIHVuc2lnbmVkIG1fdHlwZSA6IDE7IC8vIEVGaWxs
TGF5ZXJUeXBlCiAKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fY2xpcE1heCA6IDI7IC8vIEVGaWxs
Qm94LCBtYXhpbXVtIG1fY2xpcCB2YWx1ZSBmcm9tIHRoaXMgdG8gYm90dG9tIGxheWVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCmluZGV4IDgzMDYxMmU1N2U4MzZlODJiNzE4OWI2OWRjOTNkZDAwOTM2ZjJiNDkuLmE1YTc5
ZDZlOGU5Y2E0NWE3N2Y3NTUwZTQ1MzFjMDdlMjFmOWRkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC0xNjMs
NiArMTYzLDkgQEAgZW51bSBFRmlsbFNpemVUeXBlIHsgQ29udGFpbiwgQ292ZXIsIFNpemVMZW5n
dGgsIFNpemVOb25lIH07CiAvLyBDU1MzIEJhY2tncm91bmQgUG9zaXRpb24KIGVudW0gQmFja2dy
b3VuZEVkZ2VPcmlnaW4geyBUb3BFZGdlLCBSaWdodEVkZ2UsIEJvdHRvbUVkZ2UsIExlZnRFZGdl
IH07CiAKKy8vIENTUzMgTWFzayBTb3VyY2UgVHlwZXMKK2VudW0gRU1hc2tTb3VyY2VUeXBlIHsg
TWFza0FscGhhLCBNYXNrTHVtaW5hbmNlIH07CisKIC8vIENTUzMgTWFycXVlZSBQcm9wZXJ0aWVz
CiAKIGVudW0gRU1hcnF1ZWVCZWhhdmlvciB7IE1OT05FLCBNU0NST0xMLCBNU0xJREUsIE1BTFRF
Uk5BVEUgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA4MGQ3ZTViMTE0Y2NkZmFkYzY0N2ZhYzk5NGE1ZjRlMzljN2YyYzFh
Li4zM2IzMTI1YzRhYjU5YmYzZGM5MjNhZWVlYjczOTM2YWM5YjNhZDliIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTMtMDgtMTIgIEFuZHJlaSBQYXJ2dSAgPHBhcnZ1QGFkb2JlLmNvbT4KKwor
ICAgICAgICBbQ1NTIE1hc2tpbmddIEFkZCAtd2Via2l0LW1hc2stc291cmNlLXR5cGUgcHJvcGVy
dHksIHdpdGggYXV0bywgYWxwaGEgYW5kIGx1bWluYW5jZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTYxNAorCisgICAgICAgIEFkZGVk
IHRlc3RzIGZvciB0aGUgcGFyc2luZyBvZiB0aGUgLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIHBy
b3BlcnR5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L21hc2tpbmcvcGFyc2luZy1tYXNrLXNvdXJjZS10eXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1zb3VyY2UtdHlwZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLmh0bWw6CisKIDIwMTMtMDgt
MDggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjEzOTI4Mik6IE9sZCBjYXJldCBzb21ldGltZXMgZ2V0cyAic3R1Y2siIChub3QgcmVwYWlu
dGVkKSBpbiBjb250ZW50ZWRpdGFibGUgZWxlbWVudHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbWFza2luZy9wYXJzaW5nLW1hc2stZXhwZWN0ZWQudHh0CmluZGV4IDllOTQ3NmZlMjA0MzRi
MmFiNmNjYmFkMjMwYWRmNWUzMjVkNzY3NTIuLjk4YzBmZDg2NDQ3N2Q2YmIxNGQ5YTEwMTViNDA3
NWY0MWYzNGQ3ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5n
LW1hc2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5n
LW1hc2stZXhwZWN0ZWQudHh0CkBAIC0zOSw2ICszOSwxMyBAQCBQQVNTIGlubmVyU3R5bGUoIi13
ZWJraXQtbWFzay1wb3NpdGlvbiIsICJsZWZ0IDEwcHggY2VudGVyIikgaXMgImxlZnQgMTBweCB0
b3AgNQogUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2stcG9zaXRpb24iLCAiY2VudGVyIHRv
cCAyMHB4IikgaXMgImxlZnQgNTAlIHRvcCAyMHB4IgogUEFTUyBpbm5lclN0eWxlKCItd2Via2l0
LW1hc2stcG9zaXRpb24iLCAiY2VudGVyIGxlZnQgMzBweCIpIGlzICJsZWZ0IDMwcHggdG9wIDUw
JSIKIFBBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLXBvc2l0aW9uIiwgImxlZnQgMjAlIHRv
cCIpIGlzICJsZWZ0IDIwJSB0b3AgMCUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzay1z
b3VyY2UtdHlwZSIsICJhbHBoYSIpIGlzICJhbHBoYSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtp
dC1tYXNrLXNvdXJjZS10eXBlIiwgImx1bWluYW5jZSIpIGlzICJsdW1pbmFuY2UiCitQQVNTIGlu
bmVyU3R5bGUoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIsICJhdXRvIikgaXMgImF1dG8iCitQ
QVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIsICJhbHBoYSIpIGlz
ICJhbHBoYSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwg
ImF1dG8iKSBpcyAiYWxwaGEiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1zb3Vy
Y2UtdHlwZSIsICJsdW1pbmFuY2UiKSBpcyAibHVtaW5hbmNlIgorUEFTUyBjb21wdXRlZFN0eWxl
KCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAiIikgaXMgImFscGhhIgogUEFTUyBpbm5lclN0
eWxlKCItd2Via2l0LW1hc2siLCAicmVwZWF0LXgiKSBpcyAicmVwZWF0LXgiCiBQQVNTIGlubmVy
U3R5bGUoIi13ZWJraXQtbWFzayIsICJyZXBlYXQteSIpIGlzICJyZXBlYXQteSIKIFBBU1MgaW5u
ZXJTdHlsZSgiLXdlYmtpdC1tYXNrIiwgInJlcGVhdCIpIGlzICJyZXBlYXQiCkBAIC0xMDksNiAr
MTE2LDEwIEBAIFBBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrIiwgIm5vbmUgY2VudGVyIGNl
bnRlciAyMHB4IC8gYXV0byByZXBlYXQteCBzY3JvbGwKIFBBU1MgaW5uZXJTdHlsZSgiLXdlYmtp
dC1tYXNrIiwgIm5vbmUgdG9wIDIwcHggcmlnaHQgMzBweCBjZW50ZXIgLyBhdXRvIHJlcGVhdC14
IHNjcm9sbCBib3JkZXItYm94IGJvcmRlci1ib3giKSBpcyBudWxsCiBQQVNTIGlubmVyU3R5bGUo
Ii13ZWJraXQtbWFzayIsICJub25lIHRvcCAyMHB4IHRvcCAzMHB4IC8gYXV0byByZXBlYXQteCBz
Y3JvbGwgYm9yZGVyLWJveCBib3JkZXItYm94IikgaXMgbnVsbAogUEFTUyBpbm5lclN0eWxlKCIt
d2Via2l0LW1hc2siLCAibm9uZSB0b3AgMjBweCBib3R0b20gLyBhdXRvIHJlcGVhdC14IHNjcm9s
bCBib3JkZXItYm94IGJvcmRlci1ib3giKSBpcyBudWxsCitQQVNTIGlubmVyU3R5bGUoIi13ZWJr
aXQtbWFzay1zb3VyY2UtdHlwZSIsICJydWJiaXNoIikgaXMgbnVsbAorUEFTUyBpbm5lclN0eWxl
KCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAiIikgaXMgbnVsbAorUEFTUyBpbm5lclN0eWxl
KCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAiY2VudGVyIikgaXMgbnVsbAorUEFTUyBpbm5l
clN0eWxlKCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAicmVwZWF0IikgaXMgbnVsbAogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLXNvdXJjZS10eXBlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLW1hc2stc291cmNlLXR5
cGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NDBmNWZlOGFjYWFiZGNkYzk1Yjk4YzA2OTdl
NzcyY2IwOWUwZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcv
cGFyc2luZy1tYXNrLXNvdXJjZS10eXBlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1BB
U1Mgc2V0UHJvcGVydHkoImFscGhhLCBhbHBoYSwgYWxwaGEsIGFscGhhIikgaXMgImFscGhhLCBh
bHBoYSwgYWxwaGEsIGFscGhhIgorUEFTUyBzZXRQcm9wZXJ0eSgibHVtaW5hbmNlLCBhbHBoYSIp
IGlzICJsdW1pbmFuY2UsIGFscGhhLCBhbHBoYSwgYWxwaGEiCitQQVNTIHNldFByb3BlcnR5KCJs
dW1pbmFuY2UsIGx1bWluYW5jZSwgbHVtaW5hbmNlLCBsdW1pbmFuY2UiKSBpcyAibHVtaW5hbmNl
LCBsdW1pbmFuY2UsIGx1bWluYW5jZSwgbHVtaW5hbmNlIgorUEFTUyBzZXRQcm9wZXJ0eSgiYXV0
bywgYWxwaGEsIGx1bWluYW5jZSwgbHVtaW5hbmNlIikgaXMgImFscGhhLCBhbHBoYSwgbHVtaW5h
bmNlLCBsdW1pbmFuY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmct
bWFzay1zb3VyY2UtdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmct
bWFzay1zb3VyY2UtdHlwZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZGQzM2I2OTczYTAyMDM3Y2JjMGYy
ZjNlYjUxNzlkYjEyNTlmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21h
c2tpbmcvcGFyc2luZy1tYXNrLXNvdXJjZS10eXBlLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8c3R5bGU+CisgICAgICAgICogeyBmb250LXNpemU6
IDE2cHg7IH0KKyAgICAgICAgZGl2IHsgZm9udC1zaXplOiA4cHg7IH0KKyAgICA8L3N0eWxlPgor
ICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9u
IHNldFByb3BlcnR5KHZhbHVlKSB7CisgICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAgICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkoIi13
ZWJraXQtbWFzay1pbWFnZSIsICJub25lLCBub25lLCBub25lLCBub25lIik7CisgICAgICAgICAg
ICAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCB2
YWx1ZSk7CisKKyAgICAgICAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVk
U3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiKTsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3NldFByb3BlcnR5KCInICsgdmFsdWUgKyAnIiknLCBleHBl
Y3RlZCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlc3QoImFscGhhLCBhbHBoYSwg
YWxwaGEsIGFscGhhIiwgImFscGhhLCBhbHBoYSwgYWxwaGEsIGFscGhhIik7CisgICAgICAgICAg
ICB0ZXN0KCJsdW1pbmFuY2UsIGFscGhhIiwgImx1bWluYW5jZSwgYWxwaGEsIGFscGhhLCBhbHBo
YSIpOworICAgICAgICAgICAgdGVzdCgibHVtaW5hbmNlLCBsdW1pbmFuY2UsIGx1bWluYW5jZSwg
bHVtaW5hbmNlIiwgImx1bWluYW5jZSwgbHVtaW5hbmNlLCBsdW1pbmFuY2UsIGx1bWluYW5jZSIp
OworICAgICAgICAgICAgdGVzdCgiYXV0bywgYWxwaGEsIGx1bWluYW5jZSwgbHVtaW5hbmNlIiwg
ImFscGhhLCBhbHBoYSwgbHVtaW5hbmNlLCBsdW1pbmFuY2UiKTsKKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcv
cGFyc2luZy1tYXNrLmh0bWwKaW5kZXggNjBmNTNmMzcyOTcyNGY5M2IxYTBmN2MwMTA4MDZjZjA1
OWNjZTgwOS4uNDMwZTkwMTkyMWE4MmIyMDA4N2Q1YzBhODQzZWIzNDM3NzM2M2NkOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLW1hc2suaHRtbApAQCAtODMsNiArODMsMTUg
QEAgdGVzdElubmVyKCItd2Via2l0LW1hc2stcG9zaXRpb24iLCAiY2VudGVyIHRvcCAyMHB4Iiwg
ImxlZnQgNTAlIHRvcCAyMHB4Iik7CiB0ZXN0SW5uZXIoIi13ZWJraXQtbWFzay1wb3NpdGlvbiIs
ICJjZW50ZXIgbGVmdCAzMHB4IiwgImxlZnQgMzBweCB0b3AgNTAlIik7CiB0ZXN0SW5uZXIoIi13
ZWJraXQtbWFzay1wb3NpdGlvbiIsICJsZWZ0IDIwJSB0b3AiLCAibGVmdCAyMCUgdG9wIDAlIik7
CiAKKy8vIHRlc3QgbWFzay1zb3VyY2UtdHlwZQordGVzdElubmVyKCItd2Via2l0LW1hc2stc291
cmNlLXR5cGUiLCAiYWxwaGEiLCAiYWxwaGEiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1tYXNrLXNv
dXJjZS10eXBlIiwgImx1bWluYW5jZSIsICJsdW1pbmFuY2UiKTsKK3Rlc3RJbm5lcigiLXdlYmtp
dC1tYXNrLXNvdXJjZS10eXBlIiwgImF1dG8iLCAiYXV0byIpOwordGVzdENvbXB1dGVkKCItd2Vi
a2l0LW1hc2stc291cmNlLXR5cGUiLCAiYWxwaGEiLCAiYWxwaGEiKTsKK3Rlc3RDb21wdXRlZCgi
LXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgImF1dG8iLCAiYWxwaGEiKTsKK3Rlc3RDb21wdXRl
ZCgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgImx1bWluYW5jZSIsICJsdW1pbmFuY2UiKTsK
K3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgIiIsICJhbHBoYSIpOwor
CiAvLyB0ZXN0IG1hc2stcmVwZWF0CiB0ZXN0SW5uZXIoIi13ZWJraXQtbWFzayIsICJyZXBlYXQt
eCIsICJyZXBlYXQteCIpOwogdGVzdElubmVyKCItd2Via2l0LW1hc2siLCAicmVwZWF0LXkiLCAi
cmVwZWF0LXkiKTsKQEAgLTE2Niw2ICsxNzUsMTAgQEAgbmVnYXRpdmVUZXN0KCItd2Via2l0LW1h
c2siLCAibm9uZSBjZW50ZXIgY2VudGVyIDIwcHggLyBhdXRvIHJlcGVhdC14IHNjcm9sbCBib3IK
IG5lZ2F0aXZlVGVzdCgiLXdlYmtpdC1tYXNrIiwgIm5vbmUgdG9wIDIwcHggcmlnaHQgMzBweCBj
ZW50ZXIgLyBhdXRvIHJlcGVhdC14IHNjcm9sbCBib3JkZXItYm94IGJvcmRlci1ib3giKTsKIG5l
Z2F0aXZlVGVzdCgiLXdlYmtpdC1tYXNrIiwgIm5vbmUgdG9wIDIwcHggdG9wIDMwcHggLyBhdXRv
IHJlcGVhdC14IHNjcm9sbCBib3JkZXItYm94IGJvcmRlci1ib3giKTsKIG5lZ2F0aXZlVGVzdCgi
LXdlYmtpdC1tYXNrIiwgIm5vbmUgdG9wIDIwcHggYm90dG9tIC8gYXV0byByZXBlYXQteCBzY3Jv
bGwgYm9yZGVyLWJveCBib3JkZXItYm94Iik7CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzay1z
b3VyY2UtdHlwZSIsICJydWJiaXNoIik7CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzay1zb3Vy
Y2UtdHlwZSIsICIiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwg
ImNlbnRlciIpOworbmVnYXRpdmVUZXN0KCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAicmVw
ZWF0Iik7CiAKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208806</attachid>
            <date>2013-08-15 07:15:26 -0700</date>
            <delta_ts>2013-08-16 04:40:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119614-20130815171528.patch</filename>
            <type>text/plain</type>
            <size>26370</size>
            <attacher name="Andrei Parvu">parvu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDlkZDVmNjc0MjhkYTlj
ZTVkMTQzMWM4MTQzNjliODgyODU3MTk3MC4uYTBiZDg0YTA0NmRlYTljZWQ1ZDA5NDA2ZGJiZjE3
NmM2MDViYWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTA4LTEyICBBbmRy
ZWkgUGFydnUgIDxwYXJ2dUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBNYXNraW5nXSBBZGQg
LXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIHByb3BlcnR5LCB3aXRoIGF1dG8sIGFscGhhIGFuZCBs
dW1pbmFuY2UgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTk2MTQKKworICAgICAgICBBZGRlZCB0aGUgLXdlYmtpdC1tYXNrLXNvdXJjZS10
eXBlIHByb3BlcnR5LCB3aGljaCBjYW4gaGF2ZSBhIHZhbHVlIG9mIGF1dG8sIGFscGhhIG9yCisg
ICAgICAgIGx1bWluYW5jZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYXV0by4gVGhpcyBwYXRjaCBj
b250YWlucyBvbmx5IHRoZSBwYXJzaW5nIG9mIHRoZSBwcm9wZXJ0eSwKKyAgICAgICAgbm90IHRo
ZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIHR5cGVzIG9mIG1hc2tzLiBUaGUgcGFyc2lu
ZyBvZiBtYXNrLXNvdXJjZS10eXBlIGluIHRoZQorICAgICAgICAtd2Via2l0LW1hc2sgcHJvcGVy
dHkgd2lsbCBiZSBoYW5kbGVkIGluIGEgc2VwYXJhdGUgcGF0Y2guCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tYXNraW5nL3BhcnNp
bmctbWFzay1zb3VyY2UtdHlwZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDogQWRkZWQgY2FzZSBmb3IgQ1NTUHJvcGVydHlXZWJraXRNYXNrVHlw
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOiBQYXJzZWQgdGhlIHZhbHVlcyBmb3Ig
Q1NTUHJvcGVydHlXZWJraXRNYXNrVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsbFByb3Bl
cnR5KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluOiBBZGRlZCAtd2Via2l0LW1hc2stdHlwZSBwcm9wZXJ0eS4KKyAgICAgICAg
KiBjc3MvQ1NTVG9TdHlsZU1hcC5jcHA6IG1hcCB0aGUgcHJvdmlkZWQgbWFzayB0eXBlIHRvIHRo
ZSBGaWxsTGF5ZXIgY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjpDU1NUb1N0eWxlTWFwOjptYXBG
aWxsTWFza1R5cGUpOgorICAgICAgICAqIGNzcy9DU1NUb1N0eWxlTWFwLmg6CisgICAgICAgICog
Y3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVj
YXRlZFN0eWxlQnVpbGRlcjo6RGVwcmVjYXRlZFN0eWxlQnVpbGRlcik6CisgICAgICAgICogY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBw
bHlQcm9wZXJ0eSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHA6IEFk
ZGVkIHRoZSBtX21hc2tUeXBlIHByb3BlcnR5IHRvIHRoZSBGaWxsTGF5ZXIgY2xhc3MuCisgICAg
ICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OkZpbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6Om9wZXJh
dG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDogQWRkZWQgbWV0
aG9kcyBmb3Igd29ya2luZyB3aXRoIG1fbWFza1R5cGUuCisgICAgICAgIChXZWJDb3JlOjpGaWxs
TGF5ZXI6Om1hc2tUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aXNNYXNrVHlw
ZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OnNldE1hc2tUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6Y2xlYXJNYXNrVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxsTGF5ZXI6OmluaXRpYWxNYXNrVHlwZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6IEFkZGVkIHRoZSBFTWFza1NvdXJjZVR5cGUgZW51bS4K
KwogMjAxMy0wOC0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgTW92ZSBtb3JlIHN0eWxlIHJlY2FsYyBjb2RlIHRvIFN0eWxlUmVzb2x2ZVRyZWUuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IDcxNWUzOWM0OTczNzY1NzhlMTgxNDBiY2IwZDAzMTVkMjVkOWI3Y2QuLjcwNThlZGJm
ZTMxZDgxZTcwMzQ4YmY3NzE1NGM0NmYxYTYyZmNkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMjksNiArMzI5LDcg
QEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAg
ICAgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb24sCiAgICAgQ1NTUHJvcGVydHlXZWJraXRN
YXNrUmVwZWF0LAogICAgIENTU1Byb3BlcnR5V2Via2l0TWFza1NpemUsCisgICAgQ1NTUHJvcGVy
dHlXZWJraXRNYXNrU291cmNlVHlwZSwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlLAog
ICAgIENTU1Byb3BlcnR5V2Via2l0T3JkZXIsCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJG
TE9XX1NDUk9MTElORykKQEAgLTE0MjMsNiArMTQyNCwxOSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gZmlsbFJlcGVhdFRvQ1NTVmFsdWUoRUZpbGxSZXBlYXQgeFJlcGVhdCwgRUZpbGxS
ZXBlYQogICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKIH0KIAorc3RhdGljIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IGZpbGxTb3VyY2VUeXBlVG9DU1NWYWx1ZShFTWFza1NvdXJjZVR5cGUgdHlwZSkK
K3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIE1hc2tBbHBoYToKKyAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKENTU1ZhbHVlQWxwaGEpOworICAgIGNhc2Ug
TWFza0x1bWluYW5jZToKKyAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVl
KENTU1ZhbHVlTHVtaW5hbmNlKTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KworICAgIHJldHVybiAwOworfQogc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGZpbGxTaXpl
VG9DU1NWYWx1ZShjb25zdCBGaWxsU2l6ZSYgZmlsbFNpemUsIGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZSkKIHsKICAgICBpZiAoZmlsbFNpemUudHlwZSA9PSBDb250YWluKQpAQCAtMTc2NSw2ICsx
Nzc5LDIxIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnBy
b3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAKICAgICAgICAgICAgIHJldHVybiBs
aXN0LnJlbGVhc2UoKTsKICAgICAgICAgfQorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
TWFza1NvdXJjZVR5cGU6IHsKKyAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzID0g
c3R5bGUtPm1hc2tMYXllcnMoKTsKKworICAgICAgICAgICAgaWYgKCFsYXllcnMpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NW
YWx1ZU5vbmUpOworCisgICAgICAgICAgICBpZiAoIWxheWVycy0+bmV4dCgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmaWxsU291cmNlVHlwZVRvQ1NTVmFsdWUobGF5ZXJzLT5tYXNrU291cmNl
VHlwZSgpKTsKKworICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3Qg
RmlsbExheWVyKiBjdXJyTGF5ZXIgPSBsYXllcnM7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3Vy
ckxheWVyLT5uZXh0KCkpCisgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGZpbGxTb3VyY2VU
eXBlVG9DU1NWYWx1ZShjdXJyTGF5ZXItPm1hc2tTb3VyY2VUeXBlKCkpKTsKKworICAgICAgICAg
ICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRCYWNrZ3JvdW5kQ29tcG9zaXRlOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0TWFza0NvbXBvc2l0ZTogewogICAgICAgICAgICAgY29uc3QgRmlsbExheWVyKiBsYXll
cnMgPSBwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5V2Via2l0TWFza0NvbXBvc2l0ZSA/IHN0eWxl
LT5tYXNrTGF5ZXJzKCkgOiBzdHlsZS0+YmFja2dyb3VuZExheWVycygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAppbmRleCAzODZiYjdiNzA3OWJiYjgxYjc5YWY0MTBkMDAwMDkzMWIyOTEyNWE5
Li5kMDk3OTMzMjFhMWQ1ZDUwYTM4NDgzNjZkOTc1OTRhNmE2MGNjZmY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcApAQCAtMjE0Nyw2ICsyMTQ3LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25YOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXNrUG9zaXRpb25ZOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZToKKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1NvdXJjZVR5cGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hc2tSZXBlYXQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRY
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKQEAgLTQ0MjcsNiArNDQy
OCwxNCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VGaWxsUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBw
cm9wSWQsIENTU1Byb3BlcnR5SUQmIHByb3BJZDEsCiAgICAgICAgICAgICAgICAgICAgICAgICBt
X3ZhbHVlTGlzdC0+bmV4dCgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3Vy
Y2VUeXBlOiB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwtPmlkID09IENTU1ZhbHVlQXV0
byB8fCB2YWwtPmlkID09IENTU1ZhbHVlQWxwaGEgfHwgdmFsLT5pZCA9PSBDU1NWYWx1ZUx1bWlu
YW5jZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbC0+aWQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICBjdXJyVmFsdWUgPSAwOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5LmNwcAppbmRleCAyMmQ1YmU5NWVlYjg0MDgwZDhhNjdlMzRkZWJiNTk5YTU1MGIwN2QyLi40
NmQyYTUyZDZmNmQ3ZDgxOTA5NmQ0YWVhODRmNWJlZjJmOWNlZmExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eS5jcHAKQEAgLTY0Myw2ICs2NDMsNyBAQCBib29sIENTU1Byb3BlcnR5Ojppc0lu
aGVyaXRlZFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0TWFza1JlcGVhdFg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tS
ZXBlYXRZOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrU2l6ZToKKyAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFza1NvdXJjZVR5cGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1heExvZ2ljYWxXaWR0aDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWF4TG9naWNhbEhl
aWdodDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWluTG9naWNhbFdpZHRoOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCBmMDY4ZjU5MjYzNjAwM2JjZGNmMzM4
YzQxZTRiYTMxNmZlMGRmZTExLi5iOWI5NWQ1N2UxOTMxMzBmNmNjNjIwMzE5YzM3NDdmOWU4YTBj
MzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMzU5LDYgKzM1
OSw3IEBAIHotaW5kZXgKIC13ZWJraXQtbWFzay1yZXBlYXQteAogLXdlYmtpdC1tYXNrLXJlcGVh
dC15CiAtd2Via2l0LW1hc2stc2l6ZQorLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlCiAtd2Via2l0
LW1heC1sb2dpY2FsLXdpZHRoCiAtd2Via2l0LW1heC1sb2dpY2FsLWhlaWdodAogLXdlYmtpdC1t
aW4tbG9naWNhbC13aWR0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5
bGVNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCmluZGV4IDE3
YTc5ZmRkNTQ2MGRhZDc0NDhjNGEyNzRhMTI4ZWFhYmQ1MjFlNDMuLjU0YjFjY2E2NjBiMTQ0NjBj
MjZmNWU5ZmI2M2NhMDY3NzExNTU2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NUb1N0eWxlTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5j
cHAKQEAgLTI5OSw2ICsyOTksMzQgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0
aW9uKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyKiBsYXllciwKICAgICAgICAg
bGF5ZXItPnNldEJhY2tncm91bmRZT3JpZ2luKCoocGFpci0+Zmlyc3QoKSkpOwogfQogCit2b2lk
IENTU1RvU3R5bGVNYXA6Om1hcEZpbGxNYXNrU291cmNlVHlwZShDU1NQcm9wZXJ0eUlELCBGaWxs
TGF5ZXIqIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgRU1hc2tTb3VyY2VUeXBlIHR5
cGUgPSBGaWxsTGF5ZXI6OmluaXRpYWxNYXNrU291cmNlVHlwZShsYXllci0+dHlwZSgpKTsKKyAg
ICBpZiAodmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkpIHsKKyAgICAgICAgbGF5ZXItPnNldE1hc2tT
b3VyY2VUeXBlKHR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCF2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlKTsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKKyAg
ICBjYXNlIENTU1ZhbHVlQWxwaGE6CisgICAgICAgIHR5cGUgPSBFTWFza1NvdXJjZVR5cGU6Ok1h
c2tBbHBoYTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUx1bWluYW5jZToKKyAg
ICAgICAgdHlwZSA9IEVNYXNrU291cmNlVHlwZTo6TWFza0x1bWluYW5jZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGxheWVyLT5zZXRN
YXNrU291cmNlVHlwZSh0eXBlKTsKK30KKwogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRp
b25EZWxheShBbmltYXRpb24qIGFuaW1hdGlvbiwgQ1NTVmFsdWUqIHZhbHVlKQogewogICAgIGlm
ICh2YWx1ZS0+aXNJbml0aWFsVmFsdWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RvU3R5bGVNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgK
aW5kZXggM2NiMTIxNTBhODQzZThhNDhlMzlhNWI1NDEzNTc1OTI5NGM0MTY3My4uY2Y1MGM4NTk0
MmE4MDE4MjYzM2EzYzMxMDJjYjc2NzkyNjlhNDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1RvU3R5bGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHls
ZU1hcC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcEZpbGxTaXplKENT
U1Byb3BlcnR5SUQsIEZpbGxMYXllciosIENTU1ZhbHVlKik7CiAgICAgdm9pZCBtYXBGaWxsWFBv
c2l0aW9uKENTU1Byb3BlcnR5SUQsIEZpbGxMYXllciosIENTU1ZhbHVlKik7CiAgICAgdm9pZCBt
YXBGaWxsWVBvc2l0aW9uKENTU1Byb3BlcnR5SUQsIEZpbGxMYXllciosIENTU1ZhbHVlKik7Cisg
ICAgdm9pZCBtYXBGaWxsTWFza1NvdXJjZVR5cGUoQ1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiwg
Q1NTVmFsdWUqKTsKIAogICAgIHZvaWQgbWFwQW5pbWF0aW9uRGVsYXkoQW5pbWF0aW9uKiwgQ1NT
VmFsdWUqKTsKICAgICB2b2lkIG1hcEFuaW1hdGlvbkRpcmVjdGlvbihBbmltYXRpb24qLCBDU1NW
YWx1ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3Bw
CmluZGV4IDAzOTAwYjA4ODdjNjM4ZDI5ZTJmMzVlZDFkZjk0NDFlM2JlZjJlZDAuLjBiNjEwYzAz
ZjNlODQ4NWNiMjUxMzU3NTk4ODY5MjI1MWFjY2E3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTIzMTAsNiArMjMxMCw3IEBAIERlcHJl
Y2F0ZWRTdHlsZUJ1aWxkZXI6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3Bl
cnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRYLCBBcHBseVByb3BlcnR5Rmls
bExheWVyPEVGaWxsUmVwZWF0LCBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRYLCBNYXNrRmls
bExheWVyLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01hc2tMYXllcnMsICZSZW5kZXJTdHlsZTo6bWFz
a0xheWVycywgJkZpbGxMYXllcjo6aXNSZXBlYXRYU2V0LCAmRmlsbExheWVyOjpyZXBlYXRYLCAm
RmlsbExheWVyOjpzZXRSZXBlYXRYLCAmRmlsbExheWVyOjpjbGVhclJlcGVhdFgsICZGaWxsTGF5
ZXI6OmluaXRpYWxGaWxsUmVwZWF0WCwgJkNTU1RvU3R5bGVNYXA6Om1hcEZpbGxSZXBlYXRYPjo6
Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXRNYXNrUmVwZWF0WSwgQXBwbHlQcm9wZXJ0eUZpbGxMYXllcjxFRmlsbFJlcGVhdCwgQ1NTUHJv
cGVydHlXZWJraXRNYXNrUmVwZWF0WSwgTWFza0ZpbGxMYXllciwgJlJlbmRlclN0eWxlOjphY2Nl
c3NNYXNrTGF5ZXJzLCAmUmVuZGVyU3R5bGU6Om1hc2tMYXllcnMsICZGaWxsTGF5ZXI6OmlzUmVw
ZWF0WVNldCwgJkZpbGxMYXllcjo6cmVwZWF0WSwgJkZpbGxMYXllcjo6c2V0UmVwZWF0WSwgJkZp
bGxMYXllcjo6Y2xlYXJSZXBlYXRZLCAmRmlsbExheWVyOjppbml0aWFsRmlsbFJlcGVhdFksICZD
U1NUb1N0eWxlTWFwOjptYXBGaWxsUmVwZWF0WT46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0TWFza1NpemUsIEFwcGx5UHJvcGVydHlG
aWxsTGF5ZXI8RmlsbFNpemUsIENTU1Byb3BlcnR5V2Via2l0TWFza1NpemUsIE1hc2tGaWxsTGF5
ZXIsICZSZW5kZXJTdHlsZTo6YWNjZXNzTWFza0xheWVycywgJlJlbmRlclN0eWxlOjptYXNrTGF5
ZXJzLCAmRmlsbExheWVyOjppc1NpemVTZXQsICZGaWxsTGF5ZXI6OnNpemUsICZGaWxsTGF5ZXI6
OnNldFNpemUsICZGaWxsTGF5ZXI6OmNsZWFyU2l6ZSwgJkZpbGxMYXllcjo6aW5pdGlhbEZpbGxT
aXplLCAmQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbFNpemU+OjpjcmVhdGVIYW5kbGVyKCkpOworICAg
IHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTb3VyY2VUeXBlLCBBcHBs
eVByb3BlcnR5RmlsbExheWVyPEVNYXNrU291cmNlVHlwZSwgQ1NTUHJvcGVydHlXZWJraXRNYXNr
U291cmNlVHlwZSwgTWFza0ZpbGxMYXllciwgJlJlbmRlclN0eWxlOjphY2Nlc3NNYXNrTGF5ZXJz
LCAmUmVuZGVyU3R5bGU6Om1hc2tMYXllcnMsICZGaWxsTGF5ZXI6OmlzTWFza1NvdXJjZVR5cGVT
ZXQsICZGaWxsTGF5ZXI6Om1hc2tTb3VyY2VUeXBlLCAmRmlsbExheWVyOjpzZXRNYXNrU291cmNl
VHlwZSwgJkZpbGxMYXllcjo6Y2xlYXJNYXNrU291cmNlVHlwZSwgJkZpbGxMYXllcjo6aW5pdGlh
bE1hc2tTb3VyY2VUeXBlLCAmQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbE1hc2tTb3VyY2VUeXBlPjo6
Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXROYnNwTW9kZSwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RU5CU1BNb2RlLCAmUmVuZGVyU3R5bGU6
Om5ic3BNb2RlLCBFTkJTUE1vZGUsICZSZW5kZXJTdHlsZTo6c2V0TkJTUE1vZGUsIEVOQlNQTW9k
ZSwgJlJlbmRlclN0eWxlOjppbml0aWFsTkJTUE1vZGU+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAg
IHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luLCBB
cHBseVByb3BlcnR5RXhwYW5kaW5nPFN1cHByZXNzVmFsdWUsIENTU1Byb3BlcnR5V2Via2l0UGVy
c3BlY3RpdmVPcmlnaW5YLCBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luWT46OmNy
ZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0
UGVyc3BlY3RpdmVPcmlnaW5YLCBBcHBseVByb3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6cGVy
c3BlY3RpdmVPcmlnaW5YLCAmUmVuZGVyU3R5bGU6OnNldFBlcnNwZWN0aXZlT3JpZ2luWCwgJlJl
bmRlclN0eWxlOjppbml0aWFsUGVyc3BlY3RpdmVPcmlnaW5YPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA0ZTFlYjYwNGEzODBhZjBhMGMw
YjBjNzQxOTk0NGEzNDFkOGZkYjM4Li4wMGVlZDA3NTY4ZDdiNTQ4NjNjMTNjNTljODQ3OTU5NGZl
NWNlMWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0zMDk5LDYgKzMw
OTksNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBp
ZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0
WDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFk6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdE1hc2tTaXplOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrU291
cmNlVHlwZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TmJzcE1vZGU6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luOgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRQZXJzcGVjdGl2ZU9yaWdpblg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9GaWxsTGF5ZXIuY3BwCmluZGV4IGIxMWUyNGNjZDQ0ODNiZWU5ZTc5ZTc0Zjc3OTUyNTY5NzA1
N2FiYmIuLjUzMDc0NzE2N2JmNDdiOTFkOTZiYTdhNzYyYzg5YzE0Y2RlZGFjMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC01NCw2ICs1NCw3
IEBAIEZpbGxMYXllcjo6RmlsbExheWVyKEVGaWxsTGF5ZXJUeXBlIHR5cGUpCiAgICAgLCBtX2Nv
bXBvc2l0ZShGaWxsTGF5ZXI6OmluaXRpYWxGaWxsQ29tcG9zaXRlKHR5cGUpKQogICAgICwgbV9z
aXplVHlwZShGaWxsTGF5ZXI6OmluaXRpYWxGaWxsU2l6ZVR5cGUodHlwZSkpCiAgICAgLCBtX2Js
ZW5kTW9kZShGaWxsTGF5ZXI6OmluaXRpYWxGaWxsQmxlbmRNb2RlKHR5cGUpKQorICAgICwgbV9t
YXNrU291cmNlVHlwZShGaWxsTGF5ZXI6OmluaXRpYWxNYXNrU291cmNlVHlwZSh0eXBlKSkKICAg
ICAsIG1faW1hZ2VTZXQoZmFsc2UpCiAgICAgLCBtX2F0dGFjaG1lbnRTZXQoZmFsc2UpCiAgICAg
LCBtX2NsaXBTZXQoZmFsc2UpCkBAIC02Nyw2ICs2OCw3IEBAIEZpbGxMYXllcjo6RmlsbExheWVy
KEVGaWxsTGF5ZXJUeXBlIHR5cGUpCiAgICAgLCBtX2JhY2tncm91bmRZT3JpZ2luKFRvcEVkZ2Up
CiAgICAgLCBtX2NvbXBvc2l0ZVNldCh0eXBlID09IE1hc2tGaWxsTGF5ZXIpCiAgICAgLCBtX2Js
ZW5kTW9kZVNldChmYWxzZSkKKyAgICAsIG1fbWFza1NvdXJjZVR5cGVTZXQoZmFsc2UpCiAgICAg
LCBtX3R5cGUodHlwZSkKIHsKIH0KQEAgLTg1LDYgKzg3LDcgQEAgRmlsbExheWVyOjpGaWxsTGF5
ZXIoY29uc3QgRmlsbExheWVyJiBvKQogICAgICwgbV9jb21wb3NpdGUoby5tX2NvbXBvc2l0ZSkK
ICAgICAsIG1fc2l6ZVR5cGUoby5tX3NpemVUeXBlKQogICAgICwgbV9ibGVuZE1vZGUoby5tX2Js
ZW5kTW9kZSkKKyAgICAsIG1fbWFza1NvdXJjZVR5cGUoby5tX21hc2tTb3VyY2VUeXBlKQogICAg
ICwgbV9pbWFnZVNldChvLm1faW1hZ2VTZXQpCiAgICAgLCBtX2F0dGFjaG1lbnRTZXQoby5tX2F0
dGFjaG1lbnRTZXQpCiAgICAgLCBtX2NsaXBTZXQoby5tX2NsaXBTZXQpCkBAIC05OCw2ICsxMDEs
NyBAQCBGaWxsTGF5ZXI6OkZpbGxMYXllcihjb25zdCBGaWxsTGF5ZXImIG8pCiAgICAgLCBtX2Jh
Y2tncm91bmRZT3JpZ2luKG8ubV9iYWNrZ3JvdW5kWU9yaWdpbikKICAgICAsIG1fY29tcG9zaXRl
U2V0KG8ubV9jb21wb3NpdGVTZXQpCiAgICAgLCBtX2JsZW5kTW9kZVNldChvLm1fYmxlbmRNb2Rl
U2V0KQorICAgICwgbV9tYXNrU291cmNlVHlwZVNldChvLm1fbWFza1NvdXJjZVR5cGVTZXQpCiAg
ICAgLCBtX3R5cGUoby5tX3R5cGUpCiB7CiB9CkBAIC0xMjksNiArMTMzLDcgQEAgRmlsbExheWVy
JiBGaWxsTGF5ZXI6Om9wZXJhdG9yPShjb25zdCBGaWxsTGF5ZXImIG8pCiAgICAgbV9yZXBlYXRY
ID0gby5tX3JlcGVhdFg7CiAgICAgbV9yZXBlYXRZID0gby5tX3JlcGVhdFk7CiAgICAgbV9zaXpl
VHlwZSA9IG8ubV9zaXplVHlwZTsKKyAgICBtX21hc2tTb3VyY2VUeXBlID0gby5tX21hc2tTb3Vy
Y2VUeXBlOwogCiAgICAgbV9pbWFnZVNldCA9IG8ubV9pbWFnZVNldDsKICAgICBtX2F0dGFjaG1l
bnRTZXQgPSBvLm1fYXR0YWNobWVudFNldDsKQEAgLTE0MCw3ICsxNDUsOCBAQCBGaWxsTGF5ZXIm
IEZpbGxMYXllcjo6b3BlcmF0b3I9KGNvbnN0IEZpbGxMYXllciYgbykKICAgICBtX3JlcGVhdFlT
ZXQgPSBvLm1fcmVwZWF0WVNldDsKICAgICBtX3hQb3NTZXQgPSBvLm1feFBvc1NldDsKICAgICBt
X3lQb3NTZXQgPSBvLm1feVBvc1NldDsKLSAgICAKKyAgICBtX21hc2tTb3VyY2VUeXBlU2V0ID0g
by5tX21hc2tTb3VyY2VUeXBlU2V0OworCiAgICAgbV90eXBlID0gby5tX3R5cGU7CiAKICAgICBy
ZXR1cm4gKnRoaXM7CkBAIC0xNTQsOCArMTYwLDkgQEAgYm9vbCBGaWxsTGF5ZXI6Om9wZXJhdG9y
PT0oY29uc3QgRmlsbExheWVyJiBvKSBjb25zdAogICAgICAgICAgICAgJiYgbV9iYWNrZ3JvdW5k
WE9yaWdpbiA9PSBvLm1fYmFja2dyb3VuZFhPcmlnaW4gJiYgbV9iYWNrZ3JvdW5kWU9yaWdpbiA9
PSBvLm1fYmFja2dyb3VuZFlPcmlnaW4KICAgICAgICAgICAgICYmIG1fYXR0YWNobWVudCA9PSBv
Lm1fYXR0YWNobWVudCAmJiBtX2NsaXAgPT0gby5tX2NsaXAgJiYgbV9jb21wb3NpdGUgPT0gby5t
X2NvbXBvc2l0ZQogICAgICAgICAgICAgJiYgbV9ibGVuZE1vZGUgPT0gby5tX2JsZW5kTW9kZSAm
JiBtX29yaWdpbiA9PSBvLm1fb3JpZ2luICYmIG1fcmVwZWF0WCA9PSBvLm1fcmVwZWF0WAotICAg
ICAgICAgICAgJiYgbV9yZXBlYXRZID09IG8ubV9yZXBlYXRZICYmIG1fc2l6ZVR5cGUgPT0gby5t
X3NpemVUeXBlICYmIG1fc2l6ZUxlbmd0aCA9PSBvLm1fc2l6ZUxlbmd0aAotICAgICAgICAgICAg
JiYgbV90eXBlID09IG8ubV90eXBlICYmICgobV9uZXh0ICYmIG8ubV9uZXh0KSA/ICptX25leHQg
PT0gKm8ubV9uZXh0IDogbV9uZXh0ID09IG8ubV9uZXh0KTsKKyAgICAgICAgICAgICYmIG1fcmVw
ZWF0WSA9PSBvLm1fcmVwZWF0WSAmJiBtX3NpemVUeXBlID09IG8ubV9zaXplVHlwZSAmJiBtX21h
c2tTb3VyY2VUeXBlID09IG8ubV9tYXNrU291cmNlVHlwZQorICAgICAgICAgICAgJiYgbV9zaXpl
TGVuZ3RoID09IG8ubV9zaXplTGVuZ3RoICYmIG1fdHlwZSA9PSBvLm1fdHlwZQorICAgICAgICAg
ICAgJiYgKChtX25leHQgJiYgby5tX25leHQpID8gKm1fbmV4dCA9PSAqby5tX25leHQgOiBtX25l
eHQgPT0gby5tX25leHQpOwogfQogCiB2b2lkIEZpbGxMYXllcjo6ZmlsbFVuc2V0UHJvcGVydGll
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggMDQw
YTNmMTI1MjYzMWI4ZmI0YWU5NzFiZTM3Nzc3MGVhNzIyNDEyMC4uYjQ4ZjA3Nzk1OGZhMDA3Zjk4
Nzk4ZjQ2ODA4MzVjMDQ0ODc1NjhmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9GaWxsTGF5ZXIuaApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgTGVuZ3RoU2l6ZSBz
aXplTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9zaXplTGVuZ3RoOyB9CiAgICAgRUZpbGxTaXpl
VHlwZSBzaXplVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGaWxsU2l6ZVR5cGU+
KG1fc2l6ZVR5cGUpOyB9CiAgICAgRmlsbFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEZpbGxT
aXplKHN0YXRpY19jYXN0PEVGaWxsU2l6ZVR5cGU+KG1fc2l6ZVR5cGUpLCBtX3NpemVMZW5ndGgp
OyB9CisgICAgRU1hc2tTb3VyY2VUeXBlIG1hc2tTb3VyY2VUeXBlKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8RU1hc2tTb3VyY2VUeXBlPihtX21hc2tTb3VyY2VUeXBlKTsgfQogCiAgICAg
Y29uc3QgRmlsbExheWVyKiBuZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0OyB9CiAgICAgRmls
bExheWVyKiBuZXh0KCkgeyByZXR1cm4gbV9uZXh0OyB9CkBAIC05Niw3ICs5Nyw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzQ29tcG9zaXRlU2V0KCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGVT
ZXQ7IH0KICAgICBib29sIGlzQmxlbmRNb2RlU2V0KCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZE1v
ZGVTZXQ7IH0KICAgICBib29sIGlzU2l6ZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZVR5cGUg
IT0gU2l6ZU5vbmU7IH0KLSAgICAKKyAgICBib29sIGlzTWFza1NvdXJjZVR5cGVTZXQoKSBjb25z
dCB7IHJldHVybiBtX21hc2tTb3VyY2VUeXBlU2V0OyB9CisKICAgICB2b2lkIHNldEltYWdlKFBh
c3NSZWZQdHI8U3R5bGVJbWFnZT4gaSkgeyBtX2ltYWdlID0gaTsgbV9pbWFnZVNldCA9IHRydWU7
IH0KICAgICB2b2lkIHNldFhQb3NpdGlvbihMZW5ndGggbCkgeyBtX3hQb3NpdGlvbiA9IGw7IG1f
eFBvc1NldCA9IHRydWU7IH0KICAgICB2b2lkIHNldFlQb3NpdGlvbihMZW5ndGggbCkgeyBtX3lQ
b3NpdGlvbiA9IGw7IG1feVBvc1NldCA9IHRydWU7IH0KQEAgLTExMiw3ICsxMTQsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRTaXplVHlwZShFRmlsbFNpemVUeXBlIGIpIHsgbV9zaXplVHlwZSA9
IGI7IH0KICAgICB2b2lkIHNldFNpemVMZW5ndGgoTGVuZ3RoU2l6ZSBsKSB7IG1fc2l6ZUxlbmd0
aCA9IGw7IH0KICAgICB2b2lkIHNldFNpemUoRmlsbFNpemUgZikgeyBtX3NpemVUeXBlID0gZi50
eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0KLSAgICAKKyAgICB2b2lkIHNldE1hc2tTb3Vy
Y2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7IG1fbWFza1NvdXJjZVR5cGUgPSBtOyBtX21hc2tT
b3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQorCiAgICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdl
LmNsZWFyKCk7IG1faW1hZ2VTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJYUG9zaXRpb24o
KQogICAgIHsKQEAgLTEzMyw2ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNvbXBv
c2l0ZSgpIHsgbV9jb21wb3NpdGVTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJCbGVuZE1v
ZGUoKSB7IG1fYmxlbmRNb2RlU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyU2l6ZSgpIHsg
bV9zaXplVHlwZSA9IFNpemVOb25lOyB9CisgICAgdm9pZCBjbGVhck1hc2tTb3VyY2VUeXBlKCkg
eyBtX21hc2tTb3VyY2VUeXBlU2V0ID0gZmFsc2U7IH0KIAogICAgIHZvaWQgc2V0TmV4dChGaWxs
TGF5ZXIqIG4pIHsgaWYgKG1fbmV4dCAhPSBuKSB7IGRlbGV0ZSBtX25leHQ7IG1fbmV4dCA9IG47
IH0gfQogCkBAIC0xODQsNiArMTg4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBMZW5ndGggaW5p
dGlhbEZpbGxYUG9zaXRpb24oRUZpbGxMYXllclR5cGUpIHsgcmV0dXJuIExlbmd0aCgwLjAsIFBl
cmNlbnQpOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsRmlsbFlQb3NpdGlvbihFRmlsbExh
eWVyVHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMCwgUGVyY2VudCk7IH0KICAgICBzdGF0aWMgU3R5
bGVJbWFnZSogaW5pdGlhbEZpbGxJbWFnZShFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gMDsgfQor
ICAgIHN0YXRpYyBFTWFza1NvdXJjZVR5cGUgaW5pdGlhbE1hc2tTb3VyY2VUeXBlKEVGaWxsTGF5
ZXJUeXBlKSB7IHJldHVybiBNYXNrQWxwaGE7IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgUmVuZGVyU3R5bGU7CkBAIC0yMDksNyArMjE0LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25l
ZCBtX2NvbXBvc2l0ZSA6IDQ7IC8vIENvbXBvc2l0ZU9wZXJhdG9yCiAgICAgdW5zaWduZWQgbV9z
aXplVHlwZSA6IDI7IC8vIEVGaWxsU2l6ZVR5cGUKICAgICB1bnNpZ25lZCBtX2JsZW5kTW9kZSA6
IDU7IC8vIEJsZW5kTW9kZQotICAgIAorICAgIHVuc2lnbmVkIG1fbWFza1NvdXJjZVR5cGUgOiAx
OyAvLyBFTWFza1NvdXJjZVR5cGUKKwogICAgIHVuc2lnbmVkIG1faW1hZ2VTZXQgOiAxOwogICAg
IHVuc2lnbmVkIG1fYXR0YWNobWVudFNldCA6IDE7CiAgICAgdW5zaWduZWQgbV9jbGlwU2V0IDog
MTsKQEAgLTIyMyw3ICsyMjksOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYmFja2dyb3Vu
ZFlPcmlnaW4gOiAyOyAvLyBCYWNrZ3JvdW5kRWRnZU9yaWdpbgogICAgIHVuc2lnbmVkIG1fY29t
cG9zaXRlU2V0IDogMTsKICAgICB1bnNpZ25lZCBtX2JsZW5kTW9kZVNldCA6IDE7Ci0gICAgCisg
ICAgdW5zaWduZWQgbV9tYXNrU291cmNlVHlwZVNldCA6IDE7CisKICAgICB1bnNpZ25lZCBtX3R5
cGUgOiAxOyAvLyBFRmlsbExheWVyVHlwZQogCiAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NsaXBN
YXggOiAyOyAvLyBFRmlsbEJveCwgbWF4aW11bSBtX2NsaXAgdmFsdWUgZnJvbSB0aGlzIHRvIGJv
dHRvbSBsYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCA4MzA2MTJlNTdlODM2ZTgyYjcxODliNjlkYzkzZGQw
MDkzNmYyYjQ5Li5hNWE3OWQ2ZThlOWNhNDVhNzdmNzU1MGU0NTMxYzA3ZTIxZjlkZGMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuaApAQCAtMTYzLDYgKzE2Myw5IEBAIGVudW0gRUZpbGxTaXplVHlwZSB7IENvbnRhaW4s
IENvdmVyLCBTaXplTGVuZ3RoLCBTaXplTm9uZSB9OwogLy8gQ1NTMyBCYWNrZ3JvdW5kIFBvc2l0
aW9uCiBlbnVtIEJhY2tncm91bmRFZGdlT3JpZ2luIHsgVG9wRWRnZSwgUmlnaHRFZGdlLCBCb3R0
b21FZGdlLCBMZWZ0RWRnZSB9OwogCisvLyBDU1MzIE1hc2sgU291cmNlIFR5cGVzCitlbnVtIEVN
YXNrU291cmNlVHlwZSB7IE1hc2tBbHBoYSwgTWFza0x1bWluYW5jZSB9OworCiAvLyBDU1MzIE1h
cnF1ZWUgUHJvcGVydGllcwogCiBlbnVtIEVNYXJxdWVlQmVoYXZpb3IgeyBNTk9ORSwgTVNDUk9M
TCwgTVNMSURFLCBNQUxURVJOQVRFIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODBkN2U1YjExNGNjZGZhZGM2NDdmYWM5
OTRhNWY0ZTM5YzdmMmMxYS4uMzNiMzEyNWM0YWI1OWJmM2RjOTIzYWVlZWI3MzkzNmFjOWIzYWQ5
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTA4LTEyICBBbmRyZWkgUGFydnUgIDxwYXJ2
dUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBNYXNraW5nXSBBZGQgLXdlYmtpdC1tYXNrLXNv
dXJjZS10eXBlIHByb3BlcnR5LCB3aXRoIGF1dG8sIGFscGhhIGFuZCBsdW1pbmFuY2UgdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk2MTQK
KworICAgICAgICBBZGRlZCB0ZXN0cyBmb3IgdGhlIHBhcnNpbmcgb2YgdGhlIC13ZWJraXQtbWFz
ay1zb3VyY2UtdHlwZSBwcm9wZXJ0eQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1zb3VyY2UtdHlwZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5nLW1hc2stc291cmNl
LXR5cGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay5o
dG1sOgorCiAyMDEzLTA4LTA4ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIxMzkyODIpOiBPbGQgY2FyZXQgc29tZXRpbWVzIGdldHMgInN0
dWNrIiAobm90IHJlcGFpbnRlZCkgaW4gY29udGVudGVkaXRhYmxlIGVsZW1lbnRzLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLWV4cGVjdGVkLnR4dAppbmRl
eCA5ZTk0NzZmZTIwNDM0YjJhYjZjY2JhZDIzMGFkZjVlMzI1ZDc2NzUyLi45OGMwZmQ4NjQ0Nzdk
NmJiMTRkOWExMDE1YjQwNzVmNDFmMzRkN2RmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L21hc2tpbmcvcGFyc2luZy1tYXNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21hc2tpbmcvcGFyc2luZy1tYXNrLWV4cGVjdGVkLnR4dApAQCAtMzksNiArMzksMTMgQEAgUEFT
UyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2stcG9zaXRpb24iLCAibGVmdCAxMHB4IGNlbnRlciIp
IGlzICJsZWZ0IDEwcHggdG9wIDUKIFBBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLXBvc2l0
aW9uIiwgImNlbnRlciB0b3AgMjBweCIpIGlzICJsZWZ0IDUwJSB0b3AgMjBweCIKIFBBU1MgaW5u
ZXJTdHlsZSgiLXdlYmtpdC1tYXNrLXBvc2l0aW9uIiwgImNlbnRlciBsZWZ0IDMwcHgiKSBpcyAi
bGVmdCAzMHB4IHRvcCA1MCUiCiBQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzay1wb3NpdGlv
biIsICJsZWZ0IDIwJSB0b3AiKSBpcyAibGVmdCAyMCUgdG9wIDAlIgorUEFTUyBpbm5lclN0eWxl
KCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAiYWxwaGEiKSBpcyAiYWxwaGEiCitQQVNTIGlu
bmVyU3R5bGUoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIsICJsdW1pbmFuY2UiKSBpcyAibHVt
aW5hbmNlIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAiYXV0
byIpIGlzICJhdXRvIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LW1hc2stc291cmNlLXR5
cGUiLCAiYWxwaGEiKSBpcyAiYWxwaGEiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFz
ay1zb3VyY2UtdHlwZSIsICJhdXRvIikgaXMgImFscGhhIgorUEFTUyBjb21wdXRlZFN0eWxlKCIt
d2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAibHVtaW5hbmNlIikgaXMgImx1bWluYW5jZSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgIiIpIGlzICJhbHBo
YSIKIFBBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrIiwgInJlcGVhdC14IikgaXMgInJlcGVh
dC14IgogUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2siLCAicmVwZWF0LXkiKSBpcyAicmVw
ZWF0LXkiCiBQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzayIsICJyZXBlYXQiKSBpcyAicmVw
ZWF0IgpAQCAtMTA5LDYgKzExNiwxMCBAQCBQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzayIs
ICJub25lIGNlbnRlciBjZW50ZXIgMjBweCAvIGF1dG8gcmVwZWF0LXggc2Nyb2xsCiBQQVNTIGlu
bmVyU3R5bGUoIi13ZWJraXQtbWFzayIsICJub25lIHRvcCAyMHB4IHJpZ2h0IDMwcHggY2VudGVy
IC8gYXV0byByZXBlYXQteCBzY3JvbGwgYm9yZGVyLWJveCBib3JkZXItYm94IikgaXMgbnVsbAog
UEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2siLCAibm9uZSB0b3AgMjBweCB0b3AgMzBweCAv
IGF1dG8gcmVwZWF0LXggc2Nyb2xsIGJvcmRlci1ib3ggYm9yZGVyLWJveCIpIGlzIG51bGwKIFBB
U1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrIiwgIm5vbmUgdG9wIDIwcHggYm90dG9tIC8gYXV0
byByZXBlYXQteCBzY3JvbGwgYm9yZGVyLWJveCBib3JkZXItYm94IikgaXMgbnVsbAorUEFTUyBp
bm5lclN0eWxlKCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAicnViYmlzaCIpIGlzIG51bGwK
K1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgIiIpIGlzIG51bGwK
K1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgImNlbnRlciIpIGlz
IG51bGwKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgInJlcGVh
dCIpIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1z
b3VyY2UtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2lu
Zy1tYXNrLXNvdXJjZS10eXBlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTQwZjVmZThhY2Fh
YmRjZGM5NWI5OGMwNjk3ZTc3MmNiMDllMGY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1zb3VyY2UtdHlwZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw4IEBACitQQVNTIHNldFByb3BlcnR5KCJhbHBoYSwgYWxwaGEsIGFscGhhLCBhbHBo
YSIpIGlzICJhbHBoYSwgYWxwaGEsIGFscGhhLCBhbHBoYSIKK1BBU1Mgc2V0UHJvcGVydHkoImx1
bWluYW5jZSwgYWxwaGEiKSBpcyAibHVtaW5hbmNlLCBhbHBoYSwgYWxwaGEsIGFscGhhIgorUEFT
UyBzZXRQcm9wZXJ0eSgibHVtaW5hbmNlLCBsdW1pbmFuY2UsIGx1bWluYW5jZSwgbHVtaW5hbmNl
IikgaXMgImx1bWluYW5jZSwgbHVtaW5hbmNlLCBsdW1pbmFuY2UsIGx1bWluYW5jZSIKK1BBU1Mg
c2V0UHJvcGVydHkoImF1dG8sIGFscGhhLCBsdW1pbmFuY2UsIGx1bWluYW5jZSIpIGlzICJhbHBo
YSwgYWxwaGEsIGx1bWluYW5jZSwgbHVtaW5hbmNlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWFza2luZy9wYXJzaW5nLW1hc2stc291cmNlLXR5cGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWFza2luZy9wYXJzaW5nLW1hc2stc291cmNlLXR5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWRkMzNi
Njk3M2EwMjAzN2NiYzBmMmYzZWI1MTc5ZGIxMjU5ZjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1zb3VyY2UtdHlwZS5odG1sCkBAIC0w
LDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPHN0eWxlPgorICAgICAg
ICAqIHsgZm9udC1zaXplOiAxNnB4OyB9CisgICAgICAgIGRpdiB7IGZvbnQtc2l6ZTogOHB4OyB9
CisgICAgPC9zdHlsZT4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgICAgICBmdW5jdGlvbiBzZXRQcm9wZXJ0eSh2YWx1ZSkgeworICAgICAgICAgICAgICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgICAgICAgICAgZGl2LnN0eWxl
LnNldFByb3BlcnR5KCItd2Via2l0LW1hc2staW1hZ2UiLCAibm9uZSwgbm9uZSwgbm9uZSwgbm9u
ZSIpOworICAgICAgICAgICAgICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eSgiLXdlYmtpdC1tYXNr
LXNvdXJjZS10eXBlIiwgdmFsdWUpOworCisgICAgICAgICAgICAgICAgdmFyIGNvbXB1dGVkVmFs
dWUgPSBnZXRDb21wdXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZSgiLXdlYmtpdC1tYXNr
LXNvdXJjZS10eXBlIik7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChkaXYpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkVmFsdWU7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QodmFsdWUsIGV4cGVjdGVkKSB7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzZXRQcm9wZXJ0eSgiJyArIHZh
bHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXN0
KCJhbHBoYSwgYWxwaGEsIGFscGhhLCBhbHBoYSIsICJhbHBoYSwgYWxwaGEsIGFscGhhLCBhbHBo
YSIpOworICAgICAgICAgICAgdGVzdCgibHVtaW5hbmNlLCBhbHBoYSIsICJsdW1pbmFuY2UsIGFs
cGhhLCBhbHBoYSwgYWxwaGEiKTsKKyAgICAgICAgICAgIHRlc3QoImx1bWluYW5jZSwgbHVtaW5h
bmNlLCBsdW1pbmFuY2UsIGx1bWluYW5jZSIsICJsdW1pbmFuY2UsIGx1bWluYW5jZSwgbHVtaW5h
bmNlLCBsdW1pbmFuY2UiKTsKKyAgICAgICAgICAgIHRlc3QoImF1dG8sIGFscGhhLCBsdW1pbmFu
Y2UsIGx1bWluYW5jZSIsICJhbHBoYSwgYWxwaGEsIGx1bWluYW5jZSwgbHVtaW5hbmNlIik7Cisg
ICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay5odG1sCmluZGV4IDYwZjUzZjM3Mjk3MjRmOTNi
MWEwZjdjMDEwODA2Y2YwNTljY2U4MDkuLjQzMGU5MDE5MjFhODJiMjAwODdkNWMwYTg0M2ViMzQz
NzczNjNjZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLW1h
c2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLmh0bWwK
QEAgLTgzLDYgKzgzLDE1IEBAIHRlc3RJbm5lcigiLXdlYmtpdC1tYXNrLXBvc2l0aW9uIiwgImNl
bnRlciB0b3AgMjBweCIsICJsZWZ0IDUwJSB0b3AgMjBweCIpOwogdGVzdElubmVyKCItd2Via2l0
LW1hc2stcG9zaXRpb24iLCAiY2VudGVyIGxlZnQgMzBweCIsICJsZWZ0IDMwcHggdG9wIDUwJSIp
OwogdGVzdElubmVyKCItd2Via2l0LW1hc2stcG9zaXRpb24iLCAibGVmdCAyMCUgdG9wIiwgImxl
ZnQgMjAlIHRvcCAwJSIpOwogCisvLyB0ZXN0IG1hc2stc291cmNlLXR5cGUKK3Rlc3RJbm5lcigi
LXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgImFscGhhIiwgImFscGhhIik7Cit0ZXN0SW5uZXIo
Ii13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIsICJsdW1pbmFuY2UiLCAibHVtaW5hbmNlIik7Cit0
ZXN0SW5uZXIoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIsICJhdXRvIiwgImF1dG8iKTsKK3Rl
c3RDb21wdXRlZCgiLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlIiwgImFscGhhIiwgImFscGhhIik7
Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIsICJhdXRvIiwgImFscGhh
Iik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIsICJsdW1pbmFuY2Ui
LCAibHVtaW5hbmNlIik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1zb3VyY2UtdHlwZSIs
ICIiLCAiYWxwaGEiKTsKKwogLy8gdGVzdCBtYXNrLXJlcGVhdAogdGVzdElubmVyKCItd2Via2l0
LW1hc2siLCAicmVwZWF0LXgiLCAicmVwZWF0LXgiKTsKIHRlc3RJbm5lcigiLXdlYmtpdC1tYXNr
IiwgInJlcGVhdC15IiwgInJlcGVhdC15Iik7CkBAIC0xNjYsNiArMTc1LDEwIEBAIG5lZ2F0aXZl
VGVzdCgiLXdlYmtpdC1tYXNrIiwgIm5vbmUgY2VudGVyIGNlbnRlciAyMHB4IC8gYXV0byByZXBl
YXQteCBzY3JvbGwgYm9yCiBuZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzayIsICJub25lIHRvcCAy
MHB4IHJpZ2h0IDMwcHggY2VudGVyIC8gYXV0byByZXBlYXQteCBzY3JvbGwgYm9yZGVyLWJveCBi
b3JkZXItYm94Iik7CiBuZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzayIsICJub25lIHRvcCAyMHB4
IHRvcCAzMHB4IC8gYXV0byByZXBlYXQteCBzY3JvbGwgYm9yZGVyLWJveCBib3JkZXItYm94Iik7
CiBuZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzayIsICJub25lIHRvcCAyMHB4IGJvdHRvbSAvIGF1
dG8gcmVwZWF0LXggc2Nyb2xsIGJvcmRlci1ib3ggYm9yZGVyLWJveCIpOworbmVnYXRpdmVUZXN0
KCItd2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAicnViYmlzaCIpOworbmVnYXRpdmVUZXN0KCIt
d2Via2l0LW1hc2stc291cmNlLXR5cGUiLCAiIik7CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFz
ay1zb3VyY2UtdHlwZSIsICJjZW50ZXIiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1tYXNrLXNv
dXJjZS10eXBlIiwgInJlcGVhdCIpOwogCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>