<?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>159765</bug_id>
          
          <creation_ts>2016-07-14 08:09:19 -0700</creation_ts>
          <short_desc>REGRESSION(r202975): --minimal build is broken</short_desc>
          <delta_ts>2016-07-18 11:48:03 -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>New Bugs</component>
          <version>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159461</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>bburg</cc>
    
    <cc>bshafiei</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1210986</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-14 08:09:19 -0700</bug_when>
    <thetext>DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:125:103: error: no matching function for call to &apos;ArrayLengthHelperFunction(JSC::JSGlobalObject::GlobalPropertyInfo [0])&apos;
In file included from ../../Source/WTF/wtf/FastMalloc.h:26:0,
                 from ../../Source/WebCore/config.h:75,
                 from DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:36:
../../Source/WTF/wtf/StdLibExtras.h:172:42: note: candidate: template&lt;class T, long unsigned int Size&gt; char (&amp; WTF::ArrayLengthHelperFunction(T (&amp;)[Size]))[Size]
../../Source/WTF/wtf/StdLibExtras.h:172:42: note:   template argument deduction/substitution failed:
../../Source/WTF/wtf/StdLibExtras.h:175:29: note: candidate: template&lt;class T&gt; char (&amp; WTF::ArrayLengthHelperFunction(T (&amp;)[0]))[0]
../../Source/WTF/wtf/StdLibExtras.h:175:29: note:   template argument deduction/substitution failed:
DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:125:103: note:   template argument &apos;-1&apos; does not match &apos;#&apos;integer_cst&apos; not supported by dump_decl#&lt;declaration error&gt;&apos;


preprocessed DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:
-------------------------------------------------------------------
....
    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
    };
    globalObject.addStaticGlobals(staticGlobals, sizeof(::WTF::ArrayLengthHelperFunction(staticGlobals)));
....

It seems the new script doesn&apos;t handle empty staticGlobals[] properly.
I don&apos;t know anything about this code path and don&apos;t plan to fix it
myself, I just reported to let you know this build break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210991</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-14 08:16:45 -0700</bug_when>
    <thetext>Thanks I&apos;ll check that today or tomorrow.

(In reply to comment #0)
&gt; DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:125:103: error: no
&gt; matching function for call to
&gt; &apos;ArrayLengthHelperFunction(JSC::JSGlobalObject::GlobalPropertyInfo [0])&apos;
&gt; In file included from ../../Source/WTF/wtf/FastMalloc.h:26:0,
&gt;                  from ../../Source/WebCore/config.h:75,
&gt;                  from
&gt; DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:36:
&gt; ../../Source/WTF/wtf/StdLibExtras.h:172:42: note: candidate: template&lt;class
&gt; T, long unsigned int Size&gt; char (&amp; WTF::ArrayLengthHelperFunction(T
&gt; (&amp;)[Size]))[Size]
&gt; ../../Source/WTF/wtf/StdLibExtras.h:172:42: note:   template argument
&gt; deduction/substitution failed:
&gt; ../../Source/WTF/wtf/StdLibExtras.h:175:29: note: candidate: template&lt;class
&gt; T&gt; char (&amp; WTF::ArrayLengthHelperFunction(T (&amp;)[0]))[0]
&gt; ../../Source/WTF/wtf/StdLibExtras.h:175:29: note:   template argument
&gt; deduction/substitution failed:
&gt; DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:125:103: note:  
&gt; template argument &apos;-1&apos; does not match &apos;#&apos;integer_cst&apos; not supported by
&gt; dump_decl#&lt;declaration error&gt;&apos;
&gt; 
&gt; 
&gt; preprocessed DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:
&gt; -------------------------------------------------------------------
&gt; ....
&gt;     JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
&gt;     };
&gt;     globalObject.addStaticGlobals(staticGlobals,
&gt; sizeof(::WTF::ArrayLengthHelperFunction(staticGlobals)));
&gt; ....
&gt; 
&gt; It seems the new script doesn&apos;t handle empty staticGlobals[] properly.
&gt; I don&apos;t know anything about this code path and don&apos;t plan to fix it
&gt; myself, I just reported to let you know this build break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210992</commentid>
    <comment_count>2</comment_count>
      <attachid>283643</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-14 08:23:06 -0700</bug_when>
    <thetext>Created attachment 283643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210993</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-14 08:24:23 -0700</bug_when>
    <thetext>This patch modifies the JS builtins code generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-builtins-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211012</commentid>
    <comment_count>4</comment_count>
      <attachid>283643</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-14 09:26:49 -0700</bug_when>
    <thetext>Comment on attachment 283643
Patch

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

&gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:136
&gt; -        lines.append(&quot;    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));&quot;)
&gt; +        lines.append(&quot;    if (sizeof(staticGlobals))&quot;)
&gt; +        lines.append(&quot;        globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));&quot;)

It doesn&apos;t fix the build, error is error inside if too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211046</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-14 10:44:42 -0700</bug_when>
    <thetext>Let&apos;s backup with sizeof then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211047</commentid>
    <comment_count>6</comment_count>
      <attachid>283660</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-14 10:46:46 -0700</bug_when>
    <thetext>Created attachment 283660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211114</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 13:31:40 -0700</bug_when>
    <thetext>There&apos;s a comment in the definition of WTF_ARRAY_LENGTH saying it supports 0-length arrays.  Why doesn&apos;t it work in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211122</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-14 13:49:23 -0700</bug_when>
    <thetext>Didn&apos;t have the time to investigate further. I added a fixme in the generator to do follow on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211956</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-18 05:07:24 -0700</bug_when>
    <thetext>just a note, I got the same error with clang 3.8: (without the fix)

DerivedSources/WebCore/WebCoreJSBuiltinInternals.cpp:125:50: error: no matching function for call to &apos;ArrayLengthHelperFunction&apos;
    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/WTF/wtf/StdLibExtras.h:177:40: note: expanded from macro &apos;WTF_ARRAY_LENGTH&apos;
#define WTF_ARRAY_LENGTH(array) sizeof(::WTF::ArrayLengthHelperFunction(array))
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/WTF/wtf/StdLibExtras.h:172:42: note: candidate template ignored: substitution failure [with T = JSC::JSGlobalObject::GlobalPropertyInfo, Size = 0]: zero-length arrays are not permitted in C++
template&lt;typename T, size_t Size&gt; char (&amp;ArrayLengthHelperFunction(T (&amp;)[Size]))[Size];
                                         ^                                       ~~~~
../../Source/WTF/wtf/StdLibExtras.h:175:29: note: candidate template ignored: substitution failure [with T = JSC::JSGlobalObject::GlobalPropertyInfo]: zero-length arrays are not permitted in C++
template&lt;typename T&gt; char (&amp;ArrayLengthHelperFunction(T (&amp;)[0]))[0];
                            ^                              ~</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211957</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-18 05:11:27 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; There&apos;s a comment in the definition of WTF_ARRAY_LENGTH saying it supports
&gt; 0-length arrays.  Why doesn&apos;t it work in this case?

It is a 4 years old comment - https://trac.webkit.org/changeset/114042/trunk/Source/WTF/wtf/StdLibExtras.h

Maybe GCC/Clang change a little bit since then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211984</commentid>
    <comment_count>11</comment_count>
      <attachid>283660</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-18 09:30:45 -0700</bug_when>
    <thetext>Comment on attachment 283660
Patch

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

&gt; Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:403
&gt;      JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {

Why do we generate such code at all? Seems to me we should not generate empty arrays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211986</commentid>
    <comment_count>12</comment_count>
      <attachid>283660</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-18 09:32:21 -0700</bug_when>
    <thetext>Comment on attachment 283660
Patch

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

&gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:135
&gt; +        # FIXME: We should use WTF_ARRAY_LENGTH here but it fails on zero-length arrays.

Would the below work?

// Macro that returns a compile time constant with the length of an array, but gives an error if passed a non-array.
template&lt;typename T, size_t Size&gt; char (&amp;ArrayLengthHelperFunction(T (&amp;)[Size]))[Size];
// GCC needs some help to deduce a 0 length array.
-#if COMPILER(GCC_OR_CLANG)
+#if COMPILER(GCC)
template&lt;typename T&gt; char (&amp;ArrayLengthHelperFunction(T (&amp;)[0]))[0];
#endif
#define WTF_ARRAY_LENGTH(array) sizeof(::WTF::ArrayLengthHelperFunction(array))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211987</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-18 09:32:55 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 283660 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283660&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:403
&gt; &gt;      JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
&gt; 
&gt; Why do we generate such code at all? Seems to me we should not generate
&gt; empty arrays.

The issue is that arrays are not empty except they have entries that are #ifdefed.
In that case, the generator cannot know beforehand whether array is empty or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211989</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-18 09:34:10 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; Comment on attachment 283660 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=283660&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:403
&gt; &gt; &gt;      JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
&gt; &gt; 
&gt; &gt; Why do we generate such code at all? Seems to me we should not generate
&gt; &gt; empty arrays.
&gt; 
&gt; The issue is that arrays are not empty except they have entries that are
&gt; #ifdefed.
&gt; In that case, the generator cannot know beforehand whether array is empty or
&gt; not.

It can if you add the right #ifdefs outside the array declaration.
e.g.
#if ENABLE(...) || ENABLE(...)
//declare array
// add globals
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211990</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-18 09:37:53 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Comment on attachment 283660 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=283660&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:403
&gt; &gt; &gt; &gt;      JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
&gt; &gt; &gt; 
&gt; &gt; &gt; Why do we generate such code at all? Seems to me we should not generate
&gt; &gt; &gt; empty arrays.
&gt; &gt; 
&gt; &gt; The issue is that arrays are not empty except they have entries that are
&gt; &gt; #ifdefed.
&gt; &gt; In that case, the generator cannot know beforehand whether array is empty or
&gt; &gt; not.
&gt; 
&gt; It can if you add the right #ifdefs outside the array declaration.
&gt; e.g.
&gt; #if ENABLE(...) || ENABLE(...)
&gt; //declare array
&gt; // add globals
&gt; #endif

JSGlobalObject::addStaticGlobals() is not inlined and therefore we generate a function call for no reason in such cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211991</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-18 09:39:15 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Comment on attachment 283660 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=283660&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:403
&gt; &gt; &gt; &gt;      JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
&gt; &gt; &gt; 
&gt; &gt; &gt; Why do we generate such code at all? Seems to me we should not generate
&gt; &gt; &gt; empty arrays.
&gt; &gt; 
&gt; &gt; The issue is that arrays are not empty except they have entries that are
&gt; &gt; #ifdefed.
&gt; &gt; In that case, the generator cannot know beforehand whether array is empty or
&gt; &gt; not.
&gt; 
&gt; It can if you add the right #ifdefs outside the array declaration.
&gt; e.g.
&gt; #if ENABLE(...) || ENABLE(...)
&gt; //declare array
&gt; // add globals
&gt; #endif

When shipping the fix, we thought that it was not worth the effort to do that.
Maybe we should...
I will prepare a patch accordingly.

&gt; template&lt;typename T, size_t Size&gt; char (&amp;ArrayLengthHelperFunction(T
&gt; (&amp;)[Size]))[Size];
&gt; // GCC needs some help to deduce a 0 length array.
&gt; -#if COMPILER(GCC_OR_CLANG)
&gt; +#if COMPILER(GCC)
&gt; template&lt;typename T&gt; char (&amp;ArrayLengthHelperFunction(T (&amp;)[0]))[0];
&gt; #endif
&gt; #define WTF_ARRAY_LENGTH(array)
&gt; sizeof(::WTF::ArrayLengthHelperFunction(array))

I think I tried and I don&apos;t think it was working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211994</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-18 09:53:40 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 283660 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283660&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:135
&gt; &gt; +        # FIXME: We should use WTF_ARRAY_LENGTH here but it fails on zero-length arrays.
&gt; 
&gt; Would the below work?
&gt; 
&gt; // Macro that returns a compile time constant with the length of an array,
&gt; but gives an error if passed a non-array.
&gt; template&lt;typename T, size_t Size&gt; char (&amp;ArrayLengthHelperFunction(T
&gt; (&amp;)[Size]))[Size];
&gt; // GCC needs some help to deduce a 0 length array.
&gt; -#if COMPILER(GCC_OR_CLANG)
&gt; +#if COMPILER(GCC)
&gt; template&lt;typename T&gt; char (&amp;ArrayLengthHelperFunction(T (&amp;)[0]))[0];
&gt; #endif
&gt; #define WTF_ARRAY_LENGTH(array)
&gt; sizeof(::WTF::ArrayLengthHelperFunction(array))

No, zero sized arrays are broken with Clang and GCC too
with and without ifdef-ed workaround.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212003</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-18 10:10:52 -0700</bug_when>
    <thetext>Given that, the broken workaround should be removed. I agree that fixing WTF_ARRAY_LENGTH is not the best fix for this bug, as we&apos;d have an unneeded function call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212007</commentid>
    <comment_count>19</comment_count>
      <attachid>283914</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-18 10:24:52 -0700</bug_when>
    <thetext>Created attachment 283914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212009</commentid>
    <comment_count>20</comment_count>
      <attachid>283914</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-18 10:30:34 -0700</bug_when>
    <thetext>Comment on attachment 283914
Patch

r=me as long as the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212010</commentid>
    <comment_count>21</comment_count>
      <attachid>283914</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-07-18 10:31:56 -0700</bug_when>
    <thetext>Comment on attachment 283914
Patch

LGTM too. A test case for a builtin with multiple conditionals would be good to add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212011</commentid>
    <comment_count>22</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-18 10:36:38 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Comment on attachment 283914 [details]
&gt; Patch
&gt; 
&gt; LGTM too. A test case for a builtin with multiple conditionals would be good
&gt; to add.

Yes, we should extend the builtin generator test script to take multiple files at once and concatenate the results, or just output the wrapper files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212021</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-07-18 11:09:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/27405849&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212033</commentid>
    <comment_count>24</comment_count>
      <attachid>283914</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-18 11:47:56 -0700</bug_when>
    <thetext>Comment on attachment 283914
Patch

Clearing flags on attachment: 283914

Committed r203353: &lt;http://trac.webkit.org/changeset/203353&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212034</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-18 11:48:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283643</attachid>
            <date>2016-07-14 08:23:06 -0700</date>
            <delta_ts>2016-07-14 10:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159765-20160714172216.patch</filename>
            <type>text/plain</type>
            <size>14390</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZWM5M2I2MTEyM2IyNzk4NWI2MjNhOTVhOGFhY2JkN2I5NzUwNGIzLi41NmNhYjQ5ZjdkYTcyYmVm
YWViYWEyNTM2MjhmYzlmODA5ZjhjMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMCBAQAogMjAxNi0wNy0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKKyAgICAgICAgUkVHUkVTU0lPTihyMjAyOTc1KTogLS1taW5pbWFsIGJ1aWxkIGlzIGJyb2tl
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2ltcGxlbWVu
dGF0aW9uLnB5OgorICAgICAgICAoQnVpbHRpbnNJbnRlcm5hbHNXcmFwcGVySW1wbGVtZW50YXRp
b25HZW5lcmF0b3IuZ2VuZXJhdGVfbWV0aG9kcyk6IEFkZGluZyBhIHNpemVvZigpIGNoZWNrIGJl
Zm9yZSBjYWxsaW5nIGFkZFN0YXRpY0dsb2JhbHMuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJh
dGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0
aW4tU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAg
ICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5n
VGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisKKzIwMTYtMDctMTQgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCiAgICAgICAgIERPTSB2YWx1ZSBpdGVyYWJsZSBpbnRlcmZhY2Vz
IHNob3VsZCB1c2UgQXJyYXkgcHJvdG90eXBlIG1ldGhvZHMKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTI5NgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9pbnRlcm5h
bHNfd3JhcHBlcl9pbXBsZW1lbnRhdGlvbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2ltcGxlbWVu
dGF0aW9uLnB5CmluZGV4IDVjZTYxMjg0YTkyMWUzOTIxMmRhMmJlYjY4OWVkMTg0ZGJkYTBlMTMu
LmU1NDE5ZWM2NjczZTI5ZGY4YmZjMGZiMmEzZGFhZTI3YzQ5NTMzM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2lu
dGVybmFsc193cmFwcGVyX2ltcGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVy
X2ltcGxlbWVudGF0aW9uLnB5CkBAIC0xMzIsNyArMTMyLDggQEAgY2xhc3MgQnVpbHRpbnNJbnRl
cm5hbHNXcmFwcGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IoQnVpbHRpbnNHZW5lcmF0b3IpOgog
ICAgICAgICBmb3Igb2JqZWN0IGluIHNlbGYuaW50ZXJuYWxzOgogICAgICAgICAgICAgbGluZXMu
YXBwZW5kKEJ1aWx0aW5zR2VuZXJhdG9yLndyYXBfd2l0aF9ndWFyZChvYmplY3QuYW5ub3RhdGlv
bnMuZ2V0KCdjb25kaXRpb25hbCcpLCBzZWxmLnByb3BlcnR5X21hY3JvKG9iamVjdCkpKQogICAg
ICAgICBsaW5lcy5hcHBlbmQoIiAgICB9OyIpCi0gICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIGds
b2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5H
VEgoc3RhdGljR2xvYmFscykpOyIpCisgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIGlmIChzaXpl
b2Yoc3RhdGljR2xvYmFscykpIikKKyAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgICAgIGdsb2Jh
bE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgo
c3RhdGljR2xvYmFscykpOyIpCiAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIFVOVVNFRF9QQVJB
TShjbGllbnREYXRhKTsiKQogICAgICAgICBsaW5lcy5hcHBlbmQoIn0iKQogICAgICAgICByZXR1
cm4gJ1xuJy5qb2luKGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25h
bEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFy
ZC1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggMmJkMmRjOWJlMzBjNTI4ZGJkMjdjOTQxMzUyMGVk
OWJmZWVhMDg1OC4uNjg2NjM4ZDBhZTRkMmFmYzA3ZGQwOGZmZmZiY2I1YjVlMWMyYWE0NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3Vs
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0
CkBAIC0xOTksNiArMTk5LDcgQEAgV0VCQ09SRV9GT1JFQUNIX0FSQklUUkFSWUNPTkRJVElPTkFM
R1VBUkRfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICMjIyBCZWdpbiBG
aWxlOiBXZWJDb3JlSlNCdWlsdGlucy5oCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9u
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNjAsNiArMjYxLDcgQEAgcHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNC
dWlsdGlucy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5Myw2ICsy
OTUsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0aW5JbnRlcm5h
bHMuaAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQ2LDYgKzM0OSw3IEBA
IHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbkludGVybmFscy5jcHAK
IC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5OCw3ICs0MDIsOCBAQCB2b2lk
IEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0aWFsaXplKEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCiAgICAgSlNWTUNsaWVudERhdGEmIGNsaWVudERhdGEgPSAqc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEqPihtX3ZtLmNsaWVudERhdGEpOwogICAgIEpTRE9NR2xvYmFs
T2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0gewogICAgIH07Ci0g
ICAgZ2xvYmFsT2JqZWN0LmFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RGX0FSUkFZ
X0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CisgICAgaWYgKHNpemVvZihzdGF0aWNHbG9iYWxzKSkK
KyAgICAgICAgZ2xvYmFsT2JqZWN0LmFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RG
X0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiAgICAgVU5VU0VEX1BBUkFNKGNsaWVudERh
dGEpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJl
c3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL1dlYkNvcmUtR3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDA1ZmIy
MWNiNDBlNzY4ZDdkMWQ1YTY5MTFiNDU3NmQwNTcyZmU3YzQuLmZlMzA1YjBlNzRlMzQxODEzZDZm
MmU1MWI4YTY5NWFmMThlODFmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEJ1aWx0aW4tU2Vw
YXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVz
dWx0CkBAIC0xOTksNiArMTk5LDcgQEAgV0VCQ09SRV9GT1JFQUNIX0dVQVJERURCVUlMVElOX0JV
SUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjIyMgQmVnaW4gRmlsZTogV2Vi
Q29yZUpTQnVpbHRpbnMuaAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYw
LDYgKzI2MSw3IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbnMu
Y3BwCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOTMsNiArMjk1LDcgQEAg
cHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmgKIC8q
CiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0Niw2ICszNDksNyBAQCBwcml2YXRl
OgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0aW5JbnRlcm5hbHMuY3BwCiAvKgogICog
Q29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOTgsNyArNDAyLDggQEAgdm9pZCBKU0J1aWx0
aW5JbnRlcm5hbEZ1bmN0aW9uczo6aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0KQogICAgIEpTVk1DbGllbnREYXRhJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpT
Vk1DbGllbnREYXRhKj4obV92bS5jbGllbnREYXRhKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdDo6
R2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKICAgICB9OwotICAgIGdsb2Jh
bE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgo
c3RhdGljR2xvYmFscykpOworICAgIGlmIChzaXplb2Yoc3RhdGljR2xvYmFscykpCisgICAgICAg
IGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9M
RU5HVEgoc3RhdGljR2xvYmFscykpOwogICAgIFVOVVNFRF9QQVJBTShjbGllbnREYXRhKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRlLmpzLXJl
c3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5k
ZXggYTVkM2NkMDMxYjM5MjYxOGQ0MmNhYTFiMjU5NDg2MDYyYzYxZWIyYi4uZjNlNDZkNmE4MjAw
ZjZiNzU2ZjZhM2FmOTcxNGUxMmRmOGJlMjljMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50
ZXJuYWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5h
bEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0yMzEsNiArMjMxLDcgQEAgV0VCQ09SRV9G
T1JFQUNIX0dVQVJERURJTlRFUk5BTEJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElO
X0dFTkVSQVRPUikKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGlucy5oCiAvKgogICog
Q29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOTUsNiArMjk2LDcgQEAgcHJpdmF0ZToKICMj
IyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGlucy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKGMp
IDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyOCw2ICszMzAsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6
IFdlYkNvcmVKU0J1aWx0aW5JbnRlcm5hbHMuaAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBD
YW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzg4LDYgKzM5MSw3IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29y
ZUpTQnVpbHRpbkludGVybmFscy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24g
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTQ1Niw3ICs0NjAsOCBAQCB2b2lkIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0
aWFsaXplKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiAjdW5kZWYgREVDTEFSRV9H
TE9CQUxfU1RBVElDCiAjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNfQVBJKQogICAgIH07Ci0gICAg
Z2xvYmFsT2JqZWN0LmFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RGX0FSUkFZX0xF
TkdUSChzdGF0aWNHbG9iYWxzKSk7CisgICAgaWYgKHNpemVvZihzdGF0aWNHbG9iYWxzKSkKKyAg
ICAgICAgZ2xvYmFsT2JqZWN0LmFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RGX0FS
UkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiAgICAgVU5VU0VEX1BBUkFNKGNsaWVudERhdGEp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVz
dWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCAxMDVm
YmE2ZWRjNmJhMzJkMTI5Nzc1MThkMmQ0MTM4M2RjOGIzZDY0Li44ZDcyOGE1NmI1NWQ1YzI3Yzc5
NDEyMDgxOTMyZmQwMzFiNTI1MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4t
U2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5q
cy1yZXN1bHQKQEAgLTE5MCw2ICsxOTAsNyBAQCBXRUJDT1JFX0ZPUkVBQ0hfVU5HVUFSREVEQlVJ
TFRJTl9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogIyMjIEJlZ2luIEZp
bGU6IFdlYkNvcmVKU0J1aWx0aW5zLmgKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24g
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI0NSw2ICsyNDYsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1
aWx0aW5zLmNwcAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjc4LDYgKzI4
MCw3IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbkludGVybmFs
cy5oCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMzEsNiArMzM0LDcgQEAg
cHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmNwcAog
LyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgzLDcgKzM4Nyw4IEBAIHZvaWQg
SlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnM6OmluaXRpYWxpemUoSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCkKICAgICBKU1ZNQ2xpZW50RGF0YSYgY2xpZW50RGF0YSA9ICpzdGF0aWNf
Y2FzdDxKU1ZNQ2xpZW50RGF0YSo+KG1fdm0uY2xpZW50RGF0YSk7CiAgICAgSlNET01HbG9iYWxP
YmplY3Q6Okdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7CiAgICAgfTsKLSAg
ICBnbG9iYWxPYmplY3QuYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlf
TEVOR1RIKHN0YXRpY0dsb2JhbHMpKTsKKyAgICBpZiAoc2l6ZW9mKHN0YXRpY0dsb2JhbHMpKQor
ICAgICAgICBnbG9iYWxPYmplY3QuYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBXVEZf
QVJSQVlfTEVOR1RIKHN0YXRpY0dsb2JhbHMpKTsKICAgICBVTlVTRURfUEFSQU0oY2xpZW50RGF0
YSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1
bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDkxYTliMzg3
YTJhZWM0ODFkZGQ4OGVjNDhkNDJmYTYwMDUxN2FiODguLjc0NDdlOTk2NGI3NTZlZTMzODM4MzE0
ZGZhMGNhZTJiNjg5YzY2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0
ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdApA
QCAtMjgyLDYgKzI4Miw3IEBAIFdFQkNPUkVfRk9SRUFDSF9YTUxDQVNJTkdURVNUX0JVSUxUSU5f
Q09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpT
QnVpbHRpbnMuaAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQ2LDYgKzM0
Nyw3IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbnMuY3BwCiAv
KgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNzksNiArMzgxLDcgQEAgcHJpdmF0
ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmgKIC8qCiAgKiBD
b3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzOSw2ICs0NDIsNyBAQCBwcml2YXRlOgogIyMj
IEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0aW5JbnRlcm5hbHMuY3BwCiAvKgogICogQ29weXJp
Z2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01MDcsNyArNTExLDggQEAgdm9pZCBKU0J1aWx0aW5JbnRl
cm5hbEZ1bmN0aW9uczo6aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQogI3VuZGVmIERFQ0xBUkVfR0xPQkFMX1NUQVRJQwogI2VuZGlmIC8vIEVOQUJMRShTVFJFQU1T
X0FQSSkKICAgICB9OwotICAgIGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0ds
b2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOworICAgIGlmIChzaXplb2Yo
c3RhdGljR2xvYmFscykpCisgICAgICAgIGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0
YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwogICAgIFVOVVNF
RF9QQVJBTShjbGllbnREYXRhKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283660</attachid>
            <date>2016-07-14 10:46:46 -0700</date>
            <delta_ts>2016-07-18 10:24:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159765-20160714194557.patch</filename>
            <type>text/plain</type>
            <size>14542</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZWM5M2I2MTEyM2IyNzk4NWI2MjNhOTVhOGFhY2JkN2I5NzUwNGIzLi5lNjRiYjBmYTFlNjQ1ZGE3
YzcwZWY5Yzk5YzFjMmViMTc3N2NhNzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMSBAQAogMjAxNi0wNy0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKKyAgICAgICAgUkVHUkVTU0lPTihyMjAyOTc1KTogLS1taW5pbWFsIGJ1aWxkIGlzIGJyb2tl
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2ltcGxlbWVu
dGF0aW9uLnB5OgorICAgICAgICAoQnVpbHRpbnNJbnRlcm5hbHNXcmFwcGVySW1wbGVtZW50YXRp
b25HZW5lcmF0b3IuZ2VuZXJhdGVfbWV0aG9kcyk6IFVzaW5nIHNpemVvZigpIHRvIGdldCB0aGUg
YXJyYXkgbGVuZ3RoCisgICAgICAgIGluc3RlYWQgb2YgV1RGX0FSUkFZX0xFTkdUSCBhcyBpdCBk
b2VzIG5vdCBhbHdheXMgY29tcGlsZSB3aXRoIHplcm8gbGVuZ3RoIGFycmF5cy4KKyAgICAgICAg
KiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0
aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3Vs
dDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3Vh
cmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJh
dGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdDoKKworMjAxNi0wNy0xNCAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgRE9NIHZhbHVlIGl0
ZXJhYmxlIGludGVyZmFjZXMgc2hvdWxkIHVzZSBBcnJheSBwcm90b3R5cGUgbWV0aG9kcwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5Mjk2CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5z
X2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfaW50ZXJuYWxz
X3dyYXBwZXJfaW1wbGVtZW50YXRpb24ucHkKaW5kZXggNWNlNjEyODRhOTIxZTM5MjEyZGEyYmVi
Njg5ZWQxODRkYmRhMGUxMy4uNjAzYTM3NDg3MzBlMDc5Yzk3NDU4MjViY2M1M2NmMWQ5YTNkYzdl
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVp
bHRpbnNfZ2VuZXJhdGVfaW50ZXJuYWxzX3dyYXBwZXJfaW1wbGVtZW50YXRpb24ucHkKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVf
aW50ZXJuYWxzX3dyYXBwZXJfaW1wbGVtZW50YXRpb24ucHkKQEAgLTEzMiw3ICsxMzIsOCBAQCBj
bGFzcyBCdWlsdGluc0ludGVybmFsc1dyYXBwZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihCdWls
dGluc0dlbmVyYXRvcik6CiAgICAgICAgIGZvciBvYmplY3QgaW4gc2VsZi5pbnRlcm5hbHM6CiAg
ICAgICAgICAgICBsaW5lcy5hcHBlbmQoQnVpbHRpbnNHZW5lcmF0b3Iud3JhcF93aXRoX2d1YXJk
KG9iamVjdC5hbm5vdGF0aW9ucy5nZXQoJ2NvbmRpdGlvbmFsJyksIHNlbGYucHJvcGVydHlfbWFj
cm8ob2JqZWN0KSkpCiAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIH07IikKLSAgICAgICAgbGlu
ZXMuYXBwZW5kKCIgICAgZ2xvYmFsT2JqZWN0LmFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFs
cywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7IikKKyAgICAgICAgIyBGSVhNRTog
V2Ugc2hvdWxkIHVzZSBXVEZfQVJSQVlfTEVOR1RIIGhlcmUgYnV0IGl0IGZhaWxzIG9uIHplcm8t
bGVuZ3RoIGFycmF5cy4KKyAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgZ2xvYmFsT2JqZWN0LmFk
ZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgc2l6ZW9mKHN0YXRpY0dsb2JhbHMpIC8gc2l6
ZW9mKEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8pKTsiKQogICAgICAgICBs
aW5lcy5hcHBlbmQoIiAgICBVTlVTRURfUEFSQU0oY2xpZW50RGF0YSk7IikKICAgICAgICAgbGlu
ZXMuYXBwZW5kKCJ9IikKICAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJD
b3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDJi
ZDJkYzliZTMwYzUyOGRiZDI3Yzk0MTM1MjBlZDliZmVlYTA4NTguLjNmYTIzZDYyNmI0YzkzNGE2
ZWY2MmE1NWU0YmE3NmJjN2U1NzhiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0
aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRp
b25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTk5LDYgKzE5OSw3IEBAIFdFQkNPUkVf
Rk9SRUFDSF9BUkJJVFJBUllDT05ESVRJT05BTEdVQVJEX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJ
TFRJTl9HRU5FUkFUT1IpCiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbnMuaAogLyoK
ICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYwLDYgKzI2MSw3IEBAIHByaXZhdGU6
CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbnMuY3BwCiAvKgogICogQ29weXJpZ2h0
IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
YykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOTMsNiArMjk1LDcgQEAgcHJpdmF0ZToKICMjIyBCZWdpbiBG
aWxlOiBXZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIw
MTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM0Niw2ICszNDksNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdl
YkNvcmVKU0J1aWx0aW5JbnRlcm5hbHMuY3BwCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENh
bm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zOTgsNyArNDAyLDcgQEAgdm9pZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczo6
aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogICAgIEpTVk1DbGll
bnREYXRhJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4obV92bS5j
bGllbnREYXRhKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZvIHN0
YXRpY0dsb2JhbHNbXSA9IHsKICAgICB9OwotICAgIGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9i
YWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOworICAg
IGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIHNpemVvZihzdGF0
aWNHbG9iYWxzKSAvIHNpemVvZihKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZv
KSk7CiAgICAgVU5VU0VEX1BBUkFNKGNsaWVudERhdGEpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3Jl
LUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEJ1aWx0aW4t
U2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDA1ZmIyMWNiNDBlNzY4ZDdkMWQ1YTY5MTFiNDU3NmQw
NTcyZmU3YzQuLmM1MDYyYWVkMmRiYWFlYWNhOWIxMTk1YzM1MjE3MTIzYTZlMmJlMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL1dlYkNvcmUtR3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUt
R3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0xOTksNiArMTk5LDcgQEAgV0VC
Q09SRV9GT1JFQUNIX0dVQVJERURCVUlMVElOX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9H
RU5FUkFUT1IpCiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbnMuaAogLyoKICAqIENv
cHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYwLDYgKzI2MSw3IEBAIHByaXZhdGU6CiAjIyMg
QmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbnMuY3BwCiAvKgogICogQ29weXJpZ2h0IChjKSAy
MDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOTMsNiArMjk1LDcgQEAgcHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBX
ZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fu
b24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM0Niw2ICszNDksNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVK
U0J1aWx0aW5JbnRlcm5hbHMuY3BwCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zOTgsNyArNDAyLDcgQEAgdm9pZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczo6aW5pdGlh
bGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogICAgIEpTVk1DbGllbnREYXRh
JiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4obV92bS5jbGllbnRE
YXRhKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0ds
b2JhbHNbXSA9IHsKICAgICB9OwotICAgIGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0
YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOworICAgIGdsb2Jh
bE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIHNpemVvZihzdGF0aWNHbG9i
YWxzKSAvIHNpemVvZihKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZvKSk7CiAg
ICAgVU5VU0VEX1BBUkFNKGNsaWVudERhdGEpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJu
YWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCBhNWQzY2QwMzFiMzkyNjE4ZDQyY2Fh
MWIyNTk0ODYwNjJjNjFlYjJiLi5iMjRhYjQ3ZjYyOGE2MmYzNWM5OWYwMTJiMzExZjY0Y2YwY2Q0
N2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMt
cmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1
bHQKQEAgLTIzMSw2ICsyMzEsNyBAQCBXRUJDT1JFX0ZPUkVBQ0hfR1VBUkRFRElOVEVSTkFMQlVJ
TFRJTl9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogIyMjIEJlZ2luIEZp
bGU6IFdlYkNvcmVKU0J1aWx0aW5zLmgKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24g
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI5NSw2ICsyOTYsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1
aWx0aW5zLmNwcAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzI4LDYgKzMz
MCw3IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbkludGVybmFs
cy5oCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zODgsNiArMzkxLDcgQEAg
cHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmNwcAog
LyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDU2LDcgKzQ2MCw3IEBAIHZvaWQg
SlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnM6OmluaXRpYWxpemUoSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCkKICN1bmRlZiBERUNMQVJFX0dMT0JBTF9TVEFUSUMKICNlbmRpZiAvLyBF
TkFCTEUoU1RSRUFNU19BUEkpCiAgICAgfTsKLSAgICBnbG9iYWxPYmplY3QuYWRkU3RhdGljR2xv
YmFscyhzdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RIKHN0YXRpY0dsb2JhbHMpKTsKKyAg
ICBnbG9iYWxPYmplY3QuYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBzaXplb2Yoc3Rh
dGljR2xvYmFscykgLyBzaXplb2YoSlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5SW5m
bykpOwogICAgIFVOVVNFRF9QQVJBTShjbGllbnREYXRhKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29y
ZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVp
bHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggMTA1ZmJhNmVkYzZiYTMyZDEyOTc3NTE4ZDJk
NDEzODNkYzhiM2Q2NC4uMTExNzY1MDc0MzMwYjg4NTQ1NTAyZWM2NDc2OGE1Y2ZhNzg3NzdlMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9X
ZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0xOTAsNiArMTkw
LDcgQEAgV0VCQ09SRV9GT1JFQUNIX1VOR1VBUkRFREJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklO
RV9CVUlMVElOX0dFTkVSQVRPUikKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGlucy5o
CiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNDUsNiArMjQ2LDcgQEAgcHJp
dmF0ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGlucy5jcHAKIC8qCiAgKiBDb3B5
cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3OCw2ICsyODAsNyBAQCBwcml2YXRlOgogIyMjIEJl
Z2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0aW5JbnRlcm5hbHMuaAogLyoKICAqIENvcHlyaWdodCAo
YykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzMxLDYgKzMzNCw3IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmls
ZTogV2ViQ29yZUpTQnVpbHRpbkludGVybmFscy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIw
MTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM4Myw3ICszODcsNyBAQCB2b2lkIEpTQnVpbHRpbkludGVybmFsRnVuY3Rp
b25zOjppbml0aWFsaXplKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiAgICAgSlNW
TUNsaWVudERhdGEmIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPiht
X3ZtLmNsaWVudERhdGEpOwogICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUlu
Zm8gc3RhdGljR2xvYmFsc1tdID0gewogICAgIH07Ci0gICAgZ2xvYmFsT2JqZWN0LmFkZFN0YXRp
Y0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7
CisgICAgZ2xvYmFsT2JqZWN0LmFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgc2l6ZW9m
KHN0YXRpY0dsb2JhbHMpIC8gc2l6ZW9mKEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0
eUluZm8pKTsKICAgICBVTlVTRURfUEFSQU0oY2xpZW50RGF0YSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dl
YkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rl
c3QtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDkxYTliMzg3YTJhZWM0ODFkZGQ4OGVjNDhkNDJm
YTYwMDUxN2FiODguLjAzZjNiNTI0NWM0YjQzMzBhZWI0MDk3N2JiNTFhMGE0OTZmMGZiNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29y
ZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMjgyLDYgKzI4Miw3IEBAIFdF
QkNPUkVfRk9SRUFDSF9YTUxDQVNJTkdURVNUX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9H
RU5FUkFUT1IpCiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbnMuaAogLyoKICAqIENv
cHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQ2LDYgKzM0Nyw3IEBAIHByaXZhdGU6CiAjIyMg
QmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbnMuY3BwCiAvKgogICogQ29weXJpZ2h0IChjKSAy
MDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNzksNiArMzgxLDcgQEAgcHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBX
ZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fu
b24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTQzOSw2ICs0NDIsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVK
U0J1aWx0aW5JbnRlcm5hbHMuY3BwCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01MDcsNyArNTExLDcgQEAgdm9pZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczo6aW5pdGlh
bGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogI3VuZGVmIERFQ0xBUkVfR0xP
QkFMX1NUQVRJQwogI2VuZGlmIC8vIEVOQUJMRShTVFJFQU1TX0FQSSkKICAgICB9OwotICAgIGds
b2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5H
VEgoc3RhdGljR2xvYmFscykpOworICAgIGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0
YXRpY0dsb2JhbHMsIHNpemVvZihzdGF0aWNHbG9iYWxzKSAvIHNpemVvZihKU0RPTUdsb2JhbE9i
amVjdDo6R2xvYmFsUHJvcGVydHlJbmZvKSk7CiAgICAgVU5VU0VEX1BBUkFNKGNsaWVudERhdGEp
OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283914</attachid>
            <date>2016-07-18 10:24:52 -0700</date>
            <delta_ts>2016-07-18 11:47:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159765-20160718192353.patch</filename>
            <type>text/plain</type>
            <size>18438</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDRhNDk4ZWEzNWFlNWM5YTc0MGJjNWRjMjdhNTY5MmE5YzkxZjIzLi5mMzVhYjEyZWVhYmJiYWE0
N2MwOTI4ZDI0NzllYTBiNGZkMjcxZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxNi0wNy0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjAyOTc1KTogLS1taW5pbWFsIGJ1aWxkIGlzIGJyb2tl
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJl
ZCBwYXJ0aWFsbHkgYnkgYnVpbHRpbiBnZW5lcmF0ZWQgdGVzdCBjb2RlLgorCisgICAgICAgIFVw
ZGF0aW5nIGdlbmVyYXRvciB0byBhZGQgYSBnbG9iYWwgY29tcGlsYXRpb24gZ3VhcmQgYXJvdW5k
IHRoZSBjb2RlIHRoYXQgZ2VuZXJhdGVzIGFsbCBnbG9iYWwgaW50ZXJuYWwgcHJvcGVydGllcy4K
KyAgICAgICAgU3BsaXQgdGhlIGdlbmVyYXRlX21ldGhvZHMgZnVuY3Rpb24gaW4gdHdvLCBvbmUg
ZGVkaWNhdGVkIHRvIHRoZSB2aXNpdCBtZXRob2QgYW5kIHRoZSBzZWNvbmQgb25lIGRlZGljYXRl
ZCB0bworICAgICAgICB0aGUgaW5pdGlhbGl6ZSBtZXRob2QuCisKKyAgICAgICAgKiBTY3JpcHRz
L2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2ltcGxlbWVudGF0
aW9uLnB5OgorICAgICAgICAoQnVpbHRpbnNJbnRlcm5hbHNXcmFwcGVySW1wbGVtZW50YXRpb25H
ZW5lcmF0b3IuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KTogVXNlIHNwbGl0dGVkIGdlbmVy
YXRpb24gZnVuY3Rpb25zLgorICAgICAgICAoQnVpbHRpbnNJbnRlcm5hbHNXcmFwcGVySW1wbGVt
ZW50YXRpb25HZW5lcmF0b3IuZ2VuZXJhdGVfdmlzaXRfbWV0aG9kKTogUmVzcG9uc2UgdG8gZ2Vu
ZXJhdGUgdGhlIHZpc2l0IG1ldGhvZC4KKyAgICAgICAgKEJ1aWx0aW5zSW50ZXJuYWxzV3JhcHBl
ckltcGxlbWVudGF0aW9uR2VuZXJhdG9yLl9nZW5lcmF0ZV9pbml0aWFsaXplX3N0YXRpY19nbG9i
YWxzKTogUmVzcG9uc2libGUgdG8gZ2VuZXJhdGUKKyAgICAgICAgdGhlIGNvZGUgdG8gaW5pdGlh
bGl6ZSB0aGUgaW50ZXJuYWwgZ2xvYmFscy4gVGhpcyBjb2RlIGlzIHB1dCBpbiBhIGdsb2JhbCBj
b21waWxhdGlvbiBndWFyZCBpbiBjYXNlIGFsbAorICAgICAgICBpbnRlcm5hbHMgYXJlIGNvbXBp
bGVkIG91dCBieSBzcGVjaWZpYyBidWlsZHMuCisgICAgICAgIChCdWlsdGluc0ludGVybmFsc1dy
YXBwZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcik6CisgICAgICAgIChCdWlsdGluc0ludGVybmFs
c1dyYXBwZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvci5nZW5lcmF0ZV9pbml0aWFsaXplX21ldGhv
ZCk6IFJlc3BvbnNpYmxlIHRvIGdlbmVyYXRlIHRoZQorICAgICAgICBpbml0aWFsaXplIG1ldGhv
ZC4KKyAgICAgICAgKEJ1aWx0aW5zSW50ZXJuYWxzV3JhcHBlckltcGxlbWVudGF0aW9uR2VuZXJh
dG9yLmdlbmVyYXRlX21ldGhvZHMpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFy
YXRlLmpzLXJlc3VsdDogQ29weXJpZ2h0IGNoYW5nZS4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVz
dWx0OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dl
YkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6IERpdHRvLgor
ICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJk
ZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdDogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJhdGUuanMt
cmVzdWx0OiBSZWZsZWN0cyBwYXJ0aWFsbHkgdGhlIGJ1aWx0LWluCisgICAgICAgIGdlbmVyYXRv
ciBjaGFuZ2UuCisKIDIwMTYtMDctMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBERkcgQ1NFIGlzIGJyb2tlbiBmb3IgTXVsdGlHZXRCeU9mZnNldApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2Vu
ZXJhdGVfaW50ZXJuYWxzX3dyYXBwZXJfaW1wbGVtZW50YXRpb24ucHkgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9pbnRlcm5hbHNfd3Jh
cHBlcl9pbXBsZW1lbnRhdGlvbi5weQppbmRleCA1Y2U2MTI4NGE5MjFlMzkyMTJkYTJiZWI2ODll
ZDE4NGRiZGEwZTEzLi5hMjUwZTUzNmMzMDM3ZjYyNGRkZjkzNmYxOGJkYjFkZWMzODkzMTAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGlu
c19nZW5lcmF0ZV9pbnRlcm5hbHNfd3JhcHBlcl9pbXBsZW1lbnRhdGlvbi5weQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9pbnRl
cm5hbHNfd3JhcHBlcl9pbXBsZW1lbnRhdGlvbi5weQpAQCAtODMsNyArODMsOCBAQCBjbGFzcyBC
dWlsdGluc0ludGVybmFsc1dyYXBwZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihCdWlsdGluc0dl
bmVyYXRvcik6CiAgICAgICAgIGxpbmVzID0gW10KIAogICAgICAgICBsaW5lcy5hcHBlbmQoc2Vs
Zi5nZW5lcmF0ZV9jb25zdHJ1Y3RvcigpKQotICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5nZW5l
cmF0ZV9tZXRob2RzKCkpCisgICAgICAgIGxpbmVzLmFwcGVuZChzZWxmLmdlbmVyYXRlX3Zpc2l0
X21ldGhvZCgpKQorICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9pbml0aWFsaXpl
X21ldGhvZCgpKQogICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQogCiAgICAgZGVmIGFj
Y2Vzc29yX25hbWUoc2VsZiwgb2JqZWN0KToKQEAgLTExMywyNiArMTE0LDM4IEBAIGNsYXNzIEJ1
aWx0aW5zSW50ZXJuYWxzV3JhcHBlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEJ1aWx0aW5zR2Vu
ZXJhdG9yKToKICAgICAgICAgbGluZXMuYXBwZW5kKCIjdW5kZWYgREVDTEFSRV9HTE9CQUxfU1RB
VElDIikKICAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKIAotICAgIGRlZiBnZW5lcmF0
ZV9tZXRob2RzKHNlbGYpOgorICAgIGRlZiBnZW5lcmF0ZV92aXNpdF9tZXRob2Qoc2VsZik6CiAg
ICAgICAgIGxpbmVzID0gWyJ2b2lkIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjp2aXNpdChK
U0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKSIsCiAgICAgICAgICAgICAgICAgICJ7Il0KICAgICAg
ICAgZm9yIG9iamVjdCBpbiBzZWxmLmludGVybmFsczoKICAgICAgICAgICAgIHZpc2l0ID0gIiAg
ICAlcy52aXNpdCh2aXNpdG9yKTsiICUgc2VsZi5tZW1iZXJfbmFtZShvYmplY3QpCiAgICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoQnVpbHRpbnNHZW5lcmF0b3Iud3JhcF93aXRoX2d1YXJkKG9iamVj
dC5hbm5vdGF0aW9ucy5nZXQoJ2NvbmRpdGlvbmFsJyksIHZpc2l0KSkKLSAgICAgICAgbGluZXMu
YXBwZW5kKCIgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpO1xufSIpCi0KLSAgICAgICAgbGluZXMu
YXBwZW5kKCJ2b2lkIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0aWFsaXplKEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpIikKLSAgICAgICAgbGluZXMuYXBwZW5kKCJ7IikK
LSAgICAgICAgZm9yIG9iamVjdCBpbiBzZWxmLmludGVybmFsczoKLSAgICAgICAgICAgIGluaXQg
PSAiICAgICVzLmluaXQoZ2xvYmFsT2JqZWN0KTsiICUgc2VsZi5tZW1iZXJfbmFtZShvYmplY3Qp
Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoQnVpbHRpbnNHZW5lcmF0b3Iud3JhcF93aXRoX2d1
YXJkKG9iamVjdC5hbm5vdGF0aW9ucy5nZXQoJ2NvbmRpdGlvbmFsJyksIGluaXQpKQorICAgICAg
ICBsaW5lcy5hcHBlbmQoIiAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7IikKKyAgICAgICAgbGlu
ZXMuYXBwZW5kKCJ9XG4iKQorICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQogCi0gICAg
ICAgIGxpbmVzLmFwcGVuZCgiICAgIEpTVk1DbGllbnREYXRhJiBjbGllbnREYXRhID0gKnN0YXRp
Y19jYXN0PEpTVk1DbGllbnREYXRhKj4obV92bS5jbGllbnREYXRhKTsiKQotICAgICAgICBsaW5l
cy5hcHBlbmQoIiAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZvIHN0YXRp
Y0dsb2JhbHNbXSA9IHsiKQorICAgIGRlZiBfZ2VuZXJhdGVfaW5pdGlhbGl6ZV9zdGF0aWNfZ2xv
YmFscyhzZWxmKToKKyAgICAgICAgbGluZXMgPSBbIiAgICBKU1ZNQ2xpZW50RGF0YSYgY2xpZW50
RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KG1fdm0uY2xpZW50RGF0YSk7IiwK
KyAgICAgICAgICAgICAgICAgIiAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJ
bmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsiXQogICAgICAgICBmb3Igb2JqZWN0IGluIHNlbGYuaW50
ZXJuYWxzOgogICAgICAgICAgICAgbGluZXMuYXBwZW5kKEJ1aWx0aW5zR2VuZXJhdG9yLndyYXBf
d2l0aF9ndWFyZChvYmplY3QuYW5ub3RhdGlvbnMuZ2V0KCdjb25kaXRpb25hbCcpLCBzZWxmLnBy
b3BlcnR5X21hY3JvKG9iamVjdCkpKQogICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICB9OyIpCiAg
ICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxzKHN0
YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOyIpCiAgICAgICAg
IGxpbmVzLmFwcGVuZCgiICAgIFVOVVNFRF9QQVJBTShjbGllbnREYXRhKTsiKQorICAgICAgICBy
ZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQorCisgICAgZGVmIGdlbmVyYXRlX2luaXRpYWxpemVfbWV0
aG9kKHNlbGYpOgorICAgICAgICBsaW5lcyA9IFsidm9pZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0
aW9uczo6aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KSIsCisgICAg
ICAgICAgICAgICAgInsiLAorICAgICAgICAgICAgICAgICIgICAgVU5VU0VEX1BBUkFNKGdsb2Jh
bE9iamVjdCk7Il0KKworICAgICAgICBmb3Igb2JqZWN0IGluIHNlbGYuaW50ZXJuYWxzOgorICAg
ICAgICAgICAgaW5pdCA9ICIgICAgJXMuaW5pdChnbG9iYWxPYmplY3QpOyIgJSBzZWxmLm1lbWJl
cl9uYW1lKG9iamVjdCkKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZChCdWlsdGluc0dlbmVyYXRv
ci53cmFwX3dpdGhfZ3VhcmQob2JqZWN0LmFubm90YXRpb25zLmdldCgnY29uZGl0aW9uYWwnKSwg
aW5pdCkpCisgICAgICAgIGxpbmVzLmFwcGVuZCgiIikKKworICAgICAgICBndWFyZHMgPSBzZXQo
W29iamVjdC5hbm5vdGF0aW9ucy5nZXQoJ2NvbmRpdGlvbmFsJykgZm9yIG9iamVjdCBpbiBzZWxm
LmludGVybmFscyBpZiAnY29uZGl0aW9uYWwnIGluIG9iamVjdC5hbm5vdGF0aW9uc10pCisgICAg
ICAgIGxpbmVzLmFwcGVuZChCdWlsdGluc0dlbmVyYXRvci53cmFwX3dpdGhfZ3VhcmQoIiB8fCAi
LmpvaW4oZ3VhcmRzKSwgc2VsZi5fZ2VuZXJhdGVfaW5pdGlhbGl6ZV9zdGF0aWNfZ2xvYmFscygp
KSkKKwogICAgICAgICBsaW5lcy5hcHBlbmQoIn0iKQogICAgICAgICByZXR1cm4gJ1xuJy5qb2lu
KGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFy
YXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0
aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0ZS5q
cy1yZXN1bHQKaW5kZXggMmJkMmRjOWJlMzBjNTI4ZGJkMjdjOTQxMzUyMGVkOWJmZWVhMDg1OC4u
OGU2MmYzYWZjZTA5YjE3YjA2MDNiODhlNzA1MDNjNjIzOTA0NmIyNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29y
ZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3Jl
LUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0xOTksNiAr
MTk5LDcgQEAgV0VCQ09SRV9GT1JFQUNIX0FSQklUUkFSWUNPTkRJVElPTkFMR1VBUkRfQlVJTFRJ
Tl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3Jl
SlNCdWlsdGlucy5oCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNjAsNiAr
MjYxLDcgQEAgcHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGlucy5jcHAK
IC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5Myw2ICsyOTUsNyBAQCBwcml2
YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0aW5JbnRlcm5hbHMuaAogLyoKICAq
IENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQ2LDYgKzM0OSw3IEBAIHByaXZhdGU6CiAj
IyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbkludGVybmFscy5jcHAKIC8qCiAgKiBDb3B5
cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5Myw4ICszOTcsMTEgQEAgdm9pZCBKU0J1aWx0aW5J
bnRlcm5hbEZ1bmN0aW9uczo6dmlzaXQoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAg
ICBVTlVTRURfUEFSQU0odmlzaXRvcik7CiB9CisKIHZvaWQgSlNCdWlsdGluSW50ZXJuYWxGdW5j
dGlvbnM6OmluaXRpYWxpemUoSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKKyAg
ICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKKwogICAgIEpTVk1DbGllbnREYXRhJiBjbGll
bnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4obV92bS5jbGllbnREYXRhKTsK
ICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNb
XSA9IHsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5q
cy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCAw
NWZiMjFjYjQwZTc2OGQ3ZDFkNWE2OTExYjQ1NzZkMDU3MmZlN2M0Li4yMzdhMGI0MTExMjQ2YzVj
NTk2ZmQ4MTU2YmVmYTgzZDlkNzZiNWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGlu
LVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpz
LXJlc3VsdApAQCAtMTk5LDYgKzE5OSw3IEBAIFdFQkNPUkVfRk9SRUFDSF9HVUFSREVEQlVJTFRJ
Tl9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogIyMjIEJlZ2luIEZpbGU6
IFdlYkNvcmVKU0J1aWx0aW5zLmgKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI2MCw2ICsyNjEsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0
aW5zLmNwcAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjkzLDYgKzI5NSw3
IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbkludGVybmFscy5o
CiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNDYsNiArMzQ5LDcgQEAgcHJp
dmF0ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmNwcAogLyoK
ICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzkzLDggKzM5NywxMSBAQCB2b2lkIEpT
QnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjp2aXNpdChKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9y
KQogewogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKIH0KKwogdm9pZCBKU0J1aWx0aW5JbnRl
cm5hbEZ1bmN0aW9uczo6aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQogeworICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOworCiAgICAgSlNWTUNsaWVudERh
dGEmIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihtX3ZtLmNsaWVu
dERhdGEpOwogICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8gc3RhdGlj
R2xvYmFsc1tdID0gewogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1
aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNl
cGFyYXRlLmpzLXJlc3VsdAppbmRleCBhNWQzY2QwMzFiMzkyNjE4ZDQyY2FhMWIyNTk0ODYwNjJj
NjFlYjJiLi5iMDQ3NmNiOTkxYTM3ODRkMWRkYjc5MjUxZWFkYTU2NjU5MzFiZWM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dl
YkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTIzMSw2
ICsyMzEsNyBAQCBXRUJDT1JFX0ZPUkVBQ0hfR1VBUkRFRElOVEVSTkFMQlVJTFRJTl9CVUlMVElO
X0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVK
U0J1aWx0aW5zLmgKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5NSw2ICsy
OTYsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0aW5zLmNwcAog
LyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzI4LDYgKzMzMCw3IEBAIHByaXZh
dGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbkludGVybmFscy5oCiAvKgogICog
Q29weXJpZ2h0IChjKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zODgsNiArMzkxLDcgQEAgcHJpdmF0ZToKICMj
IyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxzLmNwcAogLyoKICAqIENvcHly
aWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQxLDExICs0NDUsMTUgQEAgdm9pZCBKU0J1aWx0aW5J
bnRlcm5hbEZ1bmN0aW9uczo6dmlzaXQoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKICNlbmRp
ZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOwogfQor
CiB2b2lkIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0aWFsaXplKEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7
CiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQogICAgIG1fZ3VhcmRlZEludGVybmFsQnVpbHRpbi5p
bml0KGdsb2JhbE9iamVjdCk7CiAjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNfQVBJKQorCisjaWYg
RU5BQkxFKFNUUkVBTVNfQVBJKQogICAgIEpTVk1DbGllbnREYXRhJiBjbGllbnREYXRhID0gKnN0
YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4obV92bS5jbGllbnREYXRhKTsKICAgICBKU0RPTUds
b2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKICNpZiBF
TkFCTEUoU1RSRUFNU19BUEkpCkBAIC00NTgsNiArNDY2LDcgQEAgdm9pZCBKU0J1aWx0aW5JbnRl
cm5hbEZ1bmN0aW9uczo6aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQogICAgIH07CiAgICAgZ2xvYmFsT2JqZWN0LmFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFs
cywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiAgICAgVU5VU0VEX1BBUkFNKGNs
aWVudERhdGEpOworI2VuZGlmIC8vIEVOQUJMRShTVFJFQU1TX0FQSSkKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRl
LmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5k
ZXggMTA1ZmJhNmVkYzZiYTMyZDEyOTc3NTE4ZDJkNDEzODNkYzhiM2Q2NC4uMWVjOGY0NzFmY2Rk
OTVhM2FhMjRhNTI2YTliZTAzNWM3ZDE4ZTIyYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRC
dWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2Vw
YXJhdGUuanMtcmVzdWx0CkBAIC0xOTAsNiArMTkwLDcgQEAgV0VCQ09SRV9GT1JFQUNIX1VOR1VB
UkRFREJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICMjIyBC
ZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGlucy5oCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDE1
IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNDUsNiArMjQ2LDcgQEAgcHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBXZWJD
b3JlSlNCdWlsdGlucy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3
OCw2ICsyODAsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0aW5J
bnRlcm5hbHMuaAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMxLDYgKzMz
NCw3IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbkludGVybmFs
cy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3OCw4ICszODIsMTEg
QEAgdm9pZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczo6dmlzaXQoSlNDOjpTbG90VmlzaXRv
ciYgdmlzaXRvcikKIHsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CiB9CisKIHZvaWQgSlNC
dWlsdGluSW50ZXJuYWxGdW5jdGlvbnM6OmluaXRpYWxpemUoSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCkKIHsKKyAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKKwogICAgIEpT
Vk1DbGllbnREYXRhJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
bV92bS5jbGllbnREYXRhKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJ
bmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxDYXNp
bmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5q
cy1yZXN1bHQKaW5kZXggOTFhOWIzODdhMmFlYzQ4MWRkZDg4ZWM0OGQ0MmZhNjAwNTE3YWI4OC4u
NzQ3MTZlYTBhZjg0ZTdjMjJkNmU2ZjYwNDRhZDY3NDdhYjcwMGRkMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29y
ZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rl
c3QtU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0yODIsNiArMjgyLDcgQEAgV0VCQ09SRV9GT1JFQUNI
X1hNTENBU0lOR1RFU1RfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICMj
IyBCZWdpbiBGaWxlOiBXZWJDb3JlSlNCdWlsdGlucy5oCiAvKgogICogQ29weXJpZ2h0IChjKSAy
MDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNDYsNiArMzQ3LDcgQEAgcHJpdmF0ZToKICMjIyBCZWdpbiBGaWxlOiBX
ZWJDb3JlSlNCdWlsdGlucy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM3OSw2ICszODEsNyBAQCBwcml2YXRlOgogIyMjIEJlZ2luIEZpbGU6IFdlYkNvcmVKU0J1aWx0
aW5JbnRlcm5hbHMuaAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxNSBDYW5vbiBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDM5LDYg
KzQ0Miw3IEBAIHByaXZhdGU6CiAjIyMgQmVnaW4gRmlsZTogV2ViQ29yZUpTQnVpbHRpbkludGVy
bmFscy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5MiwxMSArNDk2
LDE1IEBAIHZvaWQgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnM6OnZpc2l0KEpTQzo6U2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiAjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNfQVBJKQogICAgIFVOVVNF
RF9QQVJBTSh2aXNpdG9yKTsKIH0KKwogdm9pZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczo6
aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogeworICAgIFVOVVNF
RF9QQVJBTShnbG9iYWxPYmplY3QpOwogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKICAgICBtX3ht
bENhc2luZ1Rlc3QuaW5pdChnbG9iYWxPYmplY3QpOwogI2VuZGlmIC8vIEVOQUJMRShTVFJFQU1T
X0FQSSkKKworI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKICAgICBKU1ZNQ2xpZW50RGF0YSYgY2xp
ZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KG1fdm0uY2xpZW50RGF0YSk7
CiAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxz
W10gPSB7CiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQpAQCAtNTA5LDYgKzUxNyw3IEBAIHZvaWQg
SlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnM6OmluaXRpYWxpemUoSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCkKICAgICB9OwogICAgIGdsb2JhbE9iamVjdC5hZGRTdGF0aWNHbG9iYWxz
KHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwogICAgIFVO
VVNFRF9QQVJBTShjbGllbnREYXRhKTsKKyNlbmRpZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>