<?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>115138</bug_id>
          
          <creation_ts>2013-04-24 16:13:39 -0700</creation_ts>
          <short_desc>[ARM] Expand the use of integer division</short_desc>
          <delta_ts>2014-02-14 01:23:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>108645</dependson>
    
    <dependson>115443</dependson>
    
    <dependson>115444</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Cosmin Truta">ctruta</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>zarvai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>880862</commentid>
    <comment_count>0</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-24 16:13:39 -0700</bug_when>
    <thetext>Currently, the ARM SDIV and UDIV instructions are used only on ARM v7s. We also enable them on QNX.

However, on QNX, the same JavaScriptCore build runs on various devices that may or may not have these instructions, so we need to check the availability of hardware integer division at startup time.

A patch will follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880881</commentid>
    <comment_count>1</comment_count>
      <attachid>199536</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-24 16:56:44 -0700</bug_when>
    <thetext>Created attachment 199536
Patch

Side note: this can be easily extended to other systems (e.g. Linux on ARM) that need to know about hardware idiv availability at run time, by adding the appropriate checks to isIntegerDivSupported().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880883</commentid>
    <comment_count>2</comment_count>
      <attachid>199537</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-24 16:59:49 -0700</bug_when>
    <thetext>Created attachment 199537
Patch

Fixed style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880887</commentid>
    <comment_count>3</comment_count>
      <attachid>199537</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-24 17:11:16 -0700</bug_when>
    <thetext>Comment on attachment 199537
Patch

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

Nope.

&gt; Source/JavaScriptCore/dfg/DFGCommon.h:109
&gt;  #if CPU(APPLE_ARMV7S)
&gt;      return true;
&gt; +#elif CPU(ARM_THUMB2) &amp;&amp; OS(QNX)
&gt; +    return MacroAssembler::supportsIntegerDiv();

This is terribly misleading.

What you should do is:
    -MacroAssembler::supportsIntegerDiv() is a _compile time_ constant for everything but QNX
    -It is true for ARMv7s, false everywhere else.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:2256
&gt;  #elif CPU(APPLE_ARMV7S)
&gt; -            compileIntegerArithDivForARMv7s(node);
&gt; +            compileIntegerArithDivForARM(node);
&gt; +#elif CPU(ARM_THUMB2) &amp;&amp; OS(QNX)
&gt; +            if (MacroAssembler::supportsIntegerDiv())
&gt; +                compileIntegerArithDivForARM(node);

That makes no sense. What if you  are ArithDiv and MacroAssembler::supportsIntegerDiv() evaluate to false, you just silently ignore the operation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881048</commentid>
    <comment_count>4</comment_count>
      <attachid>199607</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-24 19:13:44 -0700</bug_when>
    <thetext>Created attachment 199607
Patch

(In reply to comment #3)
&gt; What you should do is:
&gt;     -MacroAssembler::supportsIntegerDiv() is a _compile time_ constant for everything but QNX
&gt;     [...]

Done. This allowed me to simplify preprocessor conditionals in other places, and rely on the fact that this gets resolved at compile time whenever possible.

&gt; That makes no sense. What if you  are ArithDiv and MacroAssembler::supportsIntegerDiv() evaluate to false, you just silently ignore the operation?

From what I understood so far, the call site is responsible not to branch here if IDIV isn&apos;t available, hence the RELEASE_ASSERT_NOT_REACHED further below. And you&apos;re right, that if-statement shouldn&apos;t be there. I changed it into an assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881068</commentid>
    <comment_count>5</comment_count>
      <attachid>199614</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-24 20:46:59 -0700</bug_when>
    <thetext>Created attachment 199614
Patch

I initially made DFG::isARMWithIntegerDiv() in order to use it as it&apos;s the case with DFG::isX86(), i.e. when it&apos;s not protected by #if CPU(...); but then I noticed I had used it inside in ARM-specific code also, interchangeably (and inconsistently) with MacroAssembler::supportsIntegerDiv(). I am now modifying the previous patch: I use MacroAssembler::supportsIntegerDiv() consistently inside ARM-specific code, and DFG::isARMWithIntegerDiv() only in the rare cases outside.

I also simplified isIntegerDivSupported().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881080</commentid>
    <comment_count>6</comment_count>
      <attachid>199614</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-24 22:23:41 -0700</bug_when>
    <thetext>Comment on attachment 199614
Patch

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

Better but there is still some confusions with your flags.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp:49
&gt; +namespace JSC {
&gt; +
&gt; +static bool isIntegerDivSupported()
&gt; +{
&gt; +#if CPU(APPLE_ARMV7S)
&gt; +    return true;
&gt; +#elif OS(QNX) &amp;&amp; defined(ARM_CPU_FLAG_IDIV)
&gt; +    return !!(SYSPAGE_ENTRY(cpuinfo)-&gt;flags &amp; ARM_CPU_FLAG_IDIV);
&gt; +#else
&gt; +    return false;
&gt; +#endif
&gt; +}
&gt; +
&gt; +const bool MacroAssemblerARMv7::s_isIntegerDivSupported = isIntegerDivSupported();

This whole code could be in if OS(QNX).
You don&apos;t need ARMV7S and the fallback.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:1921
&gt; +
&gt; +    static const bool s_isIntegerDivSupported;

This should be in #if OS(QNX)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881313</commentid>
    <comment_count>7</comment_count>
      <attachid>199673</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-25 09:37:56 -0700</bug_when>
    <thetext>Created attachment 199673
Patch

(In reply to comment #6)
&gt; This whole code could be in if OS(QNX).
&gt; You don&apos;t need ARMV7S and the fallback.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882129</commentid>
    <comment_count>8</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-26 22:00:24 -0700</bug_when>
    <thetext>I am changing the summary line to reflect that improvements are no longer limited to hardware IDIV, or to QNX.
Specifically, I implemented a speedup for the software-emulated modulo operation, by replacing fmod() with div().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882130</commentid>
    <comment_count>9</comment_count>
      <attachid>199890</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-26 22:05:32 -0700</bug_when>
    <thetext>Created attachment 199890
Patch

Although I only tested this on ARM, I believe that using div() instead of fmod() will benefit virtually all the other platforms also, if the necessary changes are made inside compileSoftModulo().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882131</commentid>
    <comment_count>10</comment_count>
      <attachid>199891</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-26 22:08:18 -0700</bug_when>
    <thetext>Created attachment 199891
Patch

Fixed a line in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882875</commentid>
    <comment_count>11</comment_count>
      <attachid>199891</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-29 17:58:15 -0700</bug_when>
    <thetext>Comment on attachment 199891
Patch

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

Looks reasonable.

Some comments bellow. I would prefer if Filip could double check before you land.

&gt; Source/JavaScriptCore/ChangeLog:38
&gt; +        (JSC::DFG::SpeculativeJIT::compileSoftModuloForX86): Added.
&gt; +        (JSC::DFG::SpeculativeJIT::compileSoftModuloForARM): Added.
&gt; +        (JSC::DFG::SpeculativeJIT::compileSoftModulo): Split off the X86 and ARM codegen.

Why not just name them all compileSoftModulo?
That would make the call site simpler.

&gt; Source/JavaScriptCore/dfg/DFGOperations.cpp:1607
&gt; +    div_t quotientAndRemainder = div(a, b);
&gt; +    return quotientAndRemainder.rem;

a % b?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882886</commentid>
    <comment_count>12</comment_count>
      <attachid>200069</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-04-29 18:28:20 -0700</bug_when>
    <thetext>Created attachment 200069
Patch

Addressing reviewer&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882888</commentid>
    <comment_count>13</comment_count>
      <attachid>200069</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-29 18:33:39 -0700</bug_when>
    <thetext>Comment on attachment 200069
Patch

I like this.  R=me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882901</commentid>
    <comment_count>14</comment_count>
      <attachid>200069</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-29 19:27:59 -0700</bug_when>
    <thetext>Comment on attachment 200069
Patch

(In reply to comment #13)
&gt; (From update of attachment 200069 [details])
&gt; I like this.  R=me too.

Thanks for checking the patch. Let&apos;s cq.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882902</commentid>
    <comment_count>15</comment_count>
      <attachid>200069</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-29 19:54:19 -0700</bug_when>
    <thetext>Comment on attachment 200069
Patch

Clearing flags on attachment: 200069

Committed r149349: &lt;http://trac.webkit.org/changeset/149349&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882903</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-29 19:54:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882947</commentid>
    <comment_count>17</comment_count>
    <who name="Zoltan Arvai">zarvai</who>
    <bug_when>2013-04-30 00:43:23 -0700</bug_when>
    <thetext>A speculative build fix landed for Qt ARM and Mips in http://trac.webkit.org/changeset/149354.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883215</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-30 13:12:11 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 115443</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980233</commentid>
    <comment_count>19</comment_count>
      <attachid>199891</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-02-13 04:04:36 -0800</bug_when>
    <thetext>Comment on attachment 199891
Patch

Cleared Benjamin Poulain&apos;s review+ from obsolete attachment 199891 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980695</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-02-14 01:23:04 -0800</bug_when>
    <thetext>Is there any reason why is it closed as RESOLVED/WONTFIX?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199536</attachid>
            <date>2013-04-24 16:56:44 -0700</date>
            <delta_ts>2013-04-24 16:59:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>21506</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YTBjMWVlNTdjLi5lNmE1MGRm
NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTcsNiArNTE3LDcg
QEAgaWYgKFdURl9DUFVfQVJNKQogICAgICAgICBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAog
ICAgICAgICBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuY3BwCiAgICAgICAgIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5jcHAKKyAgICAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwCiAgICAgKQogZWxzZWlmIChXVEZfQ1BVX01JUFMpCiBlbHNlaWYgKFdURl9DUFVfWDg2
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwODIwOWEzZC4uZjYwMzIwZGJhZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTMtMDQtMjQgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbUU5YXVtBUk1dIFVz
ZSBoYXJkd2FyZSBpbnRlZ2VyIGRpdmlzaW9uIHdoZXJlIGF2YWlsYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MTM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkg
R2VvcmdlIFN0YWlrb3MgYW5kIEFudGhvbnkgU2NpYW4uCisKKyAgICAgICAgVXNlIHRoZSBTRElW
IGFuZCBVRElWIGluc3RydWN0aW9ucyBvbiBRTlgvQVJNIHdoZW4gdGhlIENQVSBmbGFncworICAg
ICAgICBpbmRpY2F0ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIGhhcmR3YXJlIGludGVnZXIgZGl2aXNp
b24uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6
OkFSTXY3QXNzZW1ibGVyOjpzZGl2KTogRGlkIG5vdCBjb21waWxlIGNvbmRpdGlvbmFsbHkuCisg
ICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp1ZGl2KTogRGl0dG8uCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6aXNJ
bnRlZ2VyRGl2U3VwcG9ydGVkKTogQWRkZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9y
dHNJbnRlZ2VyRGl2KTogQWRkZWQuCisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAg
ICAoSlNDOjpERkc6OmlzQVJNV2l0aEludGVnZXJEaXYpOiBDaGFuZ2VkIGZyb20gaXNBUk12N3Mu
CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZp
eHVwUGhhc2U6OmZpeHVwTm9kZSk6IFVzZWQgaXNBUk1XaXRoSW50ZWdlckRpdi4KKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0Zvclg4Nik6IEFkZGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0ZvckFSTSk6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyk6IFNwbGl0
IG9mZiB0aGUgWDg2IGFuZCBBUk0gY29kZWdlbi4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTSk6IFJlbmFtZWQgZnJvbSBjb21w
aWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNdjcuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6IEFsbG93ZWQgcnVuLXRpbWUgZGV0ZWN0aW9uIG9mIGlu
dGVnZXIgZGl2IG9uIEFSTS4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAg
ICAgICAgKFNwZWN1bGF0aXZlSklUKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBB
bGxvd2VkIHJ1bi10aW1lIGRldGVjdGlvbiBvZiBpbnRlZ2VyIGRpdiBvbiBBUk0uCisKIDIwMTMt
MDQtMjQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICAzMi1i
aXQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBjMDhjNzU1ZjVmLi5hZThmYTc4ZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNzMsNiArNzMsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29k
ZVJlZi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDdhYTRlNmQ4MC4uMjVl
ZmJjNDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3NCw2ICs1NzQsNyBA
QAogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REQxMUEy
MTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCAqLzsgfTsKIAkJODZDNTY4RTEx
MUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8q
IE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg2QzU2OEUyMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhE
RjExQTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2QzU2OEU0RkI5Mjg2N0ExNkZEMTAwMiAv
KiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2QzU2OEUzRkI5Mjg2N0ExNkZEMTAwMiAvKiBNYWNyb0Fzc2VtYmxl
ckFSTXY3LmNwcCAqLzsgfTsKIAkJODZDQTAzMkUxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFi
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZD
QTAzMkQxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuY3BwICovOyB9OwogCQk4NkNBRkVF
MzEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQUZFRTIxMDM1RERFNjAwMjhBNjA5IC8qIEV4ZWN1
dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4NkNDODVBMTBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQzg1QTAwRUU3OUE0NzAwMjg4Njgy
IC8qIEpJVElubGluZXMuaCAqLzsgfTsKQEAgLTE0NzcsNiArMTQ3OCw3IEBACiAJCTg2QzU2OERE
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxlckFSTS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERFMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2Vt
Ymxlck1JUFMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjcm9Bc3NlbWJs
ZXJNSVBTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERGMTFBMjEzRUUw
MDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1JUFNBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZDNTY4
RTNGQjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0EwMzJEMTAzOEU4NDQwMDI4QTYwOSAvKiBFeGVj
dXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1dGFi
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkNBRkVFMjEwMzVEREU2MDAy
OEE2MDkgLyogRXhlY3V0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0M4NUEwMEVFNzlB
NDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpJVElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDUsNiAr
Mjg0Nyw3IEBACiAJCQkJODZDMzZFRTkwRUUxMjg5RDAwQjNERjU5IC8qIE1hY3JvQXNzZW1ibGVy
LmggKi8sCiAJCQkJODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJN
LmNwcCAqLywKIAkJCQk4NkQzQjJDMjEwMTU2QkRFMDAyODY1RTcgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uaCAqLywKKwkJCQk4NkM1NjhFM0ZCOTI4NjdBMTZGRDEwMDIgLyogTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAgKi8sCiAJCQkJODZBREQxNDQwRkRERUE5ODAwMDZFRUMyIC8qIE1hY3JvQXNzZW1i
bGVyQVJNdjcuaCAqLywKIAkJCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmLmggKi8sCiAJCQkJODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3Jv
QXNzZW1ibGVyTUlQUy5oICovLApAQCAtMzk3Nyw2ICszOTgwLDcgQEAKIAkJCQkxNEI3MjNCMjEy
RDdEQTQ2MDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2VtYmxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODZDNTY4RTRGQjkyODY3QTE2RkQxMDAyIC8qIE1h
Y3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZBRTY0QTgxMzVFNUUx
QzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMy
QjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQyRDZGMDgxMzUzOUEyODAwQjAyRTg2IC8qIE1hcmtlZEJsb2NrLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
Uk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCmluZGV4IDI4OTg5NTQ5ZDQuLjA3OWI1MDk1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTY2MSwxMCArNjYx
LDggQEAgcHJpdmF0ZToKICAgICAgICAgT1BfUk9SX3JlZ19UMiAgID0gMHhGQTYwLAogICAgICAg
ICBPUF9DTFogICAgICAgICAgPSAweEZBQjAsCiAgICAgICAgIE9QX1NNVUxMX1QxICAgICA9IDB4
RkI4MCwKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgICAgICBPUF9TRElWX1QxICAgICAgPSAw
eEZCOTAsCiAgICAgICAgIE9QX1VESVZfVDEgICAgICA9IDB4RkJCMCwKLSNlbmRpZgogICAgIH0g
T3Bjb2RlSUQxOwogCiAgICAgdHlwZWRlZiBlbnVtIHsKQEAgLTE0MDcsNyArMTQwNSw2IEBAIHB1
YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1JP
Ul9yZWdfVDIsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMCwgcm0pKTsKICAgICB9CiAKLSNpZiBD
UFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZGl2KFJlZ2lzdGVySUQg
cmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBBU1NFUlQo
IUJhZFJlZyhyZCkpOwpAQCAtMTQxNSw3ICsxNDEyLDYgQEAgcHVibGljOgogICAgICAgICBBU1NF
UlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3Vy
Rm91cnMoT1BfU0RJVl9UMSwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAweGYsIHJtKSk7CiAgICAg
fQotI2VuZGlmCiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc211bGwoUmVnaXN0ZXJJRCByZExv
LCBSZWdpc3RlcklEIHJkSGksIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewpA
QCAtMTc1Myw3ICsxNzQ5LDYgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3Jk
T3AxMlJlZzQwSW1tM1JlZzRJbW0yMEltbTUoT1BfVUJGWF9UMSwgcmQsIHJuLCAobHNiICYgMHgx
YykgPDwgMTAsIChsc2IgJiAweDMpIDw8IDYsICh3aWR0aCAtIDEpICYgMHgxZik7CiAgICAgfQog
Ci0jaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdWRpdihSZWdp
c3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFCYWRSZWcocmQpKTsKQEAgLTE3NjEsNyArMTc1Niw2IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJS
ZWc0Rm91ckZvdXJzKE9QX1VESVZfVDEsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMHhmLCBybSkp
OwogICAgIH0KLSNlbmRpZgogCiAgICAgdm9pZCB2YWRkKEZQRG91YmxlUmVnaXN0ZXJJRCByZCwg
RlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjgwODc0ZTYz
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxMyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQVNTRU1CTEVS
KSAmJiBDUFUoQVJNX1RIVU1CMikKKworI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQVJNdjcuaCIK
KworI2lmIE9TKFFOWCkKKyNpbmNsdWRlIDxzeXMvc3lzcGFnZS5oPgorI2VuZGlmCisKK25hbWVz
cGFjZSBKU0MgeworCitzdGF0aWMgYm9vbCBpc0ludGVnZXJEaXZTdXBwb3J0ZWQoKQoreworI2lm
IE9TKFFOWCkgJiYgZGVmaW5lZChBUk1fQ1BVX0ZMQUdfSURJVikKKyAgICB1bnNpZ25lZCBpbnQg
ZmxhZ3MgPSBTWVNQQUdFX0VOVFJZKGNwdWluZm8pLT5mbGFnczsKKyAgICBpZiAoZmxhZ3MgJiBB
Uk1fQ1BVX0ZMQUdfSURJVikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2NvbnN0IGJvb2wgTWFjcm9Bc3NlbWJsZXJBUk12Nzo6c19pc0ludGVn
ZXJEaXZTdXBwb3J0ZWQgPSBpc0ludGVnZXJEaXZTdXBwb3J0ZWQoKTsKKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKEFTU0VNQkxFUikgJiYgQ1BVKEFSTV9USFVNQjIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDM5
NjM1NmU4OGYuLmRjYmYyMWZiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC03OTMsOCArNzkzLDEwIEBAIHB1
YmxpYzoKICAgICB9CiAjZW5kaWYKIAotICAgIC8vIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnM6
CisgICAgLy8gSW50ZWdlciBvcGVyYXRpb25zLgorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzSW50
ZWdlckRpdigpIHsgcmV0dXJuIHNfaXNJbnRlZ2VyRGl2U3VwcG9ydGVkOyB9CiAKKyAgICAvLyBG
bG9hdGluZy1wb2ludCBvcGVyYXRpb25zLgogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRp
bmdQb2ludCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTkwNiw2ICsxOTA4
LDggQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBib29sIG1fbWFrZUp1bXBQYXRjaGFibGU7CisK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCBzX2lzSW50ZWdlckRpdlN1cHBvcnRlZDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKaW5kZXgg
Yjg4M2FlZTZjNi4uZDRjZDQxMzI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVk
ZSAiT3B0aW9ucy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiVmly
dHVhbFJlZ2lzdGVyLmgiCiAKIC8qIERGR19FTkFCTEUoKSAtIHR1cm4gb24gYSBzcGVjaWZpYyBm
ZWF0dXJlcyBpbiB0aGUgREZHIEpJVCAqLwpAQCAtMTAwLDEwICsxMDEsMTIgQEAgZW51bSBSZWZO
b2RlTW9kZSB7CiAgICAgRG9udFJlZk5vZGUKIH07CiAKLWlubGluZSBib29sIGlzQVJNdjdzKCkK
K2lubGluZSBib29sIGlzQVJNV2l0aEludGVnZXJEaXYoKQogewogI2lmIENQVShBUFBMRV9BUk1W
N1MpCiAgICAgcmV0dXJuIHRydWU7CisjZWxpZiBDUFUoQVJNX1RIVU1CMikgJiYgT1MoUU5YKQor
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2KCk7CiAjZWxzZQog
ICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKaW5kZXggOWQzM2Y5ZjQ5ZC4uMTgyZGYyMTEyNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBBcml0aERpdjogewogICAgICAgICAgICAgaWYgKE5vZGU6
OnNob3VsZFNwZWN1bGF0ZUludGVnZXJGb3JBcml0aG1ldGljKG5vZGUtPmNoaWxkMSgpLm5vZGUo
KSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKQogICAgICAgICAgICAgICAgICYmIG5vZGUtPmNhblNw
ZWN1bGF0ZUludGVnZXIoKSkgewotICAgICAgICAgICAgICAgIGlmIChpc1g4NigpIHx8IGlzQVJN
djdzKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNYODYoKSB8fCBpc0FSTVdpdGhJbnRlZ2Vy
RGl2KCkpIHsKICAgICAgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRh
YmxlPEludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgICAgIHNldFVz
ZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggYzg3YTkxNzM0YS4uZjE5NThkM2UzNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTI4
NzYsMTIgKzI4NzYsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2Yo
Tm9kZSogbm9kZSkKICNlbmRpZgogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29m
dE1vZHVsbyhOb2RlKiBub2RlKQorI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCit2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0Zvclg4NihOb2RlKiBub2RlKQogewogICAg
IC8vIEluIHRoZSBmYXN0IHBhdGgsIHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBiZSB0aGUgZmlu
YWwgcmVzdWx0CiAgICAgLy8gKGluIGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZpc29yfCksIHNv
IHdlIHNwZWN1bGF0ZSBpdCBhcyBzdHJpY3QgaW50MzIuCiAgICAgU3BlY3VsYXRlU3RyaWN0SW50
MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0jaWYgQ1BVKFg4NikgfHwgQ1BV
KFg4Nl82NCkKICAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkp
IHsKICAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFsdWVPZkludDMyQ29uc3RhbnQobm9kZS0+
Y2hpbGQyKCkubm9kZSgpKTsKICAgICAgICAgaWYgKGRpdmlzb3IpIHsKQEAgLTI5MjEsMzAgKzI5
MjEsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBub2Rl
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotI2VsaWYgQ1BVKEFQUExF
X0FSTVY3UykKLSAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkp
IHsKLSAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFsdWVPZkludDMyQ29uc3RhbnQobm9kZS0+
Y2hpbGQyKCkubm9kZSgpKTsKLSAgICAgICAgaWYgKGRpdmlzb3IgPiAwICYmIGhhc09uZUJpdFNl
dChkaXZpc29yKSkgeyAvLyBJZiBwb3dlciBvZiAyIHRoZW4ganVzdCBtYXNrCi0gICAgICAgICAg
ICBHUFJSZWcgZGl2aWRlbmRHUFIgPSBvcDEuZ3ByKCk7Ci0gICAgICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5n
cHIoKTsKLQotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuY21wKGRpdmlkZW5kR1BSLCBB
Uk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oMCkpOwotICAgICAgICAgICAgbV9qaXQu
YXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkxULCBmYWxzZSk7Ci0gICAg
ICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0R1BSLCBkaXZpZGVuZEdQUik7Ci0g
ICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5tb3YocmVzdWx0R1BSLCBkaXZpZGVuZEdQUik7
Ci0gICAgICAgICAgICBtX2ppdC5hbmQzMihUcnVzdGVkSW1tMzIoZGl2aXNvciAtIDEpLCByZXN1
bHRHUFIpOwotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6
OkNvbmRpdGlvbkxUKTsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLm5lZyhyZXN1bHRH
UFIsIHJlc3VsdEdQUik7Ci0KLSAgICAgICAgICAgIGludGVnZXJSZXN1bHQocmVzdWx0R1BSLCBu
b2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgogCiAg
ICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLSNp
ZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorCiAgICAgR1BSVGVtcG9yYXJ5IGVheCh0aGlzLCBY
ODZSZWdpc3RlcnM6OmVheCk7CiAgICAgR1BSVGVtcG9yYXJ5IGVkeCh0aGlzLCBYODZSZWdpc3Rl
cnM6OmVkeCk7CiAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKQEAgLTMwMDgsMTAgKzI5
ODcsMzcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9k
ZSkKICAgICAKICAgICBpZiAob3AxU2F2ZUdQUiAhPSBvcDFHUFIpCiAgICAgICAgIHVubG9jayhv
cDFTYXZlR1BSKTsKLSAgICAgICAgICAgIAorCiAgICAgaW50ZWdlclJlc3VsdChlZHguZ3ByKCks
IG5vZGUpOworfQorI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKK3ZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvRm9yQVJNKE5vZGUqIG5vZGUpCit7CisgICAgLy8gSW4g
dGhlIGZhc3QgcGF0aCwgdGhlIGRpdmlkZW5kIHZhbHVlIGNvdWxkIGJlIHRoZSBmaW5hbCByZXN1
bHQKKyAgICAvLyAoaW4gY2FzZSBvZiB8ZGl2aWRlbmR8IDwgfGRpdmlzb3J8KSwgc28gd2Ugc3Bl
Y3VsYXRlIGl0IGFzIHN0cmljdCBpbnQzMi4KKyAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJh
bmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5v
ZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKKyAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFsdWVP
ZkludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKKyAgICAgICAgaWYgKGRpdmlz
b3IgPiAwICYmIGhhc09uZUJpdFNldChkaXZpc29yKSkgeyAvLyBJZiBwb3dlciBvZiAyIHRoZW4g
anVzdCBtYXNrCisgICAgICAgICAgICBHUFJSZWcgZGl2aWRlbmRHUFIgPSBvcDEuZ3ByKCk7Cisg
ICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAgR1BSUmVn
IHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVy
KCkuY21wKGRpdmlkZW5kR1BSLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oMCkp
OworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNvbmRp
dGlvbkxULCBmYWxzZSk7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0
R1BSLCBkaXZpZGVuZEdQUik7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5tb3YocmVz
dWx0R1BSLCBkaXZpZGVuZEdQUik7CisgICAgICAgICAgICBtX2ppdC5hbmQzMihUcnVzdGVkSW1t
MzIoZGl2aXNvciAtIDEpLCByZXN1bHRHUFIpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVy
KCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkxUKTsKKyAgICAgICAgICAgIG1faml0LmFz
c2VtYmxlcigpLm5lZyhyZXN1bHRHUFIsIHJlc3VsdEdQUik7CisKKyAgICAgICAgICAgIGludGVn
ZXJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5j
aGlsZDIoKSk7CiAKLSNlbGlmIENQVShBUFBMRV9BUk1WN1MpCiAgICAgR1BSVGVtcG9yYXJ5IHRl
bXAodGhpcyk7CiAgICAgR1BSVGVtcG9yYXJ5IHF1b3RpZW50VGhlblJlbWFpbmRlcih0aGlzKTsK
ICAgICBHUFJUZW1wb3JhcnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7CkBAIC0zMDM0LDcgKzMwNDAs
MTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9kZSkK
ICAgICB9CiAKICAgICBpbnRlZ2VyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgbm9k
ZSk7Ci0jZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRoYXQgY2FuIGRvIGludGVnZXIgZGl2aXNp
b24KK30KKyNlbmRpZgorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhO
b2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBvcDEodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBu
b2RlLT5jaGlsZDIoKSk7CisKICAgICAvLyBEbyB0aGlzIHRoZSAqc2FmZXN0KiB3YXkgcG9zc2li
bGU6IGNhbGwgb3V0IHRvIGEgQyBmdW5jdGlvbiB0aGF0IHdpbGwgZG8gdGhlIG1vZHVsbywKICAg
ICAvLyBhbmQgdGhlbiBhdHRlbXB0IHRvIGNvbnZlcnQgYmFjay4KICAgICBHUFJSZWcgb3AxR1BS
ID0gb3AxLmdwcigpOwpAQCAtMzA1Miw3ICszMDY1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9kZSkKICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJm
bG93LCBKU1ZhbHVlUmVncygpLCAwLCBmYWlsdXJlQ2FzZXMpOwogICAgIAogICAgIGludGVnZXJS
ZXN1bHQoaW50UmVzdWx0LmdwcigpLCBub2RlKTsKLSNlbmRpZiAvLyBDUFUoWDg2KSB8fCBDUFUo
WDg2XzY0KQogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQWRkKE5vZGUqIG5vZGUp
CkBAIC0zNDQ4LDggKzM0NjAsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW50ZWdl
ckFyaXRoRGl2Rm9yWDg2KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICBpbnRlZ2VyUmVz
dWx0KGVheC5ncHIoKSwgbm9kZSk7CiB9Ci0jZWxpZiBDUFUoQVBQTEVfQVJNVjdTKQotdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTXY3cyhOb2RlKiBub2Rl
KQorI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0oTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxhdGVJ
bnRlZ2VyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIFNwZWN1bGF0ZUlu
dGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CkBAIC0zNDgzLDcgKzM0OTUs
MTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5vZGUqIG5vZGUpCiB7
CiAgICAgc3dpdGNoIChub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICBjYXNlIEludDMyVXNl
OiB7CisjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyAgICAgICAgY29tcGlsZVNvZnRNb2R1
bG9Gb3JYODYobm9kZSk7CisjZWxpZiBDUFUoQVBQTEVfQVJNVjdTKQorICAgICAgICBjb21waWxl
U29mdE1vZHVsb0ZvckFSTShub2RlKTsKKyNlbGlmIENQVShBUk1fVEhVTUIyKSAmJiBPUyhRTlgp
CisgICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2KCkpCisgICAg
ICAgICAgICBjb21waWxlU29mdE1vZHVsb0ZvckFSTShub2RlKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgY29tcGlsZVNvZnRNb2R1bG8obm9kZSk7CisjZWxzZQogICAgICAgICBjb21waWxl
U29mdE1vZHVsbyhub2RlKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRl
eCA4MjY3OWQwNDQ1Li44ODcyZmI2ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xOTcwLDEwICsxOTcwLDE1IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNvbXBpbGVBcml0aE11bChOb2RlKik7CiAjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkKICAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JYODYoTm9kZSopOwotI2VsaWYg
Q1BVKEFQUExFX0FSTVY3UykKLSAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12
N3MoTm9kZSopOworI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKKyAgICB2b2lkIGNvbXBp
bGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0oTm9kZSopOwogI2VuZGlmCiAgICAgdm9pZCBjb21waWxl
QXJpdGhNb2QoTm9kZSopOworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgdm9pZCBj
b21waWxlU29mdE1vZHVsb0Zvclg4NihOb2RlKik7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJf
RElWKQorICAgIHZvaWQgY29tcGlsZVNvZnRNb2R1bG9Gb3JBUk0oTm9kZSopOworI2VuZGlmCiAg
ICAgdm9pZCBjb21waWxlU29mdE1vZHVsbyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0SW5k
ZXhlZFByb3BlcnR5U3RvcmFnZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbklu
dFR5cGVkQXJyYXkoY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3ImLCBOb2RlKiwgc2l6ZV90IGVs
ZW1lbnRTaXplLCBUeXBlZEFycmF5U2lnbmVkbmVzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAzNTg0NDFkMTJi
Li5lMThmZjUyYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTIyNTAsNyArMjI1MCwxMCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAjaWYgQ1BVKFg4NikKICAgICAgICAgICAg
IGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JYODYobm9kZSk7CiAjZWxpZiBDUFUoQVBQTEVfQVJN
VjdTKQotICAgICAgICAgICAgY29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTXY3cyhub2RlKTsK
KyAgICAgICAgICAgIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0obm9kZSk7CisjZWxpZiBD
UFUoQVJNX1RIVU1CMikgJiYgT1MoUU5YKQorICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVy
OjpzdXBwb3J0c0ludGVnZXJEaXYoKSkKKyAgICAgICAgICAgICAgICBjb21waWxlSW50ZWdlckFy
aXRoRGl2Rm9yQVJNKG5vZGUpOwogI2Vsc2UgLy8gQ1BVIHR5cGUgd2l0aG91dCBpbnRlZ2VyIGRp
dmlkZQogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gc2hvdWxk
IGhhdmUgYmVlbiBjb3ZlcnRlZCBpbnRvIGEgZG91YmxlIGRpdmlkZS4KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4
ZDAwOGQxMDkyLi4xNmFhYjc2OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA0LTI0ICBD
b3NtaW4gVHJ1dGEgIDxjdHJ1dGFAYmxhY2tiZXJyeS5jb20+CisKKyAgICAgICAgW1FOWF1bQVJN
XSBVc2UgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiB3aGVyZSBhdmFpbGFibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTEzOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBSZXZpZXdlZCBpbnRlcm5hbGx5
IGJ5IEdlb3JnZSBTdGFpa29zIGFuZCBBbnRob255IFNjaWFuLgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6IEFkZGVkIEVOQUJMRV9BUk1fSU5URUdFUl9ESVYuCisKIDIwMTMtMDQtMjQgIEJl
bmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBwb3N0
LWJyYW5jaCBzdG9yZSBmb3IgUmVmQ291bnRlZEJhc2U6OmRlcmVmQmFzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5k
ZXggMGRkZTcxYzhlZC4uOWY3N2U0YTE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC05NDQsNiArOTQ0LDEw
IEBACiAjZGVmaW5lIEVOQUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRpZgogCisjaWYgQ1BV
KEFQUExFX0FSTVY3UykgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhRTlgpKQorI2RlZmluZSBF
TkFCTEVfQVJNX0lOVEVHRVJfRElWIDEKKyNlbmRpZgorCiAjZGVmaW5lIEVOQUJMRV9PQkpFQ1Rf
TUFSS19MT0dHSU5HIDAKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgIUVO
QUJMRShPQkpFQ1RfTUFSS19MT0dHSU5HKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJ
T1MpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEdUSykpICYmIEVOQUJMRShD
T01QQVJFX0FORF9TV0FQKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199537</attachid>
            <date>2013-04-24 16:59:49 -0700</date>
            <delta_ts>2013-04-24 19:13:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>21458</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YTBjMWVlNTdjLi5lNmE1MGRm
NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTcsNiArNTE3LDcg
QEAgaWYgKFdURl9DUFVfQVJNKQogICAgICAgICBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAog
ICAgICAgICBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuY3BwCiAgICAgICAgIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5jcHAKKyAgICAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwCiAgICAgKQogZWxzZWlmIChXVEZfQ1BVX01JUFMpCiBlbHNlaWYgKFdURl9DUFVfWDg2
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwODIwOWEzZC4uZjYwMzIwZGJhZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTMtMDQtMjQgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbUU5YXVtBUk1dIFVz
ZSBoYXJkd2FyZSBpbnRlZ2VyIGRpdmlzaW9uIHdoZXJlIGF2YWlsYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MTM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkg
R2VvcmdlIFN0YWlrb3MgYW5kIEFudGhvbnkgU2NpYW4uCisKKyAgICAgICAgVXNlIHRoZSBTRElW
IGFuZCBVRElWIGluc3RydWN0aW9ucyBvbiBRTlgvQVJNIHdoZW4gdGhlIENQVSBmbGFncworICAg
ICAgICBpbmRpY2F0ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIGhhcmR3YXJlIGludGVnZXIgZGl2aXNp
b24uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6
OkFSTXY3QXNzZW1ibGVyOjpzZGl2KTogRGlkIG5vdCBjb21waWxlIGNvbmRpdGlvbmFsbHkuCisg
ICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp1ZGl2KTogRGl0dG8uCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6aXNJ
bnRlZ2VyRGl2U3VwcG9ydGVkKTogQWRkZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9y
dHNJbnRlZ2VyRGl2KTogQWRkZWQuCisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAg
ICAoSlNDOjpERkc6OmlzQVJNV2l0aEludGVnZXJEaXYpOiBDaGFuZ2VkIGZyb20gaXNBUk12N3Mu
CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZp
eHVwUGhhc2U6OmZpeHVwTm9kZSk6IFVzZWQgaXNBUk1XaXRoSW50ZWdlckRpdi4KKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0Zvclg4Nik6IEFkZGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0ZvckFSTSk6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyk6IFNwbGl0
IG9mZiB0aGUgWDg2IGFuZCBBUk0gY29kZWdlbi4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTSk6IFJlbmFtZWQgZnJvbSBjb21w
aWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNdjcuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6IEFsbG93ZWQgcnVuLXRpbWUgZGV0ZWN0aW9uIG9mIGlu
dGVnZXIgZGl2IG9uIEFSTS4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAg
ICAgICAgKFNwZWN1bGF0aXZlSklUKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBB
bGxvd2VkIHJ1bi10aW1lIGRldGVjdGlvbiBvZiBpbnRlZ2VyIGRpdiBvbiBBUk0uCisKIDIwMTMt
MDQtMjQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICAzMi1i
aXQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBjMDhjNzU1ZjVmLi5hZThmYTc4ZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNzMsNiArNzMsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29k
ZVJlZi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDdhYTRlNmQ4MC4uMjVl
ZmJjNDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3NCw2ICs1NzQsNyBA
QAogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REQxMUEy
MTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCAqLzsgfTsKIAkJODZDNTY4RTEx
MUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8q
IE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg2QzU2OEUyMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhE
RjExQTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2QzU2OEU0RkI5Mjg2N0ExNkZEMTAwMiAv
KiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2QzU2OEUzRkI5Mjg2N0ExNkZEMTAwMiAvKiBNYWNyb0Fzc2VtYmxl
ckFSTXY3LmNwcCAqLzsgfTsKIAkJODZDQTAzMkUxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFi
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZD
QTAzMkQxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuY3BwICovOyB9OwogCQk4NkNBRkVF
MzEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQUZFRTIxMDM1RERFNjAwMjhBNjA5IC8qIEV4ZWN1
dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4NkNDODVBMTBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQzg1QTAwRUU3OUE0NzAwMjg4Njgy
IC8qIEpJVElubGluZXMuaCAqLzsgfTsKQEAgLTE0NzcsNiArMTQ3OCw3IEBACiAJCTg2QzU2OERE
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxlckFSTS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERFMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2Vt
Ymxlck1JUFMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjcm9Bc3NlbWJs
ZXJNSVBTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERGMTFBMjEzRUUw
MDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1JUFNBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZDNTY4
RTNGQjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0EwMzJEMTAzOEU4NDQwMDI4QTYwOSAvKiBFeGVj
dXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1dGFi
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkNBRkVFMjEwMzVEREU2MDAy
OEE2MDkgLyogRXhlY3V0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0M4NUEwMEVFNzlB
NDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpJVElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDUsNiAr
Mjg0Nyw3IEBACiAJCQkJODZDMzZFRTkwRUUxMjg5RDAwQjNERjU5IC8qIE1hY3JvQXNzZW1ibGVy
LmggKi8sCiAJCQkJODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJN
LmNwcCAqLywKIAkJCQk4NkQzQjJDMjEwMTU2QkRFMDAyODY1RTcgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uaCAqLywKKwkJCQk4NkM1NjhFM0ZCOTI4NjdBMTZGRDEwMDIgLyogTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAgKi8sCiAJCQkJODZBREQxNDQwRkRERUE5ODAwMDZFRUMyIC8qIE1hY3JvQXNzZW1i
bGVyQVJNdjcuaCAqLywKIAkJCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmLmggKi8sCiAJCQkJODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3Jv
QXNzZW1ibGVyTUlQUy5oICovLApAQCAtMzk3Nyw2ICszOTgwLDcgQEAKIAkJCQkxNEI3MjNCMjEy
RDdEQTQ2MDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2VtYmxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODZDNTY4RTRGQjkyODY3QTE2RkQxMDAyIC8qIE1h
Y3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZBRTY0QTgxMzVFNUUx
QzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMy
QjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQyRDZGMDgxMzUzOUEyODAwQjAyRTg2IC8qIE1hcmtlZEJsb2NrLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
Uk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCmluZGV4IDI4OTg5NTQ5ZDQuLjA3OWI1MDk1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTY2MSwxMCArNjYx
LDggQEAgcHJpdmF0ZToKICAgICAgICAgT1BfUk9SX3JlZ19UMiAgID0gMHhGQTYwLAogICAgICAg
ICBPUF9DTFogICAgICAgICAgPSAweEZBQjAsCiAgICAgICAgIE9QX1NNVUxMX1QxICAgICA9IDB4
RkI4MCwKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgICAgICBPUF9TRElWX1QxICAgICAgPSAw
eEZCOTAsCiAgICAgICAgIE9QX1VESVZfVDEgICAgICA9IDB4RkJCMCwKLSNlbmRpZgogICAgIH0g
T3Bjb2RlSUQxOwogCiAgICAgdHlwZWRlZiBlbnVtIHsKQEAgLTE0MDcsNyArMTQwNSw2IEBAIHB1
YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1JP
Ul9yZWdfVDIsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMCwgcm0pKTsKICAgICB9CiAKLSNpZiBD
UFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZGl2KFJlZ2lzdGVySUQg
cmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBBU1NFUlQo
IUJhZFJlZyhyZCkpOwpAQCAtMTQxNSw3ICsxNDEyLDYgQEAgcHVibGljOgogICAgICAgICBBU1NF
UlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3Vy
Rm91cnMoT1BfU0RJVl9UMSwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAweGYsIHJtKSk7CiAgICAg
fQotI2VuZGlmCiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc211bGwoUmVnaXN0ZXJJRCByZExv
LCBSZWdpc3RlcklEIHJkSGksIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewpA
QCAtMTc1Myw3ICsxNzQ5LDYgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3Jk
T3AxMlJlZzQwSW1tM1JlZzRJbW0yMEltbTUoT1BfVUJGWF9UMSwgcmQsIHJuLCAobHNiICYgMHgx
YykgPDwgMTAsIChsc2IgJiAweDMpIDw8IDYsICh3aWR0aCAtIDEpICYgMHgxZik7CiAgICAgfQog
Ci0jaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdWRpdihSZWdp
c3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFCYWRSZWcocmQpKTsKQEAgLTE3NjEsNyArMTc1Niw2IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJS
ZWc0Rm91ckZvdXJzKE9QX1VESVZfVDEsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMHhmLCBybSkp
OwogICAgIH0KLSNlbmRpZgogCiAgICAgdm9pZCB2YWRkKEZQRG91YmxlUmVnaXN0ZXJJRCByZCwg
RlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODE1MjU4NDRj
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxMyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQVNTRU1CTEVS
KSAmJiBDUFUoQVJNX1RIVU1CMikKKworI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQVJNdjcuaCIK
KworI2lmIE9TKFFOWCkKKyNpbmNsdWRlIDxzeXMvc3lzcGFnZS5oPgorI2VuZGlmCisKK25hbWVz
cGFjZSBKU0MgeworCitzdGF0aWMgYm9vbCBpc0ludGVnZXJEaXZTdXBwb3J0ZWQoKQoreworI2lm
IE9TKFFOWCkgJiYgZGVmaW5lZChBUk1fQ1BVX0ZMQUdfSURJVikKKyAgICB1bnNpZ25lZCBmbGFn
cyA9IFNZU1BBR0VfRU5UUlkoY3B1aW5mbyktPmZsYWdzOworICAgIGlmIChmbGFncyAmIEFSTV9D
UFVfRkxBR19JRElWKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIHJldHVybiBm
YWxzZTsKK30KKworY29uc3QgYm9vbCBNYWNyb0Fzc2VtYmxlckFSTXY3OjpzX2lzSW50ZWdlckRp
dlN1cHBvcnRlZCA9IGlzSW50ZWdlckRpdlN1cHBvcnRlZCgpOworCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNX1RIVU1CMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggMzk2MzU2
ZTg4Zi4uZGNiZjIxZmJjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTc5Myw4ICs3OTMsMTAgQEAgcHVibGlj
OgogICAgIH0KICNlbmRpZgogCi0gICAgLy8gRmxvYXRpbmctcG9pbnQgb3BlcmF0aW9uczoKKyAg
ICAvLyBJbnRlZ2VyIG9wZXJhdGlvbnMuCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNJbnRlZ2Vy
RGl2KCkgeyByZXR1cm4gc19pc0ludGVnZXJEaXZTdXBwb3J0ZWQ7IH0KIAorICAgIC8vIEZsb2F0
aW5nLXBvaW50IG9wZXJhdGlvbnMuCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1Bv
aW50KCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQ
b2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CkBAIC0xOTA2LDYgKzE5MDgsOCBA
QCBwcml2YXRlOgogICAgIH0KIAogICAgIGJvb2wgbV9tYWtlSnVtcFBhdGNoYWJsZTsKKworICAg
IHN0YXRpYyBjb25zdCBib29sIHNfaXNJbnRlZ2VyRGl2U3VwcG9ydGVkOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAppbmRleCBiODgz
YWVlNmM2Li4zMWVhZTk4NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVP
cmlnaW4uaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIApAQCAtMTAwLDEwICsxMDEsMTIgQEAg
ZW51bSBSZWZOb2RlTW9kZSB7CiAgICAgRG9udFJlZk5vZGUKIH07CiAKLWlubGluZSBib29sIGlz
QVJNdjdzKCkKK2lubGluZSBib29sIGlzQVJNV2l0aEludGVnZXJEaXYoKQogewogI2lmIENQVShB
UFBMRV9BUk1WN1MpCiAgICAgcmV0dXJuIHRydWU7CisjZWxpZiBDUFUoQVJNX1RIVU1CMikgJiYg
T1MoUU5YKQorICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2KCk7
CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggOWQzM2Y5ZjQ5ZC4uMTgyZGYyMTEyNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMTMsNyAr
MjEzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBBcml0aERpdjogewogICAgICAgICAgICAg
aWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUludGVnZXJGb3JBcml0aG1ldGljKG5vZGUtPmNoaWxk
MSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKQogICAgICAgICAgICAgICAgICYmIG5v
ZGUtPmNhblNwZWN1bGF0ZUludGVnZXIoKSkgewotICAgICAgICAgICAgICAgIGlmIChpc1g4Nigp
IHx8IGlzQVJNdjdzKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNYODYoKSB8fCBpc0FSTVdp
dGhJbnRlZ2VyRGl2KCkpIHsKICAgICAgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94
SWZQcm9maXRhYmxlPEludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQy
KCkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggYzg3YTkxNzM0YS4uZjE5NThkM2Uz
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKQEAgLTI4NzYsMTIgKzI4NzYsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlu
c3RhbmNlT2YoTm9kZSogbm9kZSkKICNlbmRpZgogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlU29mdE1vZHVsbyhOb2RlKiBub2RlKQorI2lmIENQVShYODYpIHx8IENQVShYODZfNjQp
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0Zvclg4NihOb2RlKiBub2Rl
KQogewogICAgIC8vIEluIHRoZSBmYXN0IHBhdGgsIHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBi
ZSB0aGUgZmluYWwgcmVzdWx0CiAgICAgLy8gKGluIGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZp
c29yfCksIHNvIHdlIHNwZWN1bGF0ZSBpdCBhcyBzdHJpY3QgaW50MzIuCiAgICAgU3BlY3VsYXRl
U3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0jaWYgQ1BVKFg4
NikgfHwgQ1BVKFg4Nl82NCkKICAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigp
Lm5vZGUoKSkpIHsKICAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFsdWVPZkludDMyQ29uc3Rh
bnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKICAgICAgICAgaWYgKGRpdmlzb3IpIHsKQEAgLTI5
MjEsMzAgKzI5MjEsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhO
b2RlKiBub2RlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotI2VsaWYg
Q1BVKEFQUExFX0FSTVY3UykKLSAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigp
Lm5vZGUoKSkpIHsKLSAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFsdWVPZkludDMyQ29uc3Rh
bnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKLSAgICAgICAgaWYgKGRpdmlzb3IgPiAwICYmIGhh
c09uZUJpdFNldChkaXZpc29yKSkgeyAvLyBJZiBwb3dlciBvZiAyIHRoZW4ganVzdCBtYXNrCi0g
ICAgICAgICAgICBHUFJSZWcgZGl2aWRlbmRHUFIgPSBvcDEuZ3ByKCk7Ci0gICAgICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9
IHJlc3VsdC5ncHIoKTsKLQotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuY21wKGRpdmlk
ZW5kR1BSLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oMCkpOwotICAgICAgICAg
ICAgbV9qaXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkxULCBmYWxz
ZSk7Ci0gICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0R1BSLCBkaXZpZGVu
ZEdQUik7Ci0gICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5tb3YocmVzdWx0R1BSLCBkaXZp
ZGVuZEdQUik7Ci0gICAgICAgICAgICBtX2ppdC5hbmQzMihUcnVzdGVkSW1tMzIoZGl2aXNvciAt
IDEpLCByZXN1bHRHUFIpOwotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdB
c3NlbWJsZXI6OkNvbmRpdGlvbkxUKTsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLm5l
ZyhyZXN1bHRHUFIsIHJlc3VsdEdQUik7Ci0KLSAgICAgICAgICAgIGludGVnZXJSZXN1bHQocmVz
dWx0R1BSLCBub2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSNl
bmRpZgogCiAgICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxk
MigpKTsKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorCiAgICAgR1BSVGVtcG9yYXJ5IGVh
eCh0aGlzLCBYODZSZWdpc3RlcnM6OmVheCk7CiAgICAgR1BSVGVtcG9yYXJ5IGVkeCh0aGlzLCBY
ODZSZWdpc3RlcnM6OmVkeCk7CiAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKQEAgLTMw
MDgsMTAgKzI5ODcsMzcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8o
Tm9kZSogbm9kZSkKICAgICAKICAgICBpZiAob3AxU2F2ZUdQUiAhPSBvcDFHUFIpCiAgICAgICAg
IHVubG9jayhvcDFTYXZlR1BSKTsKLSAgICAgICAgICAgIAorCiAgICAgaW50ZWdlclJlc3VsdChl
ZHguZ3ByKCksIG5vZGUpOworfQorI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvRm9yQVJNKE5vZGUqIG5vZGUpCit7Cisg
ICAgLy8gSW4gdGhlIGZhc3QgcGF0aCwgdGhlIGRpdmlkZW5kIHZhbHVlIGNvdWxkIGJlIHRoZSBm
aW5hbCByZXN1bHQKKyAgICAvLyAoaW4gY2FzZSBvZiB8ZGl2aWRlbmR8IDwgfGRpdmlzb3J8KSwg
c28gd2Ugc3BlY3VsYXRlIGl0IGFzIHN0cmljdCBpbnQzMi4KKyAgICBTcGVjdWxhdGVTdHJpY3RJ
bnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBpZiAoaXNJbnQzMkNv
bnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKKyAgICAgICAgaW50MzJfdCBkaXZpc29y
ID0gdmFsdWVPZkludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKKyAgICAgICAg
aWYgKGRpdmlzb3IgPiAwICYmIGhhc09uZUJpdFNldChkaXZpc29yKSkgeyAvLyBJZiBwb3dlciBv
ZiAyIHRoZW4ganVzdCBtYXNrCisgICAgICAgICAgICBHUFJSZWcgZGl2aWRlbmRHUFIgPSBvcDEu
Z3ByKCk7CisgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICAg
ICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAgICAgICAgICAgbV9qaXQu
YXNzZW1ibGVyKCkuY21wKGRpdmlkZW5kR1BSLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29k
ZWRJbW0oMCkpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJs
ZXI6OkNvbmRpdGlvbkxULCBmYWxzZSk7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5u
ZWcocmVzdWx0R1BSLCBkaXZpZGVuZEdQUik7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIo
KS5tb3YocmVzdWx0R1BSLCBkaXZpZGVuZEdQUik7CisgICAgICAgICAgICBtX2ppdC5hbmQzMihU
cnVzdGVkSW1tMzIoZGl2aXNvciAtIDEpLCByZXN1bHRHUFIpOworICAgICAgICAgICAgbV9qaXQu
YXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkxUKTsKKyAgICAgICAgICAg
IG1faml0LmFzc2VtYmxlcigpLm5lZyhyZXN1bHRHUFIsIHJlc3VsdEdQUik7CisKKyAgICAgICAg
ICAgIGludGVnZXJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlz
LCBub2RlLT5jaGlsZDIoKSk7CiAKLSNlbGlmIENQVShBUFBMRV9BUk1WN1MpCiAgICAgR1BSVGVt
cG9yYXJ5IHRlbXAodGhpcyk7CiAgICAgR1BSVGVtcG9yYXJ5IHF1b3RpZW50VGhlblJlbWFpbmRl
cih0aGlzKTsKICAgICBHUFJUZW1wb3JhcnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7CkBAIC0zMDM0
LDcgKzMwNDAsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9k
ZSogbm9kZSkKICAgICB9CiAKICAgICBpbnRlZ2VyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRl
ckdQUiwgbm9kZSk7Ci0jZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRoYXQgY2FuIGRvIGludGVn
ZXIgZGl2aXNpb24KK30KKyNlbmRpZgorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29m
dE1vZHVsbyhOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBv
cDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9w
Mih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisKICAgICAvLyBEbyB0aGlzIHRoZSAqc2FmZXN0KiB3
YXkgcG9zc2libGU6IGNhbGwgb3V0IHRvIGEgQyBmdW5jdGlvbiB0aGF0IHdpbGwgZG8gdGhlIG1v
ZHVsbywKICAgICAvLyBhbmQgdGhlbiBhdHRlbXB0IHRvIGNvbnZlcnQgYmFjay4KICAgICBHUFJS
ZWcgb3AxR1BSID0gb3AxLmdwcigpOwpAQCAtMzA1Miw3ICszMDY1LDYgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9kZSkKICAgICBzcGVjdWxhdGlvbkNo
ZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBmYWlsdXJlQ2FzZXMpOwogICAgIAogICAg
IGludGVnZXJSZXN1bHQoaW50UmVzdWx0LmdwcigpLCBub2RlKTsKLSNlbmRpZiAvLyBDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KQogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQWRkKE5v
ZGUqIG5vZGUpCkBAIC0zNDQ4LDggKzM0NjAsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlSW50ZWdlckFyaXRoRGl2Rm9yWDg2KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICBp
bnRlZ2VyUmVzdWx0KGVheC5ncHIoKSwgbm9kZSk7CiB9Ci0jZWxpZiBDUFUoQVBQTEVfQVJNVjdT
KQotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTXY3cyhO
b2RlKiBub2RlKQorI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKK3ZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0oTm9kZSogbm9kZSkKIHsKICAgICBT
cGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIFNw
ZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CkBAIC0zNDgz
LDcgKzM0OTUsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5vZGUq
IG5vZGUpCiB7CiAgICAgc3dpdGNoIChub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICBjYXNl
IEludDMyVXNlOiB7CisjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyAgICAgICAgY29tcGls
ZVNvZnRNb2R1bG9Gb3JYODYobm9kZSk7CisjZWxpZiBDUFUoQVBQTEVfQVJNVjdTKQorICAgICAg
ICBjb21waWxlU29mdE1vZHVsb0ZvckFSTShub2RlKTsKKyNlbGlmIENQVShBUk1fVEhVTUIyKSAm
JiBPUyhRTlgpCisgICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2
KCkpCisgICAgICAgICAgICBjb21waWxlU29mdE1vZHVsb0ZvckFSTShub2RlKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgY29tcGlsZVNvZnRNb2R1bG8obm9kZSk7CisjZWxzZQogICAgICAg
ICBjb21waWxlU29mdE1vZHVsbyhub2RlKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAppbmRleCA4MjY3OWQwNDQ1Li44ODcyZmI2ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xOTcwLDEwICsxOTcwLDE1IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNvbXBpbGVBcml0aE11bChOb2RlKik7CiAjaWYgQ1BVKFg4NikgfHwg
Q1BVKFg4Nl82NCkKICAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JYODYoTm9kZSop
OwotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykKLSAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhE
aXZGb3JBUk12N3MoTm9kZSopOworI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKKyAgICB2
b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0oTm9kZSopOwogI2VuZGlmCiAgICAgdm9p
ZCBjb21waWxlQXJpdGhNb2QoTm9kZSopOworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisg
ICAgdm9pZCBjb21waWxlU29mdE1vZHVsb0Zvclg4NihOb2RlKik7CisjZWxpZiBFTkFCTEUoQVJN
X0lOVEVHRVJfRElWKQorICAgIHZvaWQgY29tcGlsZVNvZnRNb2R1bG9Gb3JBUk0oTm9kZSopOwor
I2VuZGlmCiAgICAgdm9pZCBjb21waWxlU29mdE1vZHVsbyhOb2RlKik7CiAgICAgdm9pZCBjb21w
aWxlR2V0SW5kZXhlZFByb3BlcnR5U3RvcmFnZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0
QnlWYWxPbkludFR5cGVkQXJyYXkoY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3ImLCBOb2RlKiwg
c2l6ZV90IGVsZW1lbnRTaXplLCBUeXBlZEFycmF5U2lnbmVkbmVzcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAz
NTg0NDFkMTJiLi5lMThmZjUyYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTIyNTAsNyArMjI1MCwxMCBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAjaWYgQ1BVKFg4NikKICAg
ICAgICAgICAgIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JYODYobm9kZSk7CiAjZWxpZiBDUFUo
QVBQTEVfQVJNVjdTKQotICAgICAgICAgICAgY29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTXY3
cyhub2RlKTsKKyAgICAgICAgICAgIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0obm9kZSk7
CisjZWxpZiBDUFUoQVJNX1RIVU1CMikgJiYgT1MoUU5YKQorICAgICAgICAgICAgaWYgKE1hY3Jv
QXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYoKSkKKyAgICAgICAgICAgICAgICBjb21waWxl
SW50ZWdlckFyaXRoRGl2Rm9yQVJNKG5vZGUpOwogI2Vsc2UgLy8gQ1BVIHR5cGUgd2l0aG91dCBp
bnRlZ2VyIGRpdmlkZQogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
Ly8gc2hvdWxkIGhhdmUgYmVlbiBjb3ZlcnRlZCBpbnRvIGEgZG91YmxlIGRpdmlkZS4KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwppbmRleCA4ZDAwOGQxMDkyLi4xNmFhYjc2OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEz
LTA0LTI0ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAYmxhY2tiZXJyeS5jb20+CisKKyAgICAgICAg
W1FOWF1bQVJNXSBVc2UgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiB3aGVyZSBhdmFpbGFibGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTEzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBSZXZpZXdlZCBp
bnRlcm5hbGx5IGJ5IEdlb3JnZSBTdGFpa29zIGFuZCBBbnRob255IFNjaWFuLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtLmg6IEFkZGVkIEVOQUJMRV9BUk1fSU5URUdFUl9ESVYuCisKIDIwMTMt
MDQtMjQgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVzZSBwb3N0LWJyYW5jaCBzdG9yZSBmb3IgUmVmQ291bnRlZEJhc2U6OmRlcmVmQmFzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKaW5kZXggMGRkZTcxYzhlZC4uOWY3N2U0YTE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC05NDQs
NiArOTQ0LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRpZgog
CisjaWYgQ1BVKEFQUExFX0FSTVY3UykgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhRTlgpKQor
I2RlZmluZSBFTkFCTEVfQVJNX0lOVEVHRVJfRElWIDEKKyNlbmRpZgorCiAjZGVmaW5lIEVOQUJM
RV9PQkpFQ1RfTUFSS19MT0dHSU5HIDAKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9H
QykgJiYgIUVOQUJMRShPQkpFQ1RfTUFSS19MT0dHSU5HKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShJT1MpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEdUSykpICYm
IEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQo=
</data>
<flag name="review"
          id="221062"
          type_id="1"
          status="-"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="221063"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199607</attachid>
            <date>2013-04-24 19:13:44 -0700</date>
            <delta_ts>2013-04-24 20:46:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>21502</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YTBjMWVlNTdjLi5lNmE1MGRm
NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTcsNiArNTE3LDcg
QEAgaWYgKFdURl9DUFVfQVJNKQogICAgICAgICBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAog
ICAgICAgICBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuY3BwCiAgICAgICAgIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5jcHAKKyAgICAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwCiAgICAgKQogZWxzZWlmIChXVEZfQ1BVX01JUFMpCiBlbHNlaWYgKFdURl9DUFVfWDg2
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwODIwOWEzZC4uZjYwMzIwZGJhZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTMtMDQtMjQgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbUU5YXVtBUk1dIFVz
ZSBoYXJkd2FyZSBpbnRlZ2VyIGRpdmlzaW9uIHdoZXJlIGF2YWlsYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MTM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkg
R2VvcmdlIFN0YWlrb3MgYW5kIEFudGhvbnkgU2NpYW4uCisKKyAgICAgICAgVXNlIHRoZSBTRElW
IGFuZCBVRElWIGluc3RydWN0aW9ucyBvbiBRTlgvQVJNIHdoZW4gdGhlIENQVSBmbGFncworICAg
ICAgICBpbmRpY2F0ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIGhhcmR3YXJlIGludGVnZXIgZGl2aXNp
b24uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6
OkFSTXY3QXNzZW1ibGVyOjpzZGl2KTogRGlkIG5vdCBjb21waWxlIGNvbmRpdGlvbmFsbHkuCisg
ICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp1ZGl2KTogRGl0dG8uCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6aXNJ
bnRlZ2VyRGl2U3VwcG9ydGVkKTogQWRkZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9y
dHNJbnRlZ2VyRGl2KTogQWRkZWQuCisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAg
ICAoSlNDOjpERkc6OmlzQVJNV2l0aEludGVnZXJEaXYpOiBDaGFuZ2VkIGZyb20gaXNBUk12N3Mu
CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZp
eHVwUGhhc2U6OmZpeHVwTm9kZSk6IFVzZWQgaXNBUk1XaXRoSW50ZWdlckRpdi4KKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0Zvclg4Nik6IEFkZGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0ZvckFSTSk6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyk6IFNwbGl0
IG9mZiB0aGUgWDg2IGFuZCBBUk0gY29kZWdlbi4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTSk6IFJlbmFtZWQgZnJvbSBjb21w
aWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNdjcuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6IEFsbG93ZWQgcnVuLXRpbWUgZGV0ZWN0aW9uIG9mIGlu
dGVnZXIgZGl2IG9uIEFSTS4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAg
ICAgICAgKFNwZWN1bGF0aXZlSklUKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBB
bGxvd2VkIHJ1bi10aW1lIGRldGVjdGlvbiBvZiBpbnRlZ2VyIGRpdiBvbiBBUk0uCisKIDIwMTMt
MDQtMjQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICAzMi1i
aXQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBjMDhjNzU1ZjVmLi5hZThmYTc4ZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNzMsNiArNzMsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29k
ZVJlZi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDdhYTRlNmQ4MC4uMjVl
ZmJjNDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3NCw2ICs1NzQsNyBA
QAogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REQxMUEy
MTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCAqLzsgfTsKIAkJODZDNTY4RTEx
MUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8q
IE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg2QzU2OEUyMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhE
RjExQTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2QzU2OEU0RkI5Mjg2N0ExNkZEMTAwMiAv
KiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2QzU2OEUzRkI5Mjg2N0ExNkZEMTAwMiAvKiBNYWNyb0Fzc2VtYmxl
ckFSTXY3LmNwcCAqLzsgfTsKIAkJODZDQTAzMkUxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFi
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZD
QTAzMkQxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuY3BwICovOyB9OwogCQk4NkNBRkVF
MzEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQUZFRTIxMDM1RERFNjAwMjhBNjA5IC8qIEV4ZWN1
dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4NkNDODVBMTBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQzg1QTAwRUU3OUE0NzAwMjg4Njgy
IC8qIEpJVElubGluZXMuaCAqLzsgfTsKQEAgLTE0NzcsNiArMTQ3OCw3IEBACiAJCTg2QzU2OERE
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxlckFSTS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERFMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2Vt
Ymxlck1JUFMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjcm9Bc3NlbWJs
ZXJNSVBTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERGMTFBMjEzRUUw
MDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1JUFNBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZDNTY4
RTNGQjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0EwMzJEMTAzOEU4NDQwMDI4QTYwOSAvKiBFeGVj
dXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1dGFi
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkNBRkVFMjEwMzVEREU2MDAy
OEE2MDkgLyogRXhlY3V0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0M4NUEwMEVFNzlB
NDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpJVElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDUsNiAr
Mjg0Nyw3IEBACiAJCQkJODZDMzZFRTkwRUUxMjg5RDAwQjNERjU5IC8qIE1hY3JvQXNzZW1ibGVy
LmggKi8sCiAJCQkJODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJN
LmNwcCAqLywKIAkJCQk4NkQzQjJDMjEwMTU2QkRFMDAyODY1RTcgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uaCAqLywKKwkJCQk4NkM1NjhFM0ZCOTI4NjdBMTZGRDEwMDIgLyogTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAgKi8sCiAJCQkJODZBREQxNDQwRkRERUE5ODAwMDZFRUMyIC8qIE1hY3JvQXNzZW1i
bGVyQVJNdjcuaCAqLywKIAkJCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmLmggKi8sCiAJCQkJODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3Jv
QXNzZW1ibGVyTUlQUy5oICovLApAQCAtMzk3Nyw2ICszOTgwLDcgQEAKIAkJCQkxNEI3MjNCMjEy
RDdEQTQ2MDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2VtYmxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODZDNTY4RTRGQjkyODY3QTE2RkQxMDAyIC8qIE1h
Y3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZBRTY0QTgxMzVFNUUx
QzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMy
QjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQyRDZGMDgxMzUzOUEyODAwQjAyRTg2IC8qIE1hcmtlZEJsb2NrLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
Uk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCmluZGV4IDI4OTg5NTQ5ZDQuLjA3OWI1MDk1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTY2MSwxMCArNjYx
LDggQEAgcHJpdmF0ZToKICAgICAgICAgT1BfUk9SX3JlZ19UMiAgID0gMHhGQTYwLAogICAgICAg
ICBPUF9DTFogICAgICAgICAgPSAweEZBQjAsCiAgICAgICAgIE9QX1NNVUxMX1QxICAgICA9IDB4
RkI4MCwKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgICAgICBPUF9TRElWX1QxICAgICAgPSAw
eEZCOTAsCiAgICAgICAgIE9QX1VESVZfVDEgICAgICA9IDB4RkJCMCwKLSNlbmRpZgogICAgIH0g
T3Bjb2RlSUQxOwogCiAgICAgdHlwZWRlZiBlbnVtIHsKQEAgLTE0MDcsNyArMTQwNSw2IEBAIHB1
YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1JP
Ul9yZWdfVDIsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMCwgcm0pKTsKICAgICB9CiAKLSNpZiBD
UFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZGl2KFJlZ2lzdGVySUQg
cmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBBU1NFUlQo
IUJhZFJlZyhyZCkpOwpAQCAtMTQxNSw3ICsxNDEyLDYgQEAgcHVibGljOgogICAgICAgICBBU1NF
UlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3Vy
Rm91cnMoT1BfU0RJVl9UMSwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAweGYsIHJtKSk7CiAgICAg
fQotI2VuZGlmCiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc211bGwoUmVnaXN0ZXJJRCByZExv
LCBSZWdpc3RlcklEIHJkSGksIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewpA
QCAtMTc1Myw3ICsxNzQ5LDYgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3Jk
T3AxMlJlZzQwSW1tM1JlZzRJbW0yMEltbTUoT1BfVUJGWF9UMSwgcmQsIHJuLCAobHNiICYgMHgx
YykgPDwgMTAsIChsc2IgJiAweDMpIDw8IDYsICh3aWR0aCAtIDEpICYgMHgxZik7CiAgICAgfQog
Ci0jaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdWRpdihSZWdp
c3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFCYWRSZWcocmQpKTsKQEAgLTE3NjEsNyArMTc1Niw2IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJS
ZWc0Rm91ckZvdXJzKE9QX1VESVZfVDEsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMHhmLCBybSkp
OwogICAgIH0KLSNlbmRpZgogCiAgICAgdm9pZCB2YWRkKEZQRG91YmxlUmVnaXN0ZXJJRCByZCwg
RlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZmFmM2YzNGUy
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxMyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQVNTRU1CTEVS
KSAmJiBDUFUoQVJNX1RIVU1CMikKKworI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQVJNdjcuaCIK
KworI2lmIE9TKFFOWCkKKyNpbmNsdWRlIDxzeXMvc3lzcGFnZS5oPgorI2VuZGlmCisKK25hbWVz
cGFjZSBKU0MgeworCitzdGF0aWMgYm9vbCBpc0ludGVnZXJEaXZTdXBwb3J0ZWQoKQoreworI2lm
IENQVShBUFBMRV9BUk1WN1MpCisgICAgcmV0dXJuIHRydWU7CisjZWxpZiBPUyhRTlgpICYmIGRl
ZmluZWQoQVJNX0NQVV9GTEFHX0lESVYpCisgICAgdW5zaWduZWQgZmxhZ3MgPSBTWVNQQUdFX0VO
VFJZKGNwdWluZm8pLT5mbGFnczsKKyAgICBpZiAoZmxhZ3MgJiBBUk1fQ1BVX0ZMQUdfSURJVikK
KyAgICAgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgor
fQorCitjb25zdCBib29sIE1hY3JvQXNzZW1ibGVyQVJNdjc6OnNfaXNJbnRlZ2VyRGl2U3VwcG9y
dGVkID0gaXNJbnRlZ2VyRGl2U3VwcG9ydGVkKCk7CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShB
U1NFTUJMRVIpICYmIENQVShBUk1fVEhVTUIyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCAzOTYzNTZlODhmLi41
MjljNzI4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtNzkzLDggKzc5MywxOSBAQCBwdWJsaWM6CiAgICAg
fQogI2VuZGlmCiAKLSAgICAvLyBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zOgorICAgIC8vIElu
dGVnZXIgb3BlcmF0aW9ucy4KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0ludGVnZXJEaXYoKQor
ICAgIHsKKyNpZiBDUFUoQVBQTEVfQVJNVjdTKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbGlm
IE9TKFFOWCkKKyAgICAgICAgcmV0dXJuIHNfaXNJbnRlZ2VyRGl2U3VwcG9ydGVkOworI2Vsc2UK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQogCisgICAgLy8gRmxvYXRpbmct
cG9pbnQgb3BlcmF0aW9ucy4KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQo
KSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50
VHJ1bmNhdGUoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9h
dGluZ1BvaW50U3FydCgpIHsgcmV0dXJuIHRydWU7IH0KQEAgLTE5MDYsNiArMTkxNyw4IEBAIHBy
aXZhdGU6CiAgICAgfQogCiAgICAgYm9vbCBtX21ha2VKdW1wUGF0Y2hhYmxlOworCisgICAgc3Rh
dGljIGNvbnN0IGJvb2wgc19pc0ludGVnZXJEaXZTdXBwb3J0ZWQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9u
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCmluZGV4IGI4ODNhZWU2
YzYuLmNlMzNlZjVjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaApAQCAt
MzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaW5jbHVkZSAiQ29kZU9yaWdp
bi5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogCkBAIC0xMDAsMTAgKzEwMSwxMCBAQCBlbnVt
IFJlZk5vZGVNb2RlIHsKICAgICBEb250UmVmTm9kZQogfTsKIAotaW5saW5lIGJvb2wgaXNBUk12
N3MoKQoraW5saW5lIGJvb2wgaXNBUk1XaXRoSW50ZWdlckRpdigpCiB7Ci0jaWYgQ1BVKEFQUExF
X0FSTVY3UykKLSAgICByZXR1cm4gdHJ1ZTsKKyNpZiBDUFUoQVJNX1RIVU1CMikKKyAgICByZXR1
cm4gTWFjcm9Bc3NlbWJsZXI6OnN1cHBvcnRzSW50ZWdlckRpdigpOwogI2Vsc2UKICAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCmluZGV4IDlkMzNmOWY0OWQuLjE4MmRmMjExMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMjEzLDcgKzIxMyw3IEBAIHByaXZhdGU6
CiAgICAgICAgIGNhc2UgQXJpdGhEaXY6IHsKICAgICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRT
cGVjdWxhdGVJbnRlZ2VyRm9yQXJpdGhtZXRpYyhub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUt
PmNoaWxkMigpLm5vZGUoKSkKICAgICAgICAgICAgICAgICAmJiBub2RlLT5jYW5TcGVjdWxhdGVJ
bnRlZ2VyKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNYODYoKSB8fCBpc0FSTXY3cygpKSB7
CisgICAgICAgICAgICAgICAgaWYgKGlzWDg2KCkgfHwgaXNBUk1XaXRoSW50ZWdlckRpdigpKSB7
CiAgICAgICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQz
MlVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5k
VW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCmluZGV4IGM4N2E5MTczNGEuLmZiNzAwYTYwZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yODc2LDEyICsy
ODc2LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqIG5v
ZGUpCiAjZW5kaWYKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8o
Tm9kZSogbm9kZSkKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG9Gb3JYODYoTm9kZSogbm9kZSkKIHsKICAgICAvLyBJbiB0
aGUgZmFzdCBwYXRoLCB0aGUgZGl2aWRlbmQgdmFsdWUgY291bGQgYmUgdGhlIGZpbmFsIHJlc3Vs
dAogICAgIC8vIChpbiBjYXNlIG9mIHxkaXZpZGVuZHwgPCB8ZGl2aXNvcnwpLCBzbyB3ZSBzcGVj
dWxhdGUgaXQgYXMgc3RyaWN0IGludDMyLgogICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFu
ZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQp
CiAgICAgaWYgKGlzSW50MzJDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CiAgICAg
ICAgIGludDMyX3QgZGl2aXNvciA9IHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigp
Lm5vZGUoKSk7CiAgICAgICAgIGlmIChkaXZpc29yKSB7CkBAIC0yOTIxLDMwICsyOTIxLDkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9kZSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSNlbGlmIENQVShBUFBMRV9BUk1WN1Mp
Ci0gICAgaWYgKGlzSW50MzJDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7Ci0gICAg
ICAgIGludDMyX3QgZGl2aXNvciA9IHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigp
Lm5vZGUoKSk7Ci0gICAgICAgIGlmIChkaXZpc29yID4gMCAmJiBoYXNPbmVCaXRTZXQoZGl2aXNv
cikpIHsgLy8gSWYgcG93ZXIgb2YgMiB0aGVuIGp1c3QgbWFzawotICAgICAgICAgICAgR1BSUmVn
IGRpdmlkZW5kR1BSID0gb3AxLmdwcigpOwotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3Vs
dCh0aGlzKTsKLSAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0K
LSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLmNtcChkaXZpZGVuZEdQUiwgQVJNVGh1bWJJ
bW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKDApKTsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxl
cigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCwgZmFsc2UpOwotICAgICAgICAgICAg
bV9qaXQuYXNzZW1ibGVyKCkubmVnKHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOwotICAgICAgICAg
ICAgbV9qaXQuYXNzZW1ibGVyKCkubW92KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOwotICAgICAg
ICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKGRpdmlzb3IgLSAxKSwgcmVzdWx0R1BSKTsK
LSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRp
b25MVCk7Ci0gICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0R1BSLCByZXN1
bHRHUFIpOwotCi0gICAgICAgICAgICBpbnRlZ2VyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKIAogICAgIFNwZWN1
bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0jaWYgQ1BVKFg4
NikgfHwgQ1BVKFg4Nl82NCkKKwogICAgIEdQUlRlbXBvcmFyeSBlYXgodGhpcywgWDg2UmVnaXN0
ZXJzOjplYXgpOwogICAgIEdQUlRlbXBvcmFyeSBlZHgodGhpcywgWDg2UmVnaXN0ZXJzOjplZHgp
OwogICAgIEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7CkBAIC0zMDA4LDEwICsyOTg3LDM3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCiAgICAg
CiAgICAgaWYgKG9wMVNhdmVHUFIgIT0gb3AxR1BSKQogICAgICAgICB1bmxvY2sob3AxU2F2ZUdQ
Uik7Ci0gICAgICAgICAgICAKKwogICAgIGludGVnZXJSZXN1bHQoZWR4LmdwcigpLCBub2RlKTsK
K30KKyNlbGlmIEVOQUJMRShBUk1fSU5URUdFUl9ESVYpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlU29mdE1vZHVsb0ZvckFSTShOb2RlKiBub2RlKQoreworICAgIC8vIEluIHRoZSBmYXN0
IHBhdGgsIHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBiZSB0aGUgZmluYWwgcmVzdWx0CisgICAg
Ly8gKGluIGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZpc29yfCksIHNvIHdlIHNwZWN1bGF0ZSBp
dCBhcyBzdHJpY3QgaW50MzIuCisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgaWYgKGlzSW50MzJDb25zdGFudChub2RlLT5jaGls
ZDIoKS5ub2RlKCkpKSB7CisgICAgICAgIGludDMyX3QgZGl2aXNvciA9IHZhbHVlT2ZJbnQzMkNv
bnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSk7CisgICAgICAgIGlmIChkaXZpc29yID4gMCAm
JiBoYXNPbmVCaXRTZXQoZGl2aXNvcikpIHsgLy8gSWYgcG93ZXIgb2YgMiB0aGVuIGp1c3QgbWFz
aworICAgICAgICAgICAgR1BSUmVnIGRpdmlkZW5kR1BSID0gb3AxLmdwcigpOworICAgICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgICAgIEdQUlJlZyByZXN1bHRH
UFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLmNtcChk
aXZpZGVuZEdQUiwgQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKDApKTsKKyAgICAg
ICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCwg
ZmFsc2UpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubmVnKHJlc3VsdEdQUiwgZGl2
aWRlbmRHUFIpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubW92KHJlc3VsdEdQUiwg
ZGl2aWRlbmRHUFIpOworICAgICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKGRpdmlz
b3IgLSAxKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFS
TXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCk7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIo
KS5uZWcocmVzdWx0R1BSLCByZXN1bHRHUFIpOworCisgICAgICAgICAgICBpbnRlZ2VyUmVzdWx0
KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwogCi0jZWxpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMp
OwogICAgIEdQUlRlbXBvcmFyeSBxdW90aWVudFRoZW5SZW1haW5kZXIodGhpcyk7CiAgICAgR1BS
VGVtcG9yYXJ5IG11bHRpcGx5QW5zd2VyKHRoaXMpOwpAQCAtMzAzNCw3ICszMDQwLDE0IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCiAgICAgfQog
CiAgICAgaW50ZWdlclJlc3VsdChxdW90aWVudFRoZW5SZW1haW5kZXJHUFIsIG5vZGUpOwotI2Vs
c2UgLy8gbm90IGFyY2hpdGVjdHVyZSB0aGF0IGNhbiBkbyBpbnRlZ2VyIGRpdmlzaW9uCit9Cisj
ZW5kaWYKKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9k
ZSkKK3sKKyAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNo
aWxkMSgpKTsKKyAgICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hp
bGQyKCkpOworCiAgICAgLy8gRG8gdGhpcyB0aGUgKnNhZmVzdCogd2F5IHBvc3NpYmxlOiBjYWxs
IG91dCB0byBhIEMgZnVuY3Rpb24gdGhhdCB3aWxsIGRvIHRoZSBtb2R1bG8sCiAgICAgLy8gYW5k
IHRoZW4gYXR0ZW1wdCB0byBjb252ZXJ0IGJhY2suCiAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5n
cHIoKTsKQEAgLTMwNTIsNyArMzA2NSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVT
b2Z0TW9kdWxvKE5vZGUqIG5vZGUpCiAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxvdywgSlNW
YWx1ZVJlZ3MoKSwgMCwgZmFpbHVyZUNhc2VzKTsKICAgICAKICAgICBpbnRlZ2VyUmVzdWx0KGlu
dFJlc3VsdC5ncHIoKSwgbm9kZSk7Ci0jZW5kaWYgLy8gQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkK
IH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFkZChOb2RlKiBub2RlKQpAQCAtMzQ0
OCw4ICszNDYwLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERp
dkZvclg4NihOb2RlKiBub2RlKQogICAgICAgICAgICAgCiAgICAgaW50ZWdlclJlc3VsdChlYXgu
Z3ByKCksIG5vZGUpOwogfQotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykKLXZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12N3MoTm9kZSogbm9kZSkKKyNlbGlm
IEVOQUJMRShBUk1fSU5URUdFUl9ESVYpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW50
ZWdlckFyaXRoRGl2Rm9yQVJNKE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlSW50ZWdlck9w
ZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICBTcGVjdWxhdGVJbnRlZ2VyT3Bl
cmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwpAQCAtMzQ4Myw3ICszNDk1LDE2IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2RlKiBub2RlKQogewogICAgIHN3
aXRjaCAobm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgY2FzZSBJbnQzMlVzZTogeworI2lm
IENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgICAgIGNvbXBpbGVTb2Z0TW9kdWxvRm9yWDg2
KG5vZGUpOworI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKKyAgICAgICAgaWYgKGlzQVJN
V2l0aEludGVnZXJEaXYoKSkKKyAgICAgICAgICAgIGNvbXBpbGVTb2Z0TW9kdWxvRm9yQVJNKG5v
ZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21waWxlU29mdE1vZHVsbyhub2RlKTsK
KyNlbHNlCiAgICAgICAgIGNvbXBpbGVTb2Z0TW9kdWxvKG5vZGUpOworI2VuZGlmCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDgyNjc5ZDA0NDUuLjg4NzJmYjZkMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTE5NzAsMTAg
KzE5NzAsMTUgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZUFyaXRoTXVsKE5vZGUqKTsKICNp
ZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQogICAgIHZvaWQgY29tcGlsZUludGVnZXJBcml0aERp
dkZvclg4NihOb2RlKik7Ci0jZWxpZiBDUFUoQVBQTEVfQVJNVjdTKQotICAgIHZvaWQgY29tcGls
ZUludGVnZXJBcml0aERpdkZvckFSTXY3cyhOb2RlKik7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVH
RVJfRElWKQorICAgIHZvaWQgY29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTShOb2RlKik7CiAj
ZW5kaWYKICAgICB2b2lkIGNvbXBpbGVBcml0aE1vZChOb2RlKik7CisjaWYgQ1BVKFg4NikgfHwg
Q1BVKFg4Nl82NCkKKyAgICB2b2lkIGNvbXBpbGVTb2Z0TW9kdWxvRm9yWDg2KE5vZGUqKTsKKyNl
bGlmIEVOQUJMRShBUk1fSU5URUdFUl9ESVYpCisgICAgdm9pZCBjb21waWxlU29mdE1vZHVsb0Zv
ckFSTShOb2RlKik7CisjZW5kaWYKICAgICB2b2lkIGNvbXBpbGVTb2Z0TW9kdWxvKE5vZGUqKTsK
ICAgICB2b2lkIGNvbXBpbGVHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsKICAgICB2
b2lkIGNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheShjb25zdCBUeXBlZEFycmF5RGVzY3Jp
cHRvciYsIE5vZGUqLCBzaXplX3QgZWxlbWVudFNpemUsIFR5cGVkQXJyYXlTaWduZWRuZXNzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCmluZGV4IDM1ODQ0MWQxMmIuLjY4OWUzYTM3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMjI0OSw4
ICsyMjQ5LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICBjYXNlIEludDMyVXNlOiB7CiAjaWYgQ1BVKFg4NikKICAgICAgICAgICAgIGNvbXBpbGVJ
bnRlZ2VyQXJpdGhEaXZGb3JYODYobm9kZSk7Ci0jZWxpZiBDUFUoQVBQTEVfQVJNVjdTKQotICAg
ICAgICAgICAgY29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTXY3cyhub2RlKTsKKyNlbGlmIEVO
QUJMRShBUk1fSU5URUdFUl9ESVYpCisgICAgICAgICAgICBBU1NFUlQoTWFjcm9Bc3NlbWJsZXI6
OnN1cHBvcnRzSW50ZWdlckRpdigpKTsKKyAgICAgICAgICAgIGNvbXBpbGVJbnRlZ2VyQXJpdGhE
aXZGb3JBUk0obm9kZSk7CiAjZWxzZSAvLyBDUFUgdHlwZSB3aXRob3V0IGludGVnZXIgZGl2aWRl
CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBzaG91bGQgaGF2
ZSBiZWVuIGNvdmVydGVkIGludG8gYSBkb3VibGUgZGl2aWRlLgogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhkMDA4
ZDEwOTIuLjE2YWFiNzY5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDQtMjQgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbUU5YXVtBUk1dIFVz
ZSBoYXJkd2FyZSBpbnRlZ2VyIGRpdmlzaW9uIHdoZXJlIGF2YWlsYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MTM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkg
R2VvcmdlIFN0YWlrb3MgYW5kIEFudGhvbnkgU2NpYW4uCisKKyAgICAgICAgKiB3dGYvUGxhdGZv
cm0uaDogQWRkZWQgRU5BQkxFX0FSTV9JTlRFR0VSX0RJVi4KKwogMjAxMy0wNC0yNCAgQmVuamFt
aW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIHBvc3QtYnJh
bmNoIHN0b3JlIGZvciBSZWZDb3VudGVkQmFzZTo6ZGVyZWZCYXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCAw
ZGRlNzFjOGVkLi45Zjc3ZTRhMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTk0NCw2ICs5NDQsMTAgQEAK
ICNkZWZpbmUgRU5BQkxFX0NPTVBBUkVfQU5EX1NXQVAgMQogI2VuZGlmCiAKKyNpZiBDUFUoQVBQ
TEVfQVJNVjdTKSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIE9TKFFOWCkpCisjZGVmaW5lIEVOQUJM
RV9BUk1fSU5URUdFUl9ESVYgMQorI2VuZGlmCisKICNkZWZpbmUgRU5BQkxFX09CSkVDVF9NQVJL
X0xPR0dJTkcgMAogCiAjaWYgIWRlZmluZWQoRU5BQkxFX1BBUkFMTEVMX0dDKSAmJiAhRU5BQkxF
KE9CSkVDVF9NQVJLX0xPR0dJTkcpICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0oR1RLKSkgJiYgRU5BQkxFKENPTVBB
UkVfQU5EX1NXQVApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199614</attachid>
            <date>2013-04-24 20:46:59 -0700</date>
            <delta_ts>2013-04-25 09:37:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>21473</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YTBjMWVlNTdjLi5lNmE1MGRm
NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTcsNiArNTE3LDcg
QEAgaWYgKFdURl9DUFVfQVJNKQogICAgICAgICBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAog
ICAgICAgICBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuY3BwCiAgICAgICAgIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5jcHAKKyAgICAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwCiAgICAgKQogZWxzZWlmIChXVEZfQ1BVX01JUFMpCiBlbHNlaWYgKFdURl9DUFVfWDg2
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwODIwOWEzZC4uZjYwMzIwZGJhZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTMtMDQtMjQgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbUU5YXVtBUk1dIFVz
ZSBoYXJkd2FyZSBpbnRlZ2VyIGRpdmlzaW9uIHdoZXJlIGF2YWlsYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MTM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkg
R2VvcmdlIFN0YWlrb3MgYW5kIEFudGhvbnkgU2NpYW4uCisKKyAgICAgICAgVXNlIHRoZSBTRElW
IGFuZCBVRElWIGluc3RydWN0aW9ucyBvbiBRTlgvQVJNIHdoZW4gdGhlIENQVSBmbGFncworICAg
ICAgICBpbmRpY2F0ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIGhhcmR3YXJlIGludGVnZXIgZGl2aXNp
b24uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6
OkFSTXY3QXNzZW1ibGVyOjpzZGl2KTogRGlkIG5vdCBjb21waWxlIGNvbmRpdGlvbmFsbHkuCisg
ICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp1ZGl2KTogRGl0dG8uCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6aXNJ
bnRlZ2VyRGl2U3VwcG9ydGVkKTogQWRkZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9y
dHNJbnRlZ2VyRGl2KTogQWRkZWQuCisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAg
ICAoSlNDOjpERkc6OmlzQVJNV2l0aEludGVnZXJEaXYpOiBDaGFuZ2VkIGZyb20gaXNBUk12N3Mu
CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZp
eHVwUGhhc2U6OmZpeHVwTm9kZSk6IFVzZWQgaXNBUk1XaXRoSW50ZWdlckRpdi4KKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0Zvclg4Nik6IEFkZGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0ZvckFSTSk6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyk6IFNwbGl0
IG9mZiB0aGUgWDg2IGFuZCBBUk0gY29kZWdlbi4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTSk6IFJlbmFtZWQgZnJvbSBjb21w
aWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNdjcuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6IEFsbG93ZWQgcnVuLXRpbWUgZGV0ZWN0aW9uIG9mIGlu
dGVnZXIgZGl2IG9uIEFSTS4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAg
ICAgICAgKFNwZWN1bGF0aXZlSklUKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBB
bGxvd2VkIHJ1bi10aW1lIGRldGVjdGlvbiBvZiBpbnRlZ2VyIGRpdiBvbiBBUk0uCisKIDIwMTMt
MDQtMjQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICAzMi1i
aXQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBjMDhjNzU1ZjVmLi5hZThmYTc4ZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNzMsNiArNzMsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29k
ZVJlZi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDdhYTRlNmQ4MC4uMjVl
ZmJjNDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3NCw2ICs1NzQsNyBA
QAogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REQxMUEy
MTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCAqLzsgfTsKIAkJODZDNTY4RTEx
MUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8q
IE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg2QzU2OEUyMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhE
RjExQTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2QzU2OEU0RkI5Mjg2N0ExNkZEMTAwMiAv
KiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2QzU2OEUzRkI5Mjg2N0ExNkZEMTAwMiAvKiBNYWNyb0Fzc2VtYmxl
ckFSTXY3LmNwcCAqLzsgfTsKIAkJODZDQTAzMkUxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFi
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZD
QTAzMkQxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuY3BwICovOyB9OwogCQk4NkNBRkVF
MzEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQUZFRTIxMDM1RERFNjAwMjhBNjA5IC8qIEV4ZWN1
dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4NkNDODVBMTBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQzg1QTAwRUU3OUE0NzAwMjg4Njgy
IC8qIEpJVElubGluZXMuaCAqLzsgfTsKQEAgLTE0NzcsNiArMTQ3OCw3IEBACiAJCTg2QzU2OERE
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxlckFSTS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERFMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2Vt
Ymxlck1JUFMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjcm9Bc3NlbWJs
ZXJNSVBTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERGMTFBMjEzRUUw
MDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1JUFNBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZDNTY4
RTNGQjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0EwMzJEMTAzOEU4NDQwMDI4QTYwOSAvKiBFeGVj
dXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1dGFi
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkNBRkVFMjEwMzVEREU2MDAy
OEE2MDkgLyogRXhlY3V0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0M4NUEwMEVFNzlB
NDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpJVElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDUsNiAr
Mjg0Nyw3IEBACiAJCQkJODZDMzZFRTkwRUUxMjg5RDAwQjNERjU5IC8qIE1hY3JvQXNzZW1ibGVy
LmggKi8sCiAJCQkJODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJN
LmNwcCAqLywKIAkJCQk4NkQzQjJDMjEwMTU2QkRFMDAyODY1RTcgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uaCAqLywKKwkJCQk4NkM1NjhFM0ZCOTI4NjdBMTZGRDEwMDIgLyogTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAgKi8sCiAJCQkJODZBREQxNDQwRkRERUE5ODAwMDZFRUMyIC8qIE1hY3JvQXNzZW1i
bGVyQVJNdjcuaCAqLywKIAkJCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmLmggKi8sCiAJCQkJODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3Jv
QXNzZW1ibGVyTUlQUy5oICovLApAQCAtMzk3Nyw2ICszOTgwLDcgQEAKIAkJCQkxNEI3MjNCMjEy
RDdEQTQ2MDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2VtYmxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODZDNTY4RTRGQjkyODY3QTE2RkQxMDAyIC8qIE1h
Y3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZBRTY0QTgxMzVFNUUx
QzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMy
QjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQyRDZGMDgxMzUzOUEyODAwQjAyRTg2IC8qIE1hcmtlZEJsb2NrLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
Uk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCmluZGV4IDI4OTg5NTQ5ZDQuLjA3OWI1MDk1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTY2MSwxMCArNjYx
LDggQEAgcHJpdmF0ZToKICAgICAgICAgT1BfUk9SX3JlZ19UMiAgID0gMHhGQTYwLAogICAgICAg
ICBPUF9DTFogICAgICAgICAgPSAweEZBQjAsCiAgICAgICAgIE9QX1NNVUxMX1QxICAgICA9IDB4
RkI4MCwKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgICAgICBPUF9TRElWX1QxICAgICAgPSAw
eEZCOTAsCiAgICAgICAgIE9QX1VESVZfVDEgICAgICA9IDB4RkJCMCwKLSNlbmRpZgogICAgIH0g
T3Bjb2RlSUQxOwogCiAgICAgdHlwZWRlZiBlbnVtIHsKQEAgLTE0MDcsNyArMTQwNSw2IEBAIHB1
YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1JP
Ul9yZWdfVDIsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMCwgcm0pKTsKICAgICB9CiAKLSNpZiBD
UFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZGl2KFJlZ2lzdGVySUQg
cmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBBU1NFUlQo
IUJhZFJlZyhyZCkpOwpAQCAtMTQxNSw3ICsxNDEyLDYgQEAgcHVibGljOgogICAgICAgICBBU1NF
UlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3Vy
Rm91cnMoT1BfU0RJVl9UMSwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAweGYsIHJtKSk7CiAgICAg
fQotI2VuZGlmCiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc211bGwoUmVnaXN0ZXJJRCByZExv
LCBSZWdpc3RlcklEIHJkSGksIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewpA
QCAtMTc1Myw3ICsxNzQ5LDYgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3Jk
T3AxMlJlZzQwSW1tM1JlZzRJbW0yMEltbTUoT1BfVUJGWF9UMSwgcmQsIHJuLCAobHNiICYgMHgx
YykgPDwgMTAsIChsc2IgJiAweDMpIDw8IDYsICh3aWR0aCAtIDEpICYgMHgxZik7CiAgICAgfQog
Ci0jaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdWRpdihSZWdp
c3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFCYWRSZWcocmQpKTsKQEAgLTE3NjEsNyArMTc1Niw2IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJS
ZWc0Rm91ckZvdXJzKE9QX1VESVZfVDEsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMHhmLCBybSkp
OwogICAgIH0KLSNlbmRpZgogCiAgICAgdm9pZCB2YWRkKEZQRG91YmxlUmVnaXN0ZXJJRCByZCwg
RlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTYyZGFjY2Nl
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxMyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQVNTRU1CTEVS
KSAmJiBDUFUoQVJNX1RIVU1CMikKKworI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQVJNdjcuaCIK
KworI2lmIE9TKFFOWCkKKyNpbmNsdWRlIDxzeXMvc3lzcGFnZS5oPgorI2VuZGlmCisKK25hbWVz
cGFjZSBKU0MgeworCitzdGF0aWMgYm9vbCBpc0ludGVnZXJEaXZTdXBwb3J0ZWQoKQoreworI2lm
IENQVShBUFBMRV9BUk1WN1MpCisgICAgcmV0dXJuIHRydWU7CisjZWxpZiBPUyhRTlgpICYmIGRl
ZmluZWQoQVJNX0NQVV9GTEFHX0lESVYpCisgICAgcmV0dXJuICEhKFNZU1BBR0VfRU5UUlkoY3B1
aW5mbyktPmZsYWdzICYgQVJNX0NQVV9GTEFHX0lESVYpOworI2Vsc2UKKyAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKK30KKworY29uc3QgYm9vbCBNYWNyb0Fzc2VtYmxlckFSTXY3OjpzX2lzSW50
ZWdlckRpdlN1cHBvcnRlZCA9IGlzSW50ZWdlckRpdlN1cHBvcnRlZCgpOworCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNX1RIVU1CMikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXgg
Mzk2MzU2ZTg4Zi4uNTI5YzcyODI2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTc5Myw4ICs3OTMsMTkgQEAg
cHVibGljOgogICAgIH0KICNlbmRpZgogCi0gICAgLy8gRmxvYXRpbmctcG9pbnQgb3BlcmF0aW9u
czoKKyAgICAvLyBJbnRlZ2VyIG9wZXJhdGlvbnMuCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNJ
bnRlZ2VyRGl2KCkKKyAgICB7CisjaWYgQ1BVKEFQUExFX0FSTVY3UykKKyAgICAgICAgcmV0dXJu
IHRydWU7CisjZWxpZiBPUyhRTlgpCisgICAgICAgIHJldHVybiBzX2lzSW50ZWdlckRpdlN1cHBv
cnRlZDsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KIAorICAg
IC8vIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMuCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNG
bG9hdGluZ1BvaW50KCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CkBAIC0xOTA2LDYg
KzE5MTcsOCBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIGJvb2wgbV9tYWtlSnVtcFBhdGNoYWJs
ZTsKKworICAgIHN0YXRpYyBjb25zdCBib29sIHNfaXNJbnRlZ2VyRGl2U3VwcG9ydGVkOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaApp
bmRleCBiODgzYWVlNmM2Li5jZTMzZWY1YzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29tbW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1
ZGUgIkNvZGVPcmlnaW4uaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUg
Ik9wdGlvbnMuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIApAQCAtMTAwLDEwICsx
MDEsMTAgQEAgZW51bSBSZWZOb2RlTW9kZSB7CiAgICAgRG9udFJlZk5vZGUKIH07CiAKLWlubGlu
ZSBib29sIGlzQVJNdjdzKCkKK2lubGluZSBib29sIGlzQVJNV2l0aEludGVnZXJEaXYoKQogewot
I2lmIENQVShBUFBMRV9BUk1WN1MpCi0gICAgcmV0dXJuIHRydWU7CisjaWYgQ1BVKEFSTV9USFVN
QjIpCisgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYoKTsKICNl
bHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA5ZDMzZjlmNDlkLi4xODJkZjIxMTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTIxMyw3ICsyMTMs
NyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoRGl2OiB7CiAgICAgICAgICAgICBpZiAo
Tm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50ZWdlckZvckFyaXRobWV0aWMobm9kZS0+Y2hpbGQxKCku
bm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpCiAgICAgICAgICAgICAgICAgJiYgbm9kZS0+
Y2FuU3BlY3VsYXRlSW50ZWdlcigpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzWDg2KCkgfHwg
aXNBUk12N3MoKSkgeworICAgICAgICAgICAgICAgIGlmIChpc1g4NigpIHx8IGlzQVJNV2l0aElu
dGVnZXJEaXYoKSkgewogICAgICAgICAgICAgICAgICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlBy
b2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICAgICAg
c2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihub2RlLT5jaGlsZDIoKSk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBjODdhOTE3MzRhLi4yM2I5ZDBlNjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApA
QCAtMjg3NiwxMiArMjg3NiwxMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFu
Y2VPZihOb2RlKiBub2RlKQogI2VuZGlmCiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCisjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvRm9yWDg2KE5vZGUqIG5vZGUpCiB7
CiAgICAgLy8gSW4gdGhlIGZhc3QgcGF0aCwgdGhlIGRpdmlkZW5kIHZhbHVlIGNvdWxkIGJlIHRo
ZSBmaW5hbCByZXN1bHQKICAgICAvLyAoaW4gY2FzZSBvZiB8ZGl2aWRlbmR8IDwgfGRpdmlzb3J8
KSwgc28gd2Ugc3BlY3VsYXRlIGl0IGFzIHN0cmljdCBpbnQzMi4KICAgICBTcGVjdWxhdGVTdHJp
Y3RJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSNpZiBDUFUoWDg2KSB8
fCBDUFUoWDg2XzY0KQogICAgIGlmIChpc0ludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9k
ZSgpKSkgewogICAgICAgICBpbnQzMl90IGRpdmlzb3IgPSB2YWx1ZU9mSW50MzJDb25zdGFudChu
b2RlLT5jaGlsZDIoKS5ub2RlKCkpOwogICAgICAgICBpZiAoZGl2aXNvcikgewpAQCAtMjkyMSwz
MCArMjkyMSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvKE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0jZWxpZiBDUFUo
QVBQTEVfQVJNVjdTKQotICAgIGlmIChpc0ludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9k
ZSgpKSkgewotICAgICAgICBpbnQzMl90IGRpdmlzb3IgPSB2YWx1ZU9mSW50MzJDb25zdGFudChu
b2RlLT5jaGlsZDIoKS5ub2RlKCkpOwotICAgICAgICBpZiAoZGl2aXNvciA+IDAgJiYgaGFzT25l
Qml0U2V0KGRpdmlzb3IpKSB7IC8vIElmIHBvd2VyIG9mIDIgdGhlbiBqdXN0IG1hc2sKLSAgICAg
ICAgICAgIEdQUlJlZyBkaXZpZGVuZEdQUiA9IG9wMS5ncHIoKTsKLSAgICAgICAgICAgIEdQUlRl
bXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOwotCi0gICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5jbXAoZGl2aWRlbmRH
UFIsIEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZEltbSgwKSk7Ci0gICAgICAgICAgICBt
X2ppdC5hc3NlbWJsZXIoKS5pdChBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uTFQsIGZhbHNlKTsK
LSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLm5lZyhyZXN1bHRHUFIsIGRpdmlkZW5kR1BS
KTsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLm1vdihyZXN1bHRHUFIsIGRpdmlkZW5k
R1BSKTsKLSAgICAgICAgICAgIG1faml0LmFuZDMyKFRydXN0ZWRJbW0zMihkaXZpc29yIC0gMSks
IHJlc3VsdEdQUik7Ci0gICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5pdChBUk12N0Fzc2Vt
Ymxlcjo6Q29uZGl0aW9uTFQpOwotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubmVnKHJl
c3VsdEdQUiwgcmVzdWx0R1BSKTsKLQotICAgICAgICAgICAgaW50ZWdlclJlc3VsdChyZXN1bHRH
UFIsIG5vZGUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlm
CiAKICAgICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisKICAgICBHUFJUZW1wb3JhcnkgZWF4KHRo
aXMsIFg4NlJlZ2lzdGVyczo6ZWF4KTsKICAgICBHUFJUZW1wb3JhcnkgZWR4KHRoaXMsIFg4NlJl
Z2lzdGVyczo6ZWR4KTsKICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwpAQCAtMzAwOCwx
MCArMjk4NywzNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2Rl
KiBub2RlKQogICAgIAogICAgIGlmIChvcDFTYXZlR1BSICE9IG9wMUdQUikKICAgICAgICAgdW5s
b2NrKG9wMVNhdmVHUFIpOwotICAgICAgICAgICAgCisKICAgICBpbnRlZ2VyUmVzdWx0KGVkeC5n
cHIoKSwgbm9kZSk7Cit9CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQordm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG9Gb3JBUk0oTm9kZSogbm9kZSkKK3sKKyAgICAv
LyBJbiB0aGUgZmFzdCBwYXRoLCB0aGUgZGl2aWRlbmQgdmFsdWUgY291bGQgYmUgdGhlIGZpbmFs
IHJlc3VsdAorICAgIC8vIChpbiBjYXNlIG9mIHxkaXZpZGVuZHwgPCB8ZGl2aXNvcnwpLCBzbyB3
ZSBzcGVjdWxhdGUgaXQgYXMgc3RyaWN0IGludDMyLgorICAgIFNwZWN1bGF0ZVN0cmljdEludDMy
T3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIGlmIChpc0ludDMyQ29uc3Rh
bnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgeworICAgICAgICBpbnQzMl90IGRpdmlzb3IgPSB2
YWx1ZU9mSW50MzJDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpOworICAgICAgICBpZiAo
ZGl2aXNvciA+IDAgJiYgaGFzT25lQml0U2V0KGRpdmlzb3IpKSB7IC8vIElmIHBvd2VyIG9mIDIg
dGhlbiBqdXN0IG1hc2sKKyAgICAgICAgICAgIEdQUlJlZyBkaXZpZGVuZEdQUiA9IG9wMS5ncHIo
KTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgICAgICBH
UFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworCisgICAgICAgICAgICBtX2ppdC5hc3Nl
bWJsZXIoKS5jbXAoZGl2aWRlbmRHUFIsIEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZElt
bSgwKSk7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5pdChBUk12N0Fzc2VtYmxlcjo6
Q29uZGl0aW9uTFQsIGZhbHNlKTsKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLm5lZyhy
ZXN1bHRHUFIsIGRpdmlkZW5kR1BSKTsKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLm1v
dihyZXN1bHRHUFIsIGRpdmlkZW5kR1BSKTsKKyAgICAgICAgICAgIG1faml0LmFuZDMyKFRydXN0
ZWRJbW0zMihkaXZpc29yIC0gMSksIHJlc3VsdEdQUik7CisgICAgICAgICAgICBtX2ppdC5hc3Nl
bWJsZXIoKS5pdChBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uTFQpOworICAgICAgICAgICAgbV9q
aXQuYXNzZW1ibGVyKCkubmVnKHJlc3VsdEdQUiwgcmVzdWx0R1BSKTsKKworICAgICAgICAgICAg
aW50ZWdlclJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgfQorCisgICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5v
ZGUtPmNoaWxkMigpKTsKIAotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBHUFJUZW1wb3Jh
cnkgdGVtcCh0aGlzKTsKICAgICBHUFJUZW1wb3JhcnkgcXVvdGllbnRUaGVuUmVtYWluZGVyKHRo
aXMpOwogICAgIEdQUlRlbXBvcmFyeSBtdWx0aXBseUFuc3dlcih0aGlzKTsKQEAgLTMwMzQsNyAr
MzA0MCwxNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBu
b2RlKQogICAgIH0KIAogICAgIGludGVnZXJSZXN1bHQocXVvdGllbnRUaGVuUmVtYWluZGVyR1BS
LCBub2RlKTsKLSNlbHNlIC8vIG5vdCBhcmNoaXRlY3R1cmUgdGhhdCBjYW4gZG8gaW50ZWdlciBk
aXZpc2lvbgorfQorI2VuZGlmCisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9k
dWxvKE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AyKHRo
aXMsIG5vZGUtPmNoaWxkMigpKTsKKwogICAgIC8vIERvIHRoaXMgdGhlICpzYWZlc3QqIHdheSBw
b3NzaWJsZTogY2FsbCBvdXQgdG8gYSBDIGZ1bmN0aW9uIHRoYXQgd2lsbCBkbyB0aGUgbW9kdWxv
LAogICAgIC8vIGFuZCB0aGVuIGF0dGVtcHQgdG8gY29udmVydCBiYWNrLgogICAgIEdQUlJlZyBv
cDFHUFIgPSBvcDEuZ3ByKCk7CkBAIC0zMDUyLDcgKzMwNjUsNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBub2RlKQogICAgIHNwZWN1bGF0aW9uQ2hlY2so
T3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIGZhaWx1cmVDYXNlcyk7CiAgICAgCiAgICAgaW50
ZWdlclJlc3VsdChpbnRSZXN1bHQuZ3ByKCksIG5vZGUpOwotI2VuZGlmIC8vIENQVShYODYpIHx8
IENQVShYODZfNjQpCiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBZGQoTm9kZSog
bm9kZSkKQEAgLTM0NDgsOCArMzQ2MCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJ
bnRlZ2VyQXJpdGhEaXZGb3JYODYoTm9kZSogbm9kZSkKICAgICAgICAgICAgIAogICAgIGludGVn
ZXJSZXN1bHQoZWF4LmdwcigpLCBub2RlKTsKIH0KLSNlbGlmIENQVShBUFBMRV9BUk1WN1MpCi12
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNdjdzKE5vZGUq
IG5vZGUpCisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTShOb2RlKiBub2RlKQogewogICAgIFNwZWN1
bGF0ZUludGVnZXJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgU3BlY3Vs
YXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKQEAgLTM0ODMsNyAr
MzQ5NSwxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNb2QoTm9kZSogbm9k
ZSkKIHsKICAgICBzd2l0Y2ggKG5vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgIGNhc2UgSW50
MzJVc2U6IHsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorICAgICAgICBjb21waWxlU29m
dE1vZHVsb0Zvclg4Nihub2RlKTsKKyNlbGlmIEVOQUJMRShBUk1fSU5URUdFUl9ESVYpCisgICAg
ICAgIGlmIChNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2KCkpCisgICAgICAgICAg
ICBjb21waWxlU29mdE1vZHVsb0ZvckFSTShub2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgY29tcGlsZVNvZnRNb2R1bG8obm9kZSk7CisjZWxzZQogICAgICAgICBjb21waWxlU29mdE1v
ZHVsbyhub2RlKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA4MjY3
OWQwNDQ1Li44ODcyZmI2ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCkBAIC0xOTcwLDEwICsxOTcwLDE1IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNvbXBpbGVBcml0aE11bChOb2RlKik7CiAjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKICAg
ICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JYODYoTm9kZSopOwotI2VsaWYgQ1BVKEFQ
UExFX0FSTVY3UykKLSAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12N3MoTm9k
ZSopOworI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKKyAgICB2b2lkIGNvbXBpbGVJbnRl
Z2VyQXJpdGhEaXZGb3JBUk0oTm9kZSopOwogI2VuZGlmCiAgICAgdm9pZCBjb21waWxlQXJpdGhN
b2QoTm9kZSopOworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgdm9pZCBjb21waWxl
U29mdE1vZHVsb0Zvclg4NihOb2RlKik7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQor
ICAgIHZvaWQgY29tcGlsZVNvZnRNb2R1bG9Gb3JBUk0oTm9kZSopOworI2VuZGlmCiAgICAgdm9p
ZCBjb21waWxlU29mdE1vZHVsbyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0SW5kZXhlZFBy
b3BlcnR5U3RvcmFnZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkludFR5cGVk
QXJyYXkoY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3ImLCBOb2RlKiwgc2l6ZV90IGVsZW1lbnRT
aXplLCBUeXBlZEFycmF5U2lnbmVkbmVzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAzNTg0NDFkMTJiLi42ODll
M2EzNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAKQEAgLTIyNDksOCArMjI0OSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogI2lmIENQ
VShYODYpCiAgICAgICAgICAgICBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yWDg2KG5vZGUpOwot
I2VsaWYgQ1BVKEFQUExFX0FSTVY3UykKLSAgICAgICAgICAgIGNvbXBpbGVJbnRlZ2VyQXJpdGhE
aXZGb3JBUk12N3Mobm9kZSk7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQorICAgICAg
ICAgICAgQVNTRVJUKE1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYoKSk7CisgICAg
ICAgICAgICBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNKG5vZGUpOwogI2Vsc2UgLy8gQ1BV
IHR5cGUgd2l0aG91dCBpbnRlZ2VyIGRpdmlkZQogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgLy8gc2hvdWxkIGhhdmUgYmVlbiBjb3ZlcnRlZCBpbnRvIGEgZG91Ymxl
IGRpdmlkZS4KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwppbmRleCA4ZDAwOGQxMDkyLi4xNmFhYjc2OWY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDEzLTA0LTI0ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAYmxhY2tiZXJyeS5j
b20+CisKKyAgICAgICAgW1FOWF1bQVJNXSBVc2UgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiB3
aGVyZSBhdmFpbGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNTEzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICBSZXZpZXdlZCBpbnRlcm5hbGx5IGJ5IEdlb3JnZSBTdGFpa29zIGFuZCBBbnRob255IFNj
aWFuLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6IEFkZGVkIEVOQUJMRV9BUk1fSU5URUdF
Ul9ESVYuCisKIDIwMTMtMDQtMjQgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVzZSBwb3N0LWJyYW5jaCBzdG9yZSBmb3IgUmVmQ291bnRlZEJhc2U6
OmRlcmVmQmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMGRkZTcxYzhlZC4uOWY3N2U0YTE3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCkBAIC05NDQsNiArOTQ0LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9DT01QQVJFX0FORF9T
V0FQIDEKICNlbmRpZgogCisjaWYgQ1BVKEFQUExFX0FSTVY3UykgfHwgKENQVShBUk1fVEhVTUIy
KSAmJiBPUyhRTlgpKQorI2RlZmluZSBFTkFCTEVfQVJNX0lOVEVHRVJfRElWIDEKKyNlbmRpZgor
CiAjZGVmaW5lIEVOQUJMRV9PQkpFQ1RfTUFSS19MT0dHSU5HIDAKIAogI2lmICFkZWZpbmVkKEVO
QUJMRV9QQVJBTExFTF9HQykgJiYgIUVOQUJMRShPQkpFQ1RfTUFSS19MT0dHSU5HKSAmJiAoUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBM
QVRGT1JNKEdUSykpICYmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQo=
</data>
<flag name="review"
          id="221085"
          type_id="1"
          status="-"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="221086"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199673</attachid>
            <date>2013-04-25 09:37:56 -0700</date>
            <delta_ts>2013-04-26 22:05:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>21471</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YTBjMWVlNTdjLi5lNmE1MGRm
NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTcsNiArNTE3LDcg
QEAgaWYgKFdURl9DUFVfQVJNKQogICAgICAgICBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAog
ICAgICAgICBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuY3BwCiAgICAgICAgIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5jcHAKKyAgICAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwCiAgICAgKQogZWxzZWlmIChXVEZfQ1BVX01JUFMpCiBlbHNlaWYgKFdURl9DUFVfWDg2
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwODIwOWEzZC4uZjYwMzIwZGJhZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTMtMDQtMjQgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbUU5YXVtBUk1dIFVz
ZSBoYXJkd2FyZSBpbnRlZ2VyIGRpdmlzaW9uIHdoZXJlIGF2YWlsYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MTM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkg
R2VvcmdlIFN0YWlrb3MgYW5kIEFudGhvbnkgU2NpYW4uCisKKyAgICAgICAgVXNlIHRoZSBTRElW
IGFuZCBVRElWIGluc3RydWN0aW9ucyBvbiBRTlgvQVJNIHdoZW4gdGhlIENQVSBmbGFncworICAg
ICAgICBpbmRpY2F0ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIGhhcmR3YXJlIGludGVnZXIgZGl2aXNp
b24uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6
OkFSTXY3QXNzZW1ibGVyOjpzZGl2KTogRGlkIG5vdCBjb21waWxlIGNvbmRpdGlvbmFsbHkuCisg
ICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp1ZGl2KTogRGl0dG8uCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6aXNJ
bnRlZ2VyRGl2U3VwcG9ydGVkKTogQWRkZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9y
dHNJbnRlZ2VyRGl2KTogQWRkZWQuCisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAg
ICAoSlNDOjpERkc6OmlzQVJNV2l0aEludGVnZXJEaXYpOiBDaGFuZ2VkIGZyb20gaXNBUk12N3Mu
CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZp
eHVwUGhhc2U6OmZpeHVwTm9kZSk6IFVzZWQgaXNBUk1XaXRoSW50ZWdlckRpdi4KKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0Zvclg4Nik6IEFkZGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0ZvckFSTSk6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyk6IFNwbGl0
IG9mZiB0aGUgWDg2IGFuZCBBUk0gY29kZWdlbi4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTSk6IFJlbmFtZWQgZnJvbSBjb21w
aWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNdjcuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6IEFsbG93ZWQgcnVuLXRpbWUgZGV0ZWN0aW9uIG9mIGlu
dGVnZXIgZGl2IG9uIEFSTS4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAg
ICAgICAgKFNwZWN1bGF0aXZlSklUKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBB
bGxvd2VkIHJ1bi10aW1lIGRldGVjdGlvbiBvZiBpbnRlZ2VyIGRpdiBvbiBBUk0uCisKIDIwMTMt
MDQtMjQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICAzMi1i
aXQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBjMDhjNzU1ZjVmLi5hZThmYTc4ZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNzMsNiArNzMsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29k
ZVJlZi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDdhYTRlNmQ4MC4uMjVl
ZmJjNDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3NCw2ICs1NzQsNyBA
QAogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REQxMUEy
MTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCAqLzsgfTsKIAkJODZDNTY4RTEx
MUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8q
IE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg2QzU2OEUyMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhE
RjExQTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2QzU2OEU0RkI5Mjg2N0ExNkZEMTAwMiAv
KiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2QzU2OEUzRkI5Mjg2N0ExNkZEMTAwMiAvKiBNYWNyb0Fzc2VtYmxl
ckFSTXY3LmNwcCAqLzsgfTsKIAkJODZDQTAzMkUxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFi
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZD
QTAzMkQxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuY3BwICovOyB9OwogCQk4NkNBRkVF
MzEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQUZFRTIxMDM1RERFNjAwMjhBNjA5IC8qIEV4ZWN1
dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4NkNDODVBMTBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQzg1QTAwRUU3OUE0NzAwMjg4Njgy
IC8qIEpJVElubGluZXMuaCAqLzsgfTsKQEAgLTE0NzcsNiArMTQ3OCw3IEBACiAJCTg2QzU2OERE
MTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxlckFSTS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERFMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2Vt
Ymxlck1JUFMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjcm9Bc3NlbWJs
ZXJNSVBTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERGMTFBMjEzRUUw
MDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1JUFNBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZDNTY4
RTNGQjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0EwMzJEMTAzOEU4NDQwMDI4QTYwOSAvKiBFeGVj
dXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1dGFi
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkNBRkVFMjEwMzVEREU2MDAy
OEE2MDkgLyogRXhlY3V0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0M4NUEwMEVFNzlB
NDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpJVElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDUsNiAr
Mjg0Nyw3IEBACiAJCQkJODZDMzZFRTkwRUUxMjg5RDAwQjNERjU5IC8qIE1hY3JvQXNzZW1ibGVy
LmggKi8sCiAJCQkJODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJN
LmNwcCAqLywKIAkJCQk4NkQzQjJDMjEwMTU2QkRFMDAyODY1RTcgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uaCAqLywKKwkJCQk4NkM1NjhFM0ZCOTI4NjdBMTZGRDEwMDIgLyogTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAgKi8sCiAJCQkJODZBREQxNDQwRkRERUE5ODAwMDZFRUMyIC8qIE1hY3JvQXNzZW1i
bGVyQVJNdjcuaCAqLywKIAkJCQk4NjNCMjNERjBGQzYwRTYyMDA3MDNBQTQgLyogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmLmggKi8sCiAJCQkJODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3Jv
QXNzZW1ibGVyTUlQUy5oICovLApAQCAtMzk3Nyw2ICszOTgwLDcgQEAKIAkJCQkxNEI3MjNCMjEy
RDdEQTQ2MDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNyb0Fzc2VtYmxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODZDNTY4RTRGQjkyODY3QTE2RkQxMDAyIC8qIE1h
Y3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZBRTY0QTgxMzVFNUUx
QzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMy
QjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQyRDZGMDgxMzUzOUEyODAwQjAyRTg2IC8qIE1hcmtlZEJsb2NrLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
Uk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCmluZGV4IDI4OTg5NTQ5ZDQuLjA3OWI1MDk1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTY2MSwxMCArNjYx
LDggQEAgcHJpdmF0ZToKICAgICAgICAgT1BfUk9SX3JlZ19UMiAgID0gMHhGQTYwLAogICAgICAg
ICBPUF9DTFogICAgICAgICAgPSAweEZBQjAsCiAgICAgICAgIE9QX1NNVUxMX1QxICAgICA9IDB4
RkI4MCwKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgICAgICBPUF9TRElWX1QxICAgICAgPSAw
eEZCOTAsCiAgICAgICAgIE9QX1VESVZfVDEgICAgICA9IDB4RkJCMCwKLSNlbmRpZgogICAgIH0g
T3Bjb2RlSUQxOwogCiAgICAgdHlwZWRlZiBlbnVtIHsKQEAgLTE0MDcsNyArMTQwNSw2IEBAIHB1
YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1JP
Ul9yZWdfVDIsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMCwgcm0pKTsKICAgICB9CiAKLSNpZiBD
UFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZGl2KFJlZ2lzdGVySUQg
cmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBBU1NFUlQo
IUJhZFJlZyhyZCkpOwpAQCAtMTQxNSw3ICsxNDEyLDYgQEAgcHVibGljOgogICAgICAgICBBU1NF
UlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3Vy
Rm91cnMoT1BfU0RJVl9UMSwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAweGYsIHJtKSk7CiAgICAg
fQotI2VuZGlmCiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc211bGwoUmVnaXN0ZXJJRCByZExv
LCBSZWdpc3RlcklEIHJkSGksIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewpA
QCAtMTc1Myw3ICsxNzQ5LDYgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3Jk
T3AxMlJlZzQwSW1tM1JlZzRJbW0yMEltbTUoT1BfVUJGWF9UMSwgcmQsIHJuLCAobHNiICYgMHgx
YykgPDwgMTAsIChsc2IgJiAweDMpIDw8IDYsICh3aWR0aCAtIDEpICYgMHgxZik7CiAgICAgfQog
Ci0jaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdWRpdihSZWdp
c3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFCYWRSZWcocmQpKTsKQEAgLTE3NjEsNyArMTc1Niw2IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJS
ZWc0Rm91ckZvdXJzKE9QX1VESVZfVDEsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMHhmLCBybSkp
OwogICAgIH0KLSNlbmRpZgogCiAgICAgdm9pZCB2YWRkKEZQRG91YmxlUmVnaXN0ZXJJRCByZCwg
RlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMmVkNWZjMmIw
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxMyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQVNTRU1CTEVS
KSAmJiBDUFUoQVJNX1RIVU1CMikKKworI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQVJNdjcuaCIK
KworI2lmIE9TKFFOWCkKKyNpbmNsdWRlIDxzeXMvc3lzcGFnZS5oPgorI2VuZGlmCisKK25hbWVz
cGFjZSBKU0MgeworCisjaWYgT1MoUU5YKQorCitzdGF0aWMgYm9vbCBpc0ludGVnZXJEaXZTdXBw
b3J0ZWQoKQoreworI2lmZGVmIEFSTV9DUFVfRkxBR19JRElWCisgICAgcmV0dXJuICEhKFNZU1BB
R0VfRU5UUlkoY3B1aW5mbyktPmZsYWdzICYgQVJNX0NQVV9GTEFHX0lESVYpOworI2Vsc2UKKyAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworY29uc3QgYm9vbCBNYWNyb0Fzc2VtYmxlckFS
TXY3OjpzX2lzSW50ZWdlckRpdlN1cHBvcnRlZCA9IGlzSW50ZWdlckRpdlN1cHBvcnRlZCgpOwor
CisjZW5kaWYgLy8gT1MoUU5YKQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQVNTRU1CTEVSKSAm
JiBDUFUoQVJNX1RIVU1CMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggMzk2MzU2ZTg4Zi4uN2YwYmQ0ODhiNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKQEAgLTc5Myw4ICs3OTMsMTkgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgog
Ci0gICAgLy8gRmxvYXRpbmctcG9pbnQgb3BlcmF0aW9uczoKKyAgICAvLyBJbnRlZ2VyIG9wZXJh
dGlvbnMuCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNJbnRlZ2VyRGl2KCkKKyAgICB7CisjaWYg
Q1BVKEFQUExFX0FSTVY3UykKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZWxpZiBPUyhRTlgpCisg
ICAgICAgIHJldHVybiBzX2lzSW50ZWdlckRpdlN1cHBvcnRlZDsKKyNlbHNlCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KIAorICAgIC8vIEZsb2F0aW5nLXBvaW50IG9wZXJh
dGlvbnMuCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFNx
cnQoKSB7IHJldHVybiB0cnVlOyB9CkBAIC0xOTA2LDYgKzE5MTcsMTAgQEAgcHJpdmF0ZToKICAg
ICB9CiAKICAgICBib29sIG1fbWFrZUp1bXBQYXRjaGFibGU7CisKKyNpZiBPUyhRTlgpCisgICAg
c3RhdGljIGNvbnN0IGJvb2wgc19pc0ludGVnZXJEaXZTdXBwb3J0ZWQ7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKaW5k
ZXggYjg4M2FlZTZjNi4uY2UzM2VmNWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpbmNsdWRl
ICJDb2RlT3JpZ2luLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKQEAgLTEwMCwxMCArMTAx
LDEwIEBAIGVudW0gUmVmTm9kZU1vZGUgewogICAgIERvbnRSZWZOb2RlCiB9OwogCi1pbmxpbmUg
Ym9vbCBpc0FSTXY3cygpCitpbmxpbmUgYm9vbCBpc0FSTVdpdGhJbnRlZ2VyRGl2KCkKIHsKLSNp
ZiBDUFUoQVBQTEVfQVJNVjdTKQotICAgIHJldHVybiB0cnVlOworI2lmIENQVShBUk1fVEhVTUIy
KQorICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2KCk7CiAjZWxz
ZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKaW5kZXggOWQzM2Y5ZjQ5ZC4uMTgyZGYyMTEyNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMTMsNyArMjEzLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBBcml0aERpdjogewogICAgICAgICAgICAgaWYgKE5v
ZGU6OnNob3VsZFNwZWN1bGF0ZUludGVnZXJGb3JBcml0aG1ldGljKG5vZGUtPmNoaWxkMSgpLm5v
ZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKQogICAgICAgICAgICAgICAgICYmIG5vZGUtPmNh
blNwZWN1bGF0ZUludGVnZXIoKSkgewotICAgICAgICAgICAgICAgIGlmIChpc1g4NigpIHx8IGlz
QVJNdjdzKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNYODYoKSB8fCBpc0FSTVdpdGhJbnRl
Z2VyRGl2KCkpIHsKICAgICAgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9m
aXRhYmxlPEludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgICAgIHNl
dFVzZUtpbmRBbmRVbmJveElmUHJvZml0YWJsZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOwog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggYzg3YTkxNzM0YS4uMjNiOWQwZTYzOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAg
LTI4NzYsMTIgKzI4NzYsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNl
T2YoTm9kZSogbm9kZSkKICNlbmRpZgogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
U29mdE1vZHVsbyhOb2RlKiBub2RlKQorI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCit2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsb0Zvclg4NihOb2RlKiBub2RlKQogewog
ICAgIC8vIEluIHRoZSBmYXN0IHBhdGgsIHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBiZSB0aGUg
ZmluYWwgcmVzdWx0CiAgICAgLy8gKGluIGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZpc29yfCks
IHNvIHdlIHNwZWN1bGF0ZSBpdCBhcyBzdHJpY3QgaW50MzIuCiAgICAgU3BlY3VsYXRlU3RyaWN0
SW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0jaWYgQ1BVKFg4NikgfHwg
Q1BVKFg4Nl82NCkKICAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUo
KSkpIHsKICAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFsdWVPZkludDMyQ29uc3RhbnQobm9k
ZS0+Y2hpbGQyKCkubm9kZSgpKTsKICAgICAgICAgaWYgKGRpdmlzb3IpIHsKQEAgLTI5MjEsMzAg
KzI5MjEsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBu
b2RlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotI2VsaWYgQ1BVKEFQ
UExFX0FSTVY3UykKLSAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUo
KSkpIHsKLSAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFsdWVPZkludDMyQ29uc3RhbnQobm9k
ZS0+Y2hpbGQyKCkubm9kZSgpKTsKLSAgICAgICAgaWYgKGRpdmlzb3IgPiAwICYmIGhhc09uZUJp
dFNldChkaXZpc29yKSkgeyAvLyBJZiBwb3dlciBvZiAyIHRoZW4ganVzdCBtYXNrCi0gICAgICAg
ICAgICBHUFJSZWcgZGl2aWRlbmRHUFIgPSBvcDEuZ3ByKCk7Ci0gICAgICAgICAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3Vs
dC5ncHIoKTsKLQotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuY21wKGRpdmlkZW5kR1BS
LCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oMCkpOwotICAgICAgICAgICAgbV9q
aXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkxULCBmYWxzZSk7Ci0g
ICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0R1BSLCBkaXZpZGVuZEdQUik7
Ci0gICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5tb3YocmVzdWx0R1BSLCBkaXZpZGVuZEdQ
Uik7Ci0gICAgICAgICAgICBtX2ppdC5hbmQzMihUcnVzdGVkSW1tMzIoZGl2aXNvciAtIDEpLCBy
ZXN1bHRHUFIpOwotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJs
ZXI6OkNvbmRpdGlvbkxUKTsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLm5lZyhyZXN1
bHRHUFIsIHJlc3VsdEdQUik7Ci0KLSAgICAgICAgICAgIGludGVnZXJSZXN1bHQocmVzdWx0R1BS
LCBub2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgog
CiAgICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsK
LSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorCiAgICAgR1BSVGVtcG9yYXJ5IGVheCh0aGlz
LCBYODZSZWdpc3RlcnM6OmVheCk7CiAgICAgR1BSVGVtcG9yYXJ5IGVkeCh0aGlzLCBYODZSZWdp
c3RlcnM6OmVkeCk7CiAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKQEAgLTMwMDgsMTAg
KzI5ODcsMzcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSog
bm9kZSkKICAgICAKICAgICBpZiAob3AxU2F2ZUdQUiAhPSBvcDFHUFIpCiAgICAgICAgIHVubG9j
ayhvcDFTYXZlR1BSKTsKLSAgICAgICAgICAgIAorCiAgICAgaW50ZWdlclJlc3VsdChlZHguZ3By
KCksIG5vZGUpOworfQorI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvRm9yQVJNKE5vZGUqIG5vZGUpCit7CisgICAgLy8g
SW4gdGhlIGZhc3QgcGF0aCwgdGhlIGRpdmlkZW5kIHZhbHVlIGNvdWxkIGJlIHRoZSBmaW5hbCBy
ZXN1bHQKKyAgICAvLyAoaW4gY2FzZSBvZiB8ZGl2aWRlbmR8IDwgfGRpdmlzb3J8KSwgc28gd2Ug
c3BlY3VsYXRlIGl0IGFzIHN0cmljdCBpbnQzMi4KKyAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9w
ZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBpZiAoaXNJbnQzMkNvbnN0YW50
KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKKyAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFs
dWVPZkludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKKyAgICAgICAgaWYgKGRp
dmlzb3IgPiAwICYmIGhhc09uZUJpdFNldChkaXZpc29yKSkgeyAvLyBJZiBwb3dlciBvZiAyIHRo
ZW4ganVzdCBtYXNrCisgICAgICAgICAgICBHUFJSZWcgZGl2aWRlbmRHUFIgPSBvcDEuZ3ByKCk7
CisgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAgR1BS
UmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAgICAgICAgICAgbV9qaXQuYXNzZW1i
bGVyKCkuY21wKGRpdmlkZW5kR1BSLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0o
MCkpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNv
bmRpdGlvbkxULCBmYWxzZSk7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVz
dWx0R1BSLCBkaXZpZGVuZEdQUik7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5tb3Yo
cmVzdWx0R1BSLCBkaXZpZGVuZEdQUik7CisgICAgICAgICAgICBtX2ppdC5hbmQzMihUcnVzdGVk
SW1tMzIoZGl2aXNvciAtIDEpLCByZXN1bHRHUFIpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1i
bGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkxUKTsKKyAgICAgICAgICAgIG1faml0
LmFzc2VtYmxlcigpLm5lZyhyZXN1bHRHUFIsIHJlc3VsdEdQUik7CisKKyAgICAgICAgICAgIGlu
dGVnZXJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2Rl
LT5jaGlsZDIoKSk7CiAKLSNlbGlmIENQVShBUFBMRV9BUk1WN1MpCiAgICAgR1BSVGVtcG9yYXJ5
IHRlbXAodGhpcyk7CiAgICAgR1BSVGVtcG9yYXJ5IHF1b3RpZW50VGhlblJlbWFpbmRlcih0aGlz
KTsKICAgICBHUFJUZW1wb3JhcnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7CkBAIC0zMDM0LDcgKzMw
NDAsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9k
ZSkKICAgICB9CiAKICAgICBpbnRlZ2VyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwg
bm9kZSk7Ci0jZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRoYXQgY2FuIGRvIGludGVnZXIgZGl2
aXNpb24KK30KKyNlbmRpZgorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVs
byhOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBvcDEodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlz
LCBub2RlLT5jaGlsZDIoKSk7CisKICAgICAvLyBEbyB0aGlzIHRoZSAqc2FmZXN0KiB3YXkgcG9z
c2libGU6IGNhbGwgb3V0IHRvIGEgQyBmdW5jdGlvbiB0aGF0IHdpbGwgZG8gdGhlIG1vZHVsbywK
ICAgICAvLyBhbmQgdGhlbiBhdHRlbXB0IHRvIGNvbnZlcnQgYmFjay4KICAgICBHUFJSZWcgb3Ax
R1BSID0gb3AxLmdwcigpOwpAQCAtMzA1Miw3ICszMDY1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9kZSkKICAgICBzcGVjdWxhdGlvbkNoZWNrKE92
ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBmYWlsdXJlQ2FzZXMpOwogICAgIAogICAgIGludGVn
ZXJSZXN1bHQoaW50UmVzdWx0LmdwcigpLCBub2RlKTsKLSNlbmRpZiAvLyBDUFUoWDg2KSB8fCBD
UFUoWDg2XzY0KQogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQWRkKE5vZGUqIG5v
ZGUpCkBAIC0zNDQ4LDggKzM0NjAsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW50
ZWdlckFyaXRoRGl2Rm9yWDg2KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICBpbnRlZ2Vy
UmVzdWx0KGVheC5ncHIoKSwgbm9kZSk7CiB9Ci0jZWxpZiBDUFUoQVBQTEVfQVJNVjdTKQotdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTXY3cyhOb2RlKiBu
b2RlKQorI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0oTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxh
dGVJbnRlZ2VyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIFNwZWN1bGF0
ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CkBAIC0zNDgzLDcgKzM0
OTUsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5vZGUqIG5vZGUp
CiB7CiAgICAgc3dpdGNoIChub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICBjYXNlIEludDMy
VXNlOiB7CisjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyAgICAgICAgY29tcGlsZVNvZnRN
b2R1bG9Gb3JYODYobm9kZSk7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQorICAgICAg
ICBpZiAoTWFjcm9Bc3NlbWJsZXI6OnN1cHBvcnRzSW50ZWdlckRpdigpKQorICAgICAgICAgICAg
Y29tcGlsZVNvZnRNb2R1bG9Gb3JBUk0obm9kZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGNvbXBpbGVTb2Z0TW9kdWxvKG5vZGUpOworI2Vsc2UKICAgICAgICAgY29tcGlsZVNvZnRNb2R1
bG8obm9kZSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggODI2Nzlk
MDQ0NS4uODg3MmZiNmQxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaApAQCAtMTk3MCwxMCArMTk3MCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
b21waWxlQXJpdGhNdWwoTm9kZSopOwogI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCiAgICAg
dm9pZCBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yWDg2KE5vZGUqKTsKLSNlbGlmIENQVShBUFBM
RV9BUk1WN1MpCi0gICAgdm9pZCBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNdjdzKE5vZGUq
KTsKKyNlbGlmIEVOQUJMRShBUk1fSU5URUdFUl9ESVYpCisgICAgdm9pZCBjb21waWxlSW50ZWdl
ckFyaXRoRGl2Rm9yQVJNKE5vZGUqKTsKICNlbmRpZgogICAgIHZvaWQgY29tcGlsZUFyaXRoTW9k
KE5vZGUqKTsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorICAgIHZvaWQgY29tcGlsZVNv
ZnRNb2R1bG9Gb3JYODYoTm9kZSopOworI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKKyAg
ICB2b2lkIGNvbXBpbGVTb2Z0TW9kdWxvRm9yQVJNKE5vZGUqKTsKKyNlbmRpZgogICAgIHZvaWQg
Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldEluZGV4ZWRQcm9w
ZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25JbnRUeXBlZEFy
cmF5KGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yJiwgTm9kZSosIHNpemVfdCBlbGVtZW50U2l6
ZSwgVHlwZWRBcnJheVNpZ25lZG5lc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMzU4NDQxZDEyYi4uNjg5ZTNh
MzcwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCkBAIC0yMjQ5LDggKzIyNDksOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsKICNpZiBDUFUo
WDg2KQogICAgICAgICAgICAgY29tcGlsZUludGVnZXJBcml0aERpdkZvclg4Nihub2RlKTsKLSNl
bGlmIENQVShBUFBMRV9BUk1WN1MpCi0gICAgICAgICAgICBjb21waWxlSW50ZWdlckFyaXRoRGl2
Rm9yQVJNdjdzKG5vZGUpOworI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKKyAgICAgICAg
ICAgIEFTU0VSVChNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2KCkpOworICAgICAg
ICAgICAgY29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTShub2RlKTsKICNlbHNlIC8vIENQVSB0
eXBlIHdpdGhvdXQgaW50ZWdlciBkaXZpZGUKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IC8vIHNob3VsZCBoYXZlIGJlZW4gY292ZXJ0ZWQgaW50byBhIGRvdWJsZSBk
aXZpZGUuCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKaW5kZXggOGQwMDhkMTA5Mi4uMTZhYWI3NjlmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMy0wNC0yNCAgQ29zbWluIFRydXRhICA8Y3RydXRhQGJsYWNrYmVycnkuY29t
PgorCisgICAgICAgIFtRTlhdW0FSTV0gVXNlIGhhcmR3YXJlIGludGVnZXIgZGl2aXNpb24gd2hl
cmUgYXZhaWxhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTUxMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgUmV2aWV3ZWQgaW50ZXJuYWxseSBieSBHZW9yZ2UgU3RhaWtvcyBhbmQgQW50aG9ueSBTY2lh
bi4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOiBBZGRlZCBFTkFCTEVfQVJNX0lOVEVHRVJf
RElWLgorCiAyMDEzLTA0LTI0ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBVc2UgcG9zdC1icmFuY2ggc3RvcmUgZm9yIFJlZkNvdW50ZWRCYXNlOjpk
ZXJlZkJhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDBkZGU3MWM4ZWQuLjlmNzdlNGExNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaApAQCAtOTQ0LDYgKzk0NCwxMCBAQAogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dB
UCAxCiAjZW5kaWYKIAorI2lmIENQVShBUFBMRV9BUk1WN1MpIHx8IChDUFUoQVJNX1RIVU1CMikg
JiYgT1MoUU5YKSkKKyNkZWZpbmUgRU5BQkxFX0FSTV9JTlRFR0VSX0RJViAxCisjZW5kaWYKKwog
I2RlZmluZSBFTkFCTEVfT0JKRUNUX01BUktfTE9HR0lORyAwCiAKICNpZiAhZGVmaW5lZChFTkFC
TEVfUEFSQUxMRUxfR0MpICYmICFFTkFCTEUoT0JKRUNUX01BUktfTE9HR0lORykgJiYgKFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShCTEFDS0JFUlJZKSB8fCBQTEFU
Rk9STShHVEspKSAmJiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199890</attachid>
            <date>2013-04-26 22:05:32 -0700</date>
            <delta_ts>2013-04-26 22:08:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>28901</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YTBjMWVlNTdjLi5lNmE1MGRm
NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTcsNiArNTE3LDcg
QEAgaWYgKFdURl9DUFVfQVJNKQogICAgICAgICBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAog
ICAgICAgICBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuY3BwCiAgICAgICAgIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5jcHAKKyAgICAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwCiAgICAgKQogZWxzZWlmIChXVEZfQ1BVX01JUFMpCiBlbHNlaWYgKFdURl9DUFVfWDg2
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjI0MTc1MmVkNS4uOTE1Y2ZhZjA0NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTMtMDQtMjYgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbQVJNXSBFeHBhbmQg
dGhlIHVzZSBvZiBpbnRlZ2VyIGRpdmlzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUxMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJZiBhdmFpbGFiaWxpdHkgb2YgaGFyZHdhcmUgaW50ZWdlciBk
aXZpc2lvbiBpc24ndCBrbm93biBhdCBjb21waWxlCisgICAgICAgIHRpbWUsIGNoZWNrIHRoZSBD
UFUgZmxhZ3MgYW5kIGRlY2lkZSBhdCBydW50aW1lIHdoZXRoZXIgdG8gZmFsbCBiYWNrCisgICAg
ICAgIHRvIHNvZnR3YXJlLiBDdXJyZW50bHksIHRoaXMgT1Mtc3BlY2lmaWMgY2hlY2sgaXMgaW1w
bGVtZW50ZWQgb24gUU5YLgorCisgICAgICAgIE1vcmVvdmVyLCB1c2UgZGl2KCkgaW5zdGVhZCBv
ZiBmbW9kKCkgaW4gdGhlIGNhbGN1bGF0aW9uIG9mIHNvZnR3YXJlCisgICAgICAgIG1vZHVsby4g
RXZlbiBpZiBpdCdzIHNvZnR3YXJlLWVtdWxhdGVkLCBkaXYoKSBpcyBmYXN0ZXIgdGhhbiBmbW9k
KCk6CisgICAgICAgIG9uIEFSTSB2NyBRTlgsIHdpdGhvdXQgaGFyZHdhcmUgZGl2aXNpb24sIHdl
IG5vdGljZWQgPjMlIHNwZWVkdXAgb24KKyAgICAgICAgU3VuU3BpZGVyLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFz
c2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6
c2Rpdik6IERpZCBub3QgY29tcGlsZSBjb25kaXRpb25hbGx5LgorICAgICAgICAoSlNDOjpBUk12
N0Fzc2VtYmxlcjo6dWRpdik6IERpdHRvLgorICAgICAgICAqIGFzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OmlzQVJNdjdzKTogUmVtb3ZlZC4KKyAgICAg
ICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA6IEFkZGVkLgorICAgICAgICAo
SlNDOjppc0ludGVnZXJEaXZTdXBwb3J0ZWQpOiBBZGRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3
OjpzdXBwb3J0c0ludGVnZXJEaXYpOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFz
ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKTogQ2hlY2tl
ZCBNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2KCkgaW4gQXJpdGhEaXYgY2FzZS4K
KyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6b3Bl
cmF0aW9uTW9kT25JbnRzKTogQWRkZWQuCisgICAgICAgIChKU0M6OkRGRzo6Wl9ERkdPcGVyYXRp
b25fWlopOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvRm9yWDg2KTogQWRkZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvRm9yQVJNKTogQWRkZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvKTogU3BsaXQg
b2ZmIHRoZSBYODYgYW5kIEFSTSBjb2RlZ2VuLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNKTogUmVuYW1lZCBmcm9tIGNvbXBp
bGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12Ny4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKTogQWxsb3dlZCBydW4tdGltZSBkZXRlY3Rpb24gb2YgaW50
ZWdlciBkaXYgb24gQVJNLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKTogQWRkZWQgb3Zl
cmxvYWRzIHdpdGggWl9ERkdPcGVyYXRpb25fWlogYXJndW1lbnRzLgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSk6IFVzZWQgY29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTS4KKwogMjAx
My0wNC0yNiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgQXBwbGUgV2luZG93cyBWUzIwMTAgYnVpbGQgcmVzdWx0cyBpbnRvIGFuZCBnZXQgZGVwZW5k
ZW5jaWVzIGZyb20gX18zMiBzdWZmaXhlZCBmb2xkZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBjMDhjNzU1ZjVmLi5hZThmYTc4ZDU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNzMsNiArNzMsNyBAQCBq
YXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk0uY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNDdhYTRlNmQ4MC4uMjVlZmJjNDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU3NCw2ICs1NzQsNyBAQAogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFj
cm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNw
cCAqLzsgfTsKIAkJODZDNTY4RTExMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQ
Uy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4
REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2QzU2OEUyMTFBMjEzRUUwMDA3
RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NkM1NjhERjExQTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2QzU2
OEU0RkI5Mjg2N0ExNkZEMTAwMiAvKiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QzU2OEUzRkI5Mjg2N0ExNkZE
MTAwMiAvKiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCAqLzsgfTsKIAkJODZDQTAzMkUxMDM4RTg0
NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODZDQTAzMkQxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUu
Y3BwICovOyB9OwogCQk4NkNBRkVFMzEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQUZFRTIxMDM1
RERFNjAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkNDODVBMTBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZD
Qzg1QTAwRUU3OUE0NzAwMjg4NjgyIC8qIEpJVElubGluZXMuaCAqLzsgfTsKQEAgLTE0NzcsNiAr
MTQ3OCw3IEBACiAJCTg2QzU2OEREMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFS
TS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxl
ckFSTS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERFMTFBMjEzRUUw
MDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJNSVBTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg2QzU2OERGMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1JUFNBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODZDNTY4RTNGQjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVy
QVJNdjcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0EwMzJEMTAz
OEU4NDQwMDI4QTYwOSAvKiBFeGVjdXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NkNBRkVFMjEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFeGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg2Q0M4NUEwMEVFNzlBNDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI4NDUsNiArMjg0Nyw3IEBACiAJCQkJODZDMzZFRTkwRUUxMjg5RDAwQjNE
RjU5IC8qIE1hY3JvQXNzZW1ibGVyLmggKi8sCiAJCQkJODZDNTY4REQxMUEyMTNFRTAwMDdGN0Yw
IC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCAqLywKIAkJCQk4NkQzQjJDMjEwMTU2QkRFMDAyODY1
RTcgLyogTWFjcm9Bc3NlbWJsZXJBUk0uaCAqLywKKwkJCQk4NkM1NjhFM0ZCOTI4NjdBMTZGRDEw
MDIgLyogTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAgKi8sCiAJCQkJODZBREQxNDQwRkRERUE5ODAw
MDZFRUMyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuaCAqLywKIAkJCQk4NjNCMjNERjBGQzYwRTYy
MDA3MDNBQTQgLyogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmggKi8sCiAJCQkJODZDNTY4REUxMUEy
MTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oICovLApAQCAtMzk3Nyw2ICszOTgw
LDcgQEAKIAkJCQkxNEI3MjNCMjEyRDdEQTQ2MDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNy
b0Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3
RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODZDNTY4RTRG
QjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODZBRTY0QTgxMzVFNUUxQzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUMyQjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxv
Y2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyRDZGMDgxMzUzOUEyODAwQjAyRTg2IC8q
IE1hcmtlZEJsb2NrLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDI4OTg5NTQ5ZDQuLjA3OWI1MDk1
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1i
bGVyLmgKQEAgLTY2MSwxMCArNjYxLDggQEAgcHJpdmF0ZToKICAgICAgICAgT1BfUk9SX3JlZ19U
MiAgID0gMHhGQTYwLAogICAgICAgICBPUF9DTFogICAgICAgICAgPSAweEZBQjAsCiAgICAgICAg
IE9QX1NNVUxMX1QxICAgICA9IDB4RkI4MCwKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgICAg
ICBPUF9TRElWX1QxICAgICAgPSAweEZCOTAsCiAgICAgICAgIE9QX1VESVZfVDEgICAgICA9IDB4
RkJCMCwKLSNlbmRpZgogICAgIH0gT3Bjb2RlSUQxOwogCiAgICAgdHlwZWRlZiBlbnVtIHsKQEAg
LTE0MDcsNyArMTQwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9w
MTJSZWc0Rm91ckZvdXJzKE9QX1JPUl9yZWdfVDIsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMCwg
cm0pKTsKICAgICB9CiAKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBzZGl2KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAg
ICAgewogICAgICAgICBBU1NFUlQoIUJhZFJlZyhyZCkpOwpAQCAtMTQxNSw3ICsxNDEyLDYgQEAg
cHVibGljOgogICAgICAgICBBU1NFUlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRl
ci50d29Xb3JkT3AxMlJlZzRGb3VyRm91cnMoT1BfU0RJVl9UMSwgcm4sIEZvdXJGb3VycygweGYs
IHJkLCAweGYsIHJtKSk7CiAgICAgfQotI2VuZGlmCiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c211bGwoUmVnaXN0ZXJJRCByZExvLCBSZWdpc3RlcklEIHJkSGksIFJlZ2lzdGVySUQgcm4sIFJl
Z2lzdGVySUQgcm0pCiAgICAgewpAQCAtMTc1Myw3ICsxNzQ5LDYgQEAgcHVibGljOgogICAgICAg
ICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzQwSW1tM1JlZzRJbW0yMEltbTUoT1BfVUJGWF9U
MSwgcmQsIHJuLCAobHNiICYgMHgxYykgPDwgMTAsIChsc2IgJiAweDMpIDw8IDYsICh3aWR0aCAt
IDEpICYgMHgxZik7CiAgICAgfQogCi0jaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgdWRpdihSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklE
IHJtKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFCYWRSZWcocmQpKTsKQEAgLTE3NjEsNyArMTc1
Niw2IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9m
b3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1VESVZfVDEsIHJuLCBGb3VyRm91
cnMoMHhmLCByZCwgMHhmLCBybSkpOwogICAgIH0KLSNlbmRpZgogCiAgICAgdm9pZCB2YWRkKEZQ
RG91YmxlUmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lz
dGVySUQgcm0pCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCA2OGZkODA0ZWNjLi43NTVlNTRm
ZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0
TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fi
c3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtNDYsMTUgKzQ2LDYgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLWlubGluZSBib29sIGlzQVJNdjdzKCkKLXsKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQot
ICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQog
aW5saW5lIGJvb2wgaXNYODYoKQogewogI2lmIENQVShYODZfNjQpIHx8IENQVShYODYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yZWQ1ZmMyYjA2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJT
SVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShBU1NFTUJMRVIp
ICYmIENQVShBUk1fVEhVTUIyKQorCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIgor
CisjaWYgT1MoUU5YKQorI2luY2x1ZGUgPHN5cy9zeXNwYWdlLmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIEpTQyB7CisKKyNpZiBPUyhRTlgpCisKK3N0YXRpYyBib29sIGlzSW50ZWdlckRpdlN1cHBv
cnRlZCgpCit7CisjaWZkZWYgQVJNX0NQVV9GTEFHX0lESVYKKyAgICByZXR1cm4gISEoU1lTUEFH
RV9FTlRSWShjcHVpbmZvKS0+ZmxhZ3MgJiBBUk1fQ1BVX0ZMQUdfSURJVik7CisjZWxzZQorICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitjb25zdCBib29sIE1hY3JvQXNzZW1ibGVyQVJN
djc6OnNfaXNJbnRlZ2VyRGl2U3VwcG9ydGVkID0gaXNJbnRlZ2VyRGl2U3VwcG9ydGVkKCk7CisK
KyNlbmRpZiAvLyBPUyhRTlgpCisKK30KKworI2VuZGlmIC8vIEVOQUJMRShBU1NFTUJMRVIpICYm
IENQVShBUk1fVEhVTUIyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBiMWJjNDE3Mjk2Li4xYjA3NDg1NGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaApAQCAtNzkzLDggKzc5MywxOSBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAK
LSAgICAvLyBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zOgorICAgIC8vIEludGVnZXIgb3BlcmF0
aW9ucy4KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0ludGVnZXJEaXYoKQorICAgIHsKKyNpZiBD
UFUoQVBQTEVfQVJNVjdTKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbGlmIE9TKFFOWCkKKyAg
ICAgICAgcmV0dXJuIHNfaXNJbnRlZ2VyRGl2U3VwcG9ydGVkOworI2Vsc2UKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQogCisgICAgLy8gRmxvYXRpbmctcG9pbnQgb3BlcmF0
aW9ucy4KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSB7IHJldHVybiB0
cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSB7
IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3Fy
dCgpIHsgcmV0dXJuIHRydWU7IH0KQEAgLTE5MDcsNiArMTkxOCwxMCBAQCBwcml2YXRlOgogICAg
IH0KIAogICAgIGJvb2wgbV9tYWtlSnVtcFBhdGNoYWJsZTsKKworI2lmIE9TKFFOWCkKKyAgICBz
dGF0aWMgY29uc3QgYm9vbCBzX2lzSW50ZWdlckRpdlN1cHBvcnRlZDsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcAppbmRleCBjOWE1OGQ2Njk4Li4yMGM2NjA3MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTIxNCw3ICsyMTQsMTQgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBBcml0aERpdjogewogICAgICAgICAgICAgaWYgKE5vZGU6OnNob3Vs
ZFNwZWN1bGF0ZUludGVnZXJGb3JBcml0aG1ldGljKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9k
ZS0+Y2hpbGQyKCkubm9kZSgpKQogICAgICAgICAgICAgICAgICYmIG5vZGUtPmNhblNwZWN1bGF0
ZUludGVnZXIoKSkgewotICAgICAgICAgICAgICAgIGlmIChpc1g4NigpIHx8IGlzQVJNdjdzKCkp
IHsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorICAgICAgICAgICAgICAgIGNvbnN0IGJv
b2wgY3B1U3VwcG9ydHNJbnRlZ2VyRGl2ID0gdHJ1ZTsKKyNlbGlmIENQVShBUk1fVEhVTUIyKQor
ICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgY3B1U3VwcG9ydHNJbnRlZ2VyRGl2ID0gTWFjcm9B
c3NlbWJsZXI6OnN1cHBvcnRzSW50ZWdlckRpdigpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBj
b25zdCBib29sIGNwdVN1cHBvcnRzSW50ZWdlckRpdiA9IGZhbHNlOworI2VuZGlmCisgICAgICAg
ICAgICAgICAgaWYgKGNwdVN1cHBvcnRzSW50ZWdlckRpdikgewogICAgICAgICAgICAgICAgICAg
ICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPElu
dDMyVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggMzEwZjI0NGVm
NS4uZDA3MDkyN2FiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIK
ICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nQ29uc3RydWN0b3IuaCIK
KyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CiAKICNpZiBF
TkFCTEUoSklUKQpAQCAtMTYwMCw2ICsxNjAxLDEyIEBAIEpTQ2VsbCogREZHX09QRVJBVElPTiBv
cGVyYXRpb25NYWtlUm9wZTMoRXhlY1N0YXRlKiBleGVjLCBKU1N0cmluZyogYSwgSlNTdHJpbmcq
CiAgICAgcmV0dXJuIEpTUm9wZVN0cmluZzo6Y3JlYXRlKHZtLCBhLCBiLCBjKTsKIH0KIAoraW50
MzJfdCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk1vZE9uSW50cyhpbnQzMl90IGEsIGludDMyX3Qg
YikKK3sKKyAgICBkaXZfdCBxdW90aWVudEFuZFJlbWFpbmRlciA9IGRpdihhLCBiKTsKKyAgICBy
ZXR1cm4gcXVvdGllbnRBbmRSZW1haW5kZXIucmVtOworfQorCiBkb3VibGUgREZHX09QRVJBVElP
TiBvcGVyYXRpb25GTW9kT25JbnRzKGludDMyX3QgYSwgaW50MzJfdCBiKQogewogICAgIHJldHVy
biBmbW9kKGEsIGIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApp
bmRleCBjMzE0ZThlYjM5Li5mYjk4NzNjZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGRvdWJsZSBERkdfT1BF
UkFUSU9OICgqRF9ERkdPcGVyYXRpb25fREQpKGRvdWJsZSwgZG91YmxlKTsKIHR5cGVkZWYgZG91
YmxlIERGR19PUEVSQVRJT04gKCpEX0RGR09wZXJhdGlvbl9aWikoaW50MzJfdCwgaW50MzJfdCk7
CiB0eXBlZGVmIGRvdWJsZSBERkdfT1BFUkFUSU9OICgqRF9ERkdPcGVyYXRpb25fRUopKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgaW50MzJfdCBERkdfT1BFUkFUSU9OICgq
Wl9ERkdPcGVyYXRpb25fRCkoZG91YmxlKTsKK3R5cGVkZWYgaW50MzJfdCBERkdfT1BFUkFUSU9O
ICgqWl9ERkdPcGVyYXRpb25fWlopKGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBzaXplX3Qg
REZHX09QRVJBVElPTiAoKlNfREZHT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwg
SlNDZWxsKik7CiB0eXBlZGVmIHNpemVfdCBERkdfT1BFUkFUSU9OICgqU19ERkdPcGVyYXRpb25f
RUopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgc2l6ZV90IERGR19PUEVS
QVRJT04gKCpTX0RGR09wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSk7CkBAIC0yMDgsNiArMjA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgREZHX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRJbmxpbmVkQXJndW1lbnRCeVZhbChFeGVjU3RhdGUqLCBpbnQz
Ml8KIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0QXJndW1lbnRCeVZh
bChFeGVjU3RhdGUqLCBpbnQzMl90LCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIERG
R19PUEVSQVRJT04gb3BlcmF0aW9uTmV3RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNDZWxsKikgV1RG
X0lOVEVSTkFMOwogSlNDZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uRXhw
cmVzc2lvbihFeGVjU3RhdGUqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7CitpbnQzMl90IERGR19P
UEVSQVRJT04gb3BlcmF0aW9uTW9kT25JbnRzKGludDMyX3QsIGludDMyX3QpIFdURl9JTlRFUk5B
TDsKIGRvdWJsZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkZNb2RPbkludHMoaW50MzJfdCwgaW50
MzJfdCkgV1RGX0lOVEVSTkFMOwogc2l6ZV90IERGR19PUEVSQVRJT04gb3BlcmF0aW9uSXNPYmpl
Y3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBERkdf
T1BFUkFUSU9OIG9wZXJhdGlvbklzRnVuY3Rpb24oRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
aW5kZXggNDMzN2U4MGY1OS4uM2ExNTUzYjIzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTI4NzcsMTIgKzI4NzcsMTIgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2YoTm9kZSogbm9kZSkKICNlbmRpZgog
fQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBub2RlKQor
I2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
U29mdE1vZHVsb0Zvclg4NihOb2RlKiBub2RlKQogewogICAgIC8vIEluIHRoZSBmYXN0IHBhdGgs
IHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBiZSB0aGUgZmluYWwgcmVzdWx0CiAgICAgLy8gKGlu
IGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZpc29yfCksIHNvIHdlIHNwZWN1bGF0ZSBpdCBhcyBz
dHJpY3QgaW50MzIuCiAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7Ci0jaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKICAgICBpZiAoaXNJ
bnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAgaW50MzJfdCBk
aXZpc29yID0gdmFsdWVPZkludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKICAg
ICAgICAgaWYgKGRpdmlzb3IpIHsKQEAgLTI5MjIsMzYgKzI5MjIsOSBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBub2RlKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgfQotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykgfHwgQ1BVKEFSTV9U
SFVNQjIpCi0gICAgaWYgKGlzSW50MzJDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7
Ci0gICAgICAgIGludDMyX3QgZGl2aXNvciA9IHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGUtPmNo
aWxkMigpLm5vZGUoKSk7Ci0gICAgICAgIGlmIChkaXZpc29yID4gMCAmJiBoYXNPbmVCaXRTZXQo
ZGl2aXNvcikpIHsgLy8gSWYgcG93ZXIgb2YgMiB0aGVuIGp1c3QgbWFzawotICAgICAgICAgICAg
R1BSUmVnIGRpdmlkZW5kR1BSID0gb3AxLmdwcigpOwotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3By
KCk7Ci0KLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLmNtcChkaXZpZGVuZEdQUiwgQVJN
VGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKDApKTsKLSAgICAgICAgICAgIG1faml0LmFz
c2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCwgZmFsc2UpOwotICAgICAg
ICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubmVnKHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOwotICAg
ICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubW92KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOwot
ICAgICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKGRpdmlzb3IgLSAxKSwgcmVzdWx0
R1BSKTsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpD
b25kaXRpb25MVCk7Ci0gICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0R1BS
LCByZXN1bHRHUFIpOwotCi0gICAgICAgICAgICBpZiAoIW5vZGVDYW5JZ25vcmVOZWdhdGl2ZVpl
cm8obm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpIHsKLSAgICAgICAgICAgICAgICAvLyBDaGVjayB0
aGF0IHdlJ3JlIG5vdCBhYm91dCB0byBjcmVhdGUgbmVnYXRpdmUgemVyby4KLSAgICAgICAgICAg
ICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1lcmF0b3JQb3NpdGl2ZSA9IG1faml0LmJyYW5jaDMy
KEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbk9yRXF1YWwsIGRpdmlkZW5kR1BSLCBUcnVzdGVkSW1t
MzIoMCkpOwotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJvLCBK
U1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIHJl
c3VsdEdQUikpOwotICAgICAgICAgICAgICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGludGVnZXJSZXN1bHQocmVzdWx0R1BSLCBu
b2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgogCiAg
ICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLSNp
ZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorCiAgICAgR1BSVGVtcG9yYXJ5IGVheCh0aGlzLCBY
ODZSZWdpc3RlcnM6OmVheCk7CiAgICAgR1BSVGVtcG9yYXJ5IGVkeCh0aGlzLCBYODZSZWdpc3Rl
cnM6OmVkeCk7CiAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKQEAgLTMwMTYsNDMgKzI5
ODksODcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9k
ZSkKICAgICAKICAgICBpZiAob3AxU2F2ZUdQUiAhPSBvcDFHUFIpCiAgICAgICAgIHVubG9jayhv
cDFTYXZlR1BSKTsKLSAgICAgICAgICAgIAorCiAgICAgaW50ZWdlclJlc3VsdChlZHguZ3ByKCks
IG5vZGUpOworfQorI2VsaWYgQ1BVKEFSTV9USFVNQjIpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlU29mdE1vZHVsb0ZvckFSTShOb2RlKiBub2RlKQoreworICAgIC8vIEluIHRoZSBmYXN0
IHBhdGgsIHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBiZSB0aGUgZmluYWwgcmVzdWx0CisgICAg
Ly8gKGluIGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZpc29yfCksIHNvIHdlIHNwZWN1bGF0ZSBp
dCBhcyBzdHJpY3QgaW50MzIuCisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgaWYgKGlzSW50MzJDb25zdGFudChub2RlLT5jaGls
ZDIoKS5ub2RlKCkpKSB7CisgICAgICAgIGludDMyX3QgZGl2aXNvciA9IHZhbHVlT2ZJbnQzMkNv
bnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSk7CisgICAgICAgIGlmIChkaXZpc29yID4gMCAm
JiBoYXNPbmVCaXRTZXQoZGl2aXNvcikpIHsgLy8gSWYgcG93ZXIgb2YgMiB0aGVuIGp1c3QgbWFz
aworICAgICAgICAgICAgR1BSUmVnIGRpdmlkZW5kR1BSID0gb3AxLmdwcigpOworICAgICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgICAgIEdQUlJlZyByZXN1bHRH
UFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLmNtcChk
aXZpZGVuZEdQUiwgQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKDApKTsKKyAgICAg
ICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCwg
ZmFsc2UpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubmVnKHJlc3VsdEdQUiwgZGl2
aWRlbmRHUFIpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubW92KHJlc3VsdEdQUiwg
ZGl2aWRlbmRHUFIpOworICAgICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKGRpdmlz
b3IgLSAxKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFS
TXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCk7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIo
KS5uZWcocmVzdWx0R1BSLCByZXN1bHRHUFIpOworCisgICAgICAgICAgICBpZiAoIW5vZGVDYW5J
Z25vcmVOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpIHsKKyAgICAgICAgICAg
ICAgICAvLyBDaGVjayB0aGF0IHdlJ3JlIG5vdCBhYm91dCB0byBjcmVhdGUgbmVnYXRpdmUgemVy
by4KKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1lcmF0b3JQb3NpdGl2ZSA9
IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbk9yRXF1YWwsIGRpdmlkZW5k
R1BSLCBUcnVzdGVkSW1tMzIoMCkpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
TmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29t
cGlsZXI6Olplcm8sIHJlc3VsdEdQUikpOworICAgICAgICAgICAgICAgIG51bWVyYXRvclBvc2l0
aXZlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludGVnZXJSZXN1
bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIo
KSk7CiAKLSNlbGlmIENQVShBUFBMRV9BUk1WN1MpCi0gICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhp
cyk7Ci0gICAgR1BSVGVtcG9yYXJ5IHF1b3RpZW50VGhlblJlbWFpbmRlcih0aGlzKTsKLSAgICBH
UFJUZW1wb3JhcnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7CiAgICAgR1BSUmVnIGRpdmlkZW5kR1BS
ID0gb3AxLmdwcigpOwogICAgIEdQUlJlZyBkaXZpc29yR1BSID0gb3AyLmdwcigpOwotICAgIEdQ
UlJlZyBxdW90aWVudFRoZW5SZW1haW5kZXJHUFIgPSBxdW90aWVudFRoZW5SZW1haW5kZXIuZ3By
KCk7Ci0gICAgR1BSUmVnIG11bHRpcGx5QW5zd2VyR1BSID0gbXVsdGlwbHlBbnN3ZXIuZ3ByKCk7
CiAKLSAgICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwg
ZGl2aWRlbmRHUFIsIGRpdmlzb3JHUFIpOwotICAgIHNwZWN1bGF0aW9uQ2hlY2soT3ZlcmZsb3cs
IEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaE11bDMyKEpJVENvbXBpbGVyOjpPdmVyZmxv
dywgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSLCBkaXZpc29yR1BSLCBtdWx0aXBseUFuc3dlckdQ
UikpOwotICAgIG1faml0LmFzc2VtYmxlcigpLnN1YihxdW90aWVudFRoZW5SZW1haW5kZXJHUFIs
IGRpdmlkZW5kR1BSLCBtdWx0aXBseUFuc3dlckdQUik7CisgICAgR1BSUmVzdWx0IHJlc3VsdCh0
aGlzKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworCisgICAgaWYgKE1h
Y3JvQXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYoKSkgeworICAgICAgICBHUFJUZW1wb3Jh
cnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7CisgICAgICAgIEdQUlJlZyBtdWx0aXBseUFuc3dlckdQ
UiA9IG11bHRpcGx5QW5zd2VyLmdwcigpOworICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2
KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIsIGRpdmlzb3JHUFIpOworICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hNdWwzMihKSVRD
b21waWxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwgZGl2aXNvckdQUiwgbXVsdGlwbHlBbnN3ZXJH
UFIpKTsKKyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc3ViKHJlc3VsdEdQUiwgZGl2aWRlbmRH
UFIsIG11bHRpcGx5QW5zd2VyR1BSKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk1vZE9uSW50cywgcmVzdWx0
R1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CisgICAgfQogCiAgICAgLy8gSWYgdGhlIHVz
ZXIgY2FyZXMgYWJvdXQgbmVnYXRpdmUgemVybywgdGhlbiBzcGVjdWxhdGUgdGhhdCB3ZSdyZSBu
b3QgYWJvdXQKICAgICAvLyB0byBwcm9kdWNlIG5lZ2F0aXZlIHplcm8uCiAgICAgaWYgKCFub2Rl
Q2FuSWdub3JlTmVnYXRpdmVaZXJvKG5vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7CiAgICAgICAg
IC8vIENoZWNrIHRoYXQgd2UncmUgbm90IGFib3V0IHRvIGNyZWF0ZSBuZWdhdGl2ZSB6ZXJvLgog
ICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1lcmF0b3JQb3NpdGl2ZSA9IG1faml0LmJyYW5j
aDMyKEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbk9yRXF1YWwsIGRpdmlkZW5kR1BSLCBUcnVzdGVk
SW1tMzIoMCkpOwotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE5lZ2F0aXZlWmVybywgSlNWYWx1
ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpaZXJvLCBxdW90aWVu
dFRoZW5SZW1haW5kZXJHUFIpKTsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhOZWdhdGl2ZVpl
cm8sIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxlcjo6WmVy
bywgcmVzdWx0R1BSKSk7CiAgICAgICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0KTsK
ICAgICB9CiAKLSAgICBpbnRlZ2VyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgbm9k
ZSk7Ci0jZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRoYXQgY2FuIGRvIGludGVnZXIgZGl2aXNp
b24KKyAgICBpbnRlZ2VyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Cit9CisjZWxzZSAvLyBDUFUg
dHlwZSB3aXRob3V0IGludGVnZXIgZGl2aXNpb24KK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVy
YW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlSW50ZWdlck9wZXJh
bmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKwogICAgIC8vIERvIHRoaXMgdGhlICpzYWZl
c3QqIHdheSBwb3NzaWJsZTogY2FsbCBvdXQgdG8gYSBDIGZ1bmN0aW9uIHRoYXQgd2lsbCBkbyB0
aGUgbW9kdWxvLAogICAgIC8vIGFuZCB0aGVuIGF0dGVtcHQgdG8gY29udmVydCBiYWNrLgotICAg
IEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7Ci0gICAgR1BSUmVnIG9wMkdQUiA9IG9wMi5ncHIo
KTsKLSAgICAKKyAgICBHUFJSZWcgZGl2aWRlbmRHUFIgPSBvcDEuZ3ByKCk7CisgICAgR1BSUmVn
IGRpdmlzb3JHUFIgPSBvcDIuZ3ByKCk7CisKICAgICBGUFJSZXN1bHQgcmVzdWx0KHRoaXMpOwot
ICAgIAorCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkZNb2RPbkludHMsIHJlc3VsdC5mcHIoKSwgb3AxR1BSLCBvcDJHUFIpOwotICAgIAorICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uRk1vZE9uSW50cywgcmVzdWx0LmZwcigpLCBkaXZpZGVuZEdQ
UiwgZGl2aXNvckdQUik7CisKICAgICBGUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBH
UFJUZW1wb3JhcnkgaW50UmVzdWx0KHRoaXMpOwogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBm
YWlsdXJlQ2FzZXM7CkBAIC0zMDY0LDEwICszMDgxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
TmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29t
cGlsZXI6Olplcm8sIGludFJlc3VsdC5ncHIoKSkpOwogICAgICAgICBudW1lcmF0b3JQb3NpdGl2
ZS5saW5rKCZtX2ppdCk7CiAgICAgfQotICAgIAorCiAgICAgaW50ZWdlclJlc3VsdChpbnRSZXN1
bHQuZ3ByKCksIG5vZGUpOwotI2VuZGlmIC8vIENQVShYODYpIHx8IENQVShYODZfNjQpCiB9Cisj
ZW5kaWYKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFkZChOb2RlKiBub2RlKQogewpA
QCAtMzQ3Niw4ICszNDkzLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludGVnZXJB
cml0aERpdkZvclg4NihOb2RlKiBub2RlKQogICAgICAgICAgICAgCiAgICAgaW50ZWdlclJlc3Vs
dChlYXguZ3ByKCksIG5vZGUpOwogfQotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykKLXZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12N3MoTm9kZSogbm9kZSkK
KyNlbGlmIEVOQUJMRShBUk1fSU5URUdFUl9ESVYpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNKE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlSW50
ZWdlck9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICBTcGVjdWxhdGVJbnRl
Z2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwpAQCAtMzUxMSw3ICszNTI4LDEz
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2RlKiBub2RlKQogewog
ICAgIHN3aXRjaCAobm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgY2FzZSBJbnQzMlVzZTog
eworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgICAgIGNvbXBpbGVTb2Z0TW9kdWxv
Rm9yWDg2KG5vZGUpOworI2VsaWYgQ1BVKEFSTV9USFVNQjIpCisgICAgICAgIGNvbXBpbGVTb2Z0
TW9kdWxvRm9yQVJNKG5vZGUpOworI2Vsc2UKICAgICAgICAgY29tcGlsZVNvZnRNb2R1bG8obm9k
ZSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggNmQxZGVmYTMxNS4u
YWRjYjliZGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaApAQCAtMTExMCw2ICsxMTEwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9qaXQuemVy
b0V4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdCk7CiAgICAgICAg
IHJldHVybiBjYWxsOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFpfREZHT3BlcmF0aW9uX1paIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEs
IEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHMoYXJnMSwg
YXJnMik7CisgICAgICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBtX2ppdC5hcHBlbmRDYWxs
KG9wZXJhdGlvbik7CisgICAgICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCByZXN1bHQpOworICAgICAgICByZXR1cm4gY2FsbDsKKyAgICB9CiAgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RGR09wZXJhdGlvbl9FR3JpSnNnSSBv
cGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgSWRlbnRp
ZmllciogaWRlbnRpZmllcikKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGlkZW50aWZpZXIpKTsKQEAgLTEz
MTUsNiArMTMyMiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRy
KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gY2FsbDsK
ICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0RGR09wZXJhdGlv
bl9aWiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikK
KyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzKGFyZzEsIGFyZzIpOworICAgICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsID0gbV9qaXQuYXBwZW5kQ2FsbChvcGVyYXRpb24pOwor
ICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
cmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIGNhbGw7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRSBvcGVyYXRpb24sIEdQUlJlZyByZXN1
bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNFeGVjU3RhdGUoKTsKQEAgLTE5NzEsMTAgKzE5ODUsMTUgQEAgcHVibGljOgogICAg
IHZvaWQgY29tcGlsZUFyaXRoSU11bChOb2RlKik7CiAjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkKICAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JYODYoTm9kZSopOwotI2VsaWYg
Q1BVKEFQUExFX0FSTVY3UykKLSAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12
N3MoTm9kZSopOworI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKKyAgICB2b2lkIGNvbXBp
bGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0oTm9kZSopOwogI2VuZGlmCiAgICAgdm9pZCBjb21waWxl
QXJpdGhNb2QoTm9kZSopOworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgdm9pZCBj
b21waWxlU29mdE1vZHVsb0Zvclg4NihOb2RlKik7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJf
RElWKQorICAgIHZvaWQgY29tcGlsZVNvZnRNb2R1bG9Gb3JBUk0oTm9kZSopOworI2VuZGlmCiAg
ICAgdm9pZCBjb21waWxlU29mdE1vZHVsbyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0SW5k
ZXhlZFByb3BlcnR5U3RvcmFnZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbklu
dFR5cGVkQXJyYXkoY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3ImLCBOb2RlKiwgc2l6ZV90IGVs
ZW1lbnRTaXplLCBUeXBlZEFycmF5U2lnbmVkbmVzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAzNTk1NzUzYzEx
Li5jODlmNDMxYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTIyNTMsOCArMjI1Myw5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewog
I2lmIENQVShYODYpCiAgICAgICAgICAgICBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yWDg2KG5v
ZGUpOwotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykKLSAgICAgICAgICAgIGNvbXBpbGVJbnRlZ2Vy
QXJpdGhEaXZGb3JBUk12N3Mobm9kZSk7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQor
ICAgICAgICAgICAgQVNTRVJUKE1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYoKSk7
CisgICAgICAgICAgICBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNKG5vZGUpOwogI2Vsc2Ug
Ly8gQ1BVIHR5cGUgd2l0aG91dCBpbnRlZ2VyIGRpdmlkZQogICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gc2hvdWxkIGhhdmUgYmVlbiBjb3ZlcnRlZCBpbnRvIGEg
ZG91YmxlIGRpdmlkZS4KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmZDZlYjE0YWUxLi4xZWNkNDlkZjI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDEzLTA0LTI2ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAYmxhY2ti
ZXJyeS5jb20+CisKKyAgICAgICAgW0FSTV0gRXhwYW5kIHRoZSB1c2Ugb2YgaW50ZWdlciBkaXZp
c2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1
MTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm0uaDogQWRkZWQgRU5BQkxFX0FSTV9JTlRFR0VSX0RJVi4KKwogMjAxMy0wNC0y
NiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgQXBw
bGUgV2luZG93cyBWUzIwMTAgYnVpbGQgcmVzdWx0cyBpbnRvIGFuZCBnZXQgZGVwZW5kZW5jaWVz
IGZyb20gX18zMiBzdWZmaXhlZCBmb2xkZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggYzljMmM3MzRkMi4u
ZWQ0MjM1NDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC05MjYsNiArOTI2LDEwIEBACiAjZGVmaW5lIEVO
QUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRpZgogCisjaWYgQ1BVKEFQUExFX0FSTVY3Uykg
fHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhRTlgpKQorI2RlZmluZSBFTkFCTEVfQVJNX0lOVEVH
RVJfRElWIDEKKyNlbmRpZgorCiAjZGVmaW5lIEVOQUJMRV9PQkpFQ1RfTUFSS19MT0dHSU5HIDAK
IAogI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgIUVOQUJMRShPQkpFQ1RfTUFS
S19MT0dHSU5HKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEdUSykpICYmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQ
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199891</attachid>
            <date>2013-04-26 22:08:18 -0700</date>
            <delta_ts>2014-02-13 04:04:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>28901</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YTBjMWVlNTdjLi5lNmE1MGRm
NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTcsNiArNTE3LDcg
QEAgaWYgKFdURl9DUFVfQVJNKQogICAgICAgICBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAog
ICAgICAgICBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuY3BwCiAgICAgICAgIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5jcHAKKyAgICAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwCiAgICAgKQogZWxzZWlmIChXVEZfQ1BVX01JUFMpCiBlbHNlaWYgKFdURl9DUFVfWDg2
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjI0MTc1MmVkNS4uOTE1Y2ZhZjA0NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTMtMDQtMjYgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbQVJNXSBFeHBhbmQg
dGhlIHVzZSBvZiBpbnRlZ2VyIGRpdmlzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUxMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJZiBhdmFpbGFiaWxpdHkgb2YgaGFyZHdhcmUgaW50ZWdlciBk
aXZpc2lvbiBpc24ndCBrbm93biBhdCBjb21waWxlCisgICAgICAgIHRpbWUsIGNoZWNrIHRoZSBD
UFUgZmxhZ3MgYW5kIGRlY2lkZSBhdCBydW50aW1lIHdoZXRoZXIgdG8gZmFsbCBiYWNrCisgICAg
ICAgIHRvIHNvZnR3YXJlLiBDdXJyZW50bHksIHRoaXMgT1Mtc3BlY2lmaWMgY2hlY2sgaXMgaW1w
bGVtZW50ZWQgb24gUU5YLgorCisgICAgICAgIE1vcmVvdmVyLCB1c2UgZGl2KCkgaW5zdGVhZCBv
ZiBmbW9kKCkgaW4gdGhlIGNhbGN1bGF0aW9uIG9mIHNvZnR3YXJlCisgICAgICAgIG1vZHVsby4g
RXZlbiBpZiBpdCdzIHNvZnR3YXJlLWVtdWxhdGVkLCBkaXYoKSBpcyBmYXN0ZXIgdGhhbiBmbW9k
KCk6CisgICAgICAgIG9uIEFSTSB2NyBRTlgsIHdpdGhvdXQgaGFyZHdhcmUgZGl2aXNpb24sIHdl
IG5vdGljZWQgPjMlIHNwZWVkdXAgb24KKyAgICAgICAgU3VuU3BpZGVyLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFz
c2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6
c2Rpdik6IERpZCBub3QgY29tcGlsZSBjb25kaXRpb25hbGx5LgorICAgICAgICAoSlNDOjpBUk12
N0Fzc2VtYmxlcjo6dWRpdik6IERpdHRvLgorICAgICAgICAqIGFzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OmlzQVJNdjdzKTogUmVtb3ZlZC4KKyAgICAg
ICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA6IEFkZGVkLgorICAgICAgICAo
SlNDOjppc0ludGVnZXJEaXZTdXBwb3J0ZWQpOiBBZGRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3
OjpzdXBwb3J0c0ludGVnZXJEaXYpOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFz
ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKTogQ2hlY2tl
ZCBNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJbnRlZ2VyRGl2KCkgaW4gQXJpdGhEaXYgY2FzZS4K
KyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6b3Bl
cmF0aW9uTW9kT25JbnRzKTogQWRkZWQuCisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpaX0RGR09wZXJhdGlvbl9aWik6IEFkZGVkLgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvRm9yWDg2KTogQWRkZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvRm9yQVJNKTogQWRkZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvKTogU3BsaXQg
b2ZmIHRoZSBYODYgYW5kIEFSTSBjb2RlZ2VuLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNKTogUmVuYW1lZCBmcm9tIGNvbXBp
bGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12Ny4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKTogQWxsb3dlZCBydW4tdGltZSBkZXRlY3Rpb24gb2YgaW50
ZWdlciBkaXYgb24gQVJNLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKTogQWRkZWQgb3Zl
cmxvYWRzIHdpdGggWl9ERkdPcGVyYXRpb25fWlogYXJndW1lbnRzLgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSk6IFVzZWQgY29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTS4KKwogMjAx
My0wNC0yNiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgQXBwbGUgV2luZG93cyBWUzIwMTAgYnVpbGQgcmVzdWx0cyBpbnRvIGFuZCBnZXQgZGVwZW5k
ZW5jaWVzIGZyb20gX18zMiBzdWZmaXhlZCBmb2xkZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBjMDhjNzU1ZjVmLi5hZThmYTc4ZDU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNzMsNiArNzMsNyBAQCBq
YXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk0uY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNDdhYTRlNmQ4MC4uMjVlZmJjNDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU3NCw2ICs1NzQsNyBAQAogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyogTWFj
cm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNw
cCAqLzsgfTsKIAkJODZDNTY4RTExMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQ
Uy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4
REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2QzU2OEUyMTFBMjEzRUUwMDA3
RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NkM1NjhERjExQTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2QzU2
OEU0RkI5Mjg2N0ExNkZEMTAwMiAvKiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QzU2OEUzRkI5Mjg2N0ExNkZE
MTAwMiAvKiBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcCAqLzsgfTsKIAkJODZDQTAzMkUxMDM4RTg0
NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODZDQTAzMkQxMDM4RTg0NDAwMjhBNjA5IC8qIEV4ZWN1dGFibGUu
Y3BwICovOyB9OwogCQk4NkNBRkVFMzEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQUZFRTIxMDM1
RERFNjAwMjhBNjA5IC8qIEV4ZWN1dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkNDODVBMTBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZD
Qzg1QTAwRUU3OUE0NzAwMjg4NjgyIC8qIEpJVElubGluZXMuaCAqLzsgfTsKQEAgLTE0NzcsNiAr
MTQ3OCw3IEBACiAJCTg2QzU2OEREMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFS
TS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxl
ckFSTS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QzU2OERFMTFBMjEzRUUw
MDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJNSVBTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg2QzU2OERGMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1JUFNBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODZDNTY4RTNGQjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVy
QVJNdjcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0EwMzJEMTAz
OEU4NDQwMDI4QTYwOSAvKiBFeGVjdXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NkNBRkVFMjEwMzVEREU2MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFeGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg2Q0M4NUEwMEVFNzlBNDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI4NDUsNiArMjg0Nyw3IEBACiAJCQkJODZDMzZFRTkwRUUxMjg5RDAwQjNE
RjU5IC8qIE1hY3JvQXNzZW1ibGVyLmggKi8sCiAJCQkJODZDNTY4REQxMUEyMTNFRTAwMDdGN0Yw
IC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCAqLywKIAkJCQk4NkQzQjJDMjEwMTU2QkRFMDAyODY1
RTcgLyogTWFjcm9Bc3NlbWJsZXJBUk0uaCAqLywKKwkJCQk4NkM1NjhFM0ZCOTI4NjdBMTZGRDEw
MDIgLyogTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAgKi8sCiAJCQkJODZBREQxNDQwRkRERUE5ODAw
MDZFRUMyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuaCAqLywKIAkJCQk4NjNCMjNERjBGQzYwRTYy
MDA3MDNBQTQgLyogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmggKi8sCiAJCQkJODZDNTY4REUxMUEy
MTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oICovLApAQCAtMzk3Nyw2ICszOTgw
LDcgQEAKIAkJCQkxNEI3MjNCMjEyRDdEQTQ2MDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUIzRUNGMTYyMzdGNkMwMEFCNjdBRCAvKiBNYWNy
b0Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3
RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODZDNTY4RTRG
QjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODZBRTY0QTgxMzVFNUUxQzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUMyQjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxv
Y2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyRDZGMDgxMzUzOUEyODAwQjAyRTg2IC8q
IE1hcmtlZEJsb2NrLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDI4OTg5NTQ5ZDQuLjA3OWI1MDk1
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1i
bGVyLmgKQEAgLTY2MSwxMCArNjYxLDggQEAgcHJpdmF0ZToKICAgICAgICAgT1BfUk9SX3JlZ19U
MiAgID0gMHhGQTYwLAogICAgICAgICBPUF9DTFogICAgICAgICAgPSAweEZBQjAsCiAgICAgICAg
IE9QX1NNVUxMX1QxICAgICA9IDB4RkI4MCwKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgICAg
ICBPUF9TRElWX1QxICAgICAgPSAweEZCOTAsCiAgICAgICAgIE9QX1VESVZfVDEgICAgICA9IDB4
RkJCMCwKLSNlbmRpZgogICAgIH0gT3Bjb2RlSUQxOwogCiAgICAgdHlwZWRlZiBlbnVtIHsKQEAg
LTE0MDcsNyArMTQwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9w
MTJSZWc0Rm91ckZvdXJzKE9QX1JPUl9yZWdfVDIsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMCwg
cm0pKTsKICAgICB9CiAKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBzZGl2KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAg
ICAgewogICAgICAgICBBU1NFUlQoIUJhZFJlZyhyZCkpOwpAQCAtMTQxNSw3ICsxNDEyLDYgQEAg
cHVibGljOgogICAgICAgICBBU1NFUlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRl
ci50d29Xb3JkT3AxMlJlZzRGb3VyRm91cnMoT1BfU0RJVl9UMSwgcm4sIEZvdXJGb3VycygweGYs
IHJkLCAweGYsIHJtKSk7CiAgICAgfQotI2VuZGlmCiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c211bGwoUmVnaXN0ZXJJRCByZExvLCBSZWdpc3RlcklEIHJkSGksIFJlZ2lzdGVySUQgcm4sIFJl
Z2lzdGVySUQgcm0pCiAgICAgewpAQCAtMTc1Myw3ICsxNzQ5LDYgQEAgcHVibGljOgogICAgICAg
ICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzQwSW1tM1JlZzRJbW0yMEltbTUoT1BfVUJGWF9U
MSwgcmQsIHJuLCAobHNiICYgMHgxYykgPDwgMTAsIChsc2IgJiAweDMpIDw8IDYsICh3aWR0aCAt
IDEpICYgMHgxZik7CiAgICAgfQogCi0jaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgdWRpdihSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklE
IHJtKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFCYWRSZWcocmQpKTsKQEAgLTE3NjEsNyArMTc1
Niw2IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9m
b3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1VESVZfVDEsIHJuLCBGb3VyRm91
cnMoMHhmLCByZCwgMHhmLCBybSkpOwogICAgIH0KLSNlbmRpZgogCiAgICAgdm9pZCB2YWRkKEZQ
RG91YmxlUmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lz
dGVySUQgcm0pCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCA2OGZkODA0ZWNjLi43NTVlNTRm
ZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0
TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fi
c3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtNDYsMTUgKzQ2LDYgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLWlubGluZSBib29sIGlzQVJNdjdzKCkKLXsKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQot
ICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQog
aW5saW5lIGJvb2wgaXNYODYoKQogewogI2lmIENQVShYODZfNjQpIHx8IENQVShYODYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yZWQ1ZmMyYjA2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJT
SVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShBU1NFTUJMRVIp
ICYmIENQVShBUk1fVEhVTUIyKQorCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIgor
CisjaWYgT1MoUU5YKQorI2luY2x1ZGUgPHN5cy9zeXNwYWdlLmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIEpTQyB7CisKKyNpZiBPUyhRTlgpCisKK3N0YXRpYyBib29sIGlzSW50ZWdlckRpdlN1cHBv
cnRlZCgpCit7CisjaWZkZWYgQVJNX0NQVV9GTEFHX0lESVYKKyAgICByZXR1cm4gISEoU1lTUEFH
RV9FTlRSWShjcHVpbmZvKS0+ZmxhZ3MgJiBBUk1fQ1BVX0ZMQUdfSURJVik7CisjZWxzZQorICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitjb25zdCBib29sIE1hY3JvQXNzZW1ibGVyQVJN
djc6OnNfaXNJbnRlZ2VyRGl2U3VwcG9ydGVkID0gaXNJbnRlZ2VyRGl2U3VwcG9ydGVkKCk7CisK
KyNlbmRpZiAvLyBPUyhRTlgpCisKK30KKworI2VuZGlmIC8vIEVOQUJMRShBU1NFTUJMRVIpICYm
IENQVShBUk1fVEhVTUIyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBiMWJjNDE3Mjk2Li4xYjA3NDg1NGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaApAQCAtNzkzLDggKzc5MywxOSBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAK
LSAgICAvLyBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zOgorICAgIC8vIEludGVnZXIgb3BlcmF0
aW9ucy4KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0ludGVnZXJEaXYoKQorICAgIHsKKyNpZiBD
UFUoQVBQTEVfQVJNVjdTKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbGlmIE9TKFFOWCkKKyAg
ICAgICAgcmV0dXJuIHNfaXNJbnRlZ2VyRGl2U3VwcG9ydGVkOworI2Vsc2UKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQogCisgICAgLy8gRmxvYXRpbmctcG9pbnQgb3BlcmF0
aW9ucy4KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSB7IHJldHVybiB0
cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSB7
IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3Fy
dCgpIHsgcmV0dXJuIHRydWU7IH0KQEAgLTE5MDcsNiArMTkxOCwxMCBAQCBwcml2YXRlOgogICAg
IH0KIAogICAgIGJvb2wgbV9tYWtlSnVtcFBhdGNoYWJsZTsKKworI2lmIE9TKFFOWCkKKyAgICBz
dGF0aWMgY29uc3QgYm9vbCBzX2lzSW50ZWdlckRpdlN1cHBvcnRlZDsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcAppbmRleCBjOWE1OGQ2Njk4Li4yMGM2NjA3MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTIxNCw3ICsyMTQsMTQgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBBcml0aERpdjogewogICAgICAgICAgICAgaWYgKE5vZGU6OnNob3Vs
ZFNwZWN1bGF0ZUludGVnZXJGb3JBcml0aG1ldGljKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9k
ZS0+Y2hpbGQyKCkubm9kZSgpKQogICAgICAgICAgICAgICAgICYmIG5vZGUtPmNhblNwZWN1bGF0
ZUludGVnZXIoKSkgewotICAgICAgICAgICAgICAgIGlmIChpc1g4NigpIHx8IGlzQVJNdjdzKCkp
IHsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorICAgICAgICAgICAgICAgIGNvbnN0IGJv
b2wgY3B1U3VwcG9ydHNJbnRlZ2VyRGl2ID0gdHJ1ZTsKKyNlbGlmIENQVShBUk1fVEhVTUIyKQor
ICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgY3B1U3VwcG9ydHNJbnRlZ2VyRGl2ID0gTWFjcm9B
c3NlbWJsZXI6OnN1cHBvcnRzSW50ZWdlckRpdigpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBj
b25zdCBib29sIGNwdVN1cHBvcnRzSW50ZWdlckRpdiA9IGZhbHNlOworI2VuZGlmCisgICAgICAg
ICAgICAgICAgaWYgKGNwdVN1cHBvcnRzSW50ZWdlckRpdikgewogICAgICAgICAgICAgICAgICAg
ICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFuZFVuYm94SWZQcm9maXRhYmxlPElu
dDMyVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggMzEwZjI0NGVm
NS4uZDA3MDkyN2FiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIK
ICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nQ29uc3RydWN0b3IuaCIK
KyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CiAKICNpZiBF
TkFCTEUoSklUKQpAQCAtMTYwMCw2ICsxNjAxLDEyIEBAIEpTQ2VsbCogREZHX09QRVJBVElPTiBv
cGVyYXRpb25NYWtlUm9wZTMoRXhlY1N0YXRlKiBleGVjLCBKU1N0cmluZyogYSwgSlNTdHJpbmcq
CiAgICAgcmV0dXJuIEpTUm9wZVN0cmluZzo6Y3JlYXRlKHZtLCBhLCBiLCBjKTsKIH0KIAoraW50
MzJfdCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk1vZE9uSW50cyhpbnQzMl90IGEsIGludDMyX3Qg
YikKK3sKKyAgICBkaXZfdCBxdW90aWVudEFuZFJlbWFpbmRlciA9IGRpdihhLCBiKTsKKyAgICBy
ZXR1cm4gcXVvdGllbnRBbmRSZW1haW5kZXIucmVtOworfQorCiBkb3VibGUgREZHX09QRVJBVElP
TiBvcGVyYXRpb25GTW9kT25JbnRzKGludDMyX3QgYSwgaW50MzJfdCBiKQogewogICAgIHJldHVy
biBmbW9kKGEsIGIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApp
bmRleCBjMzE0ZThlYjM5Li5mYjk4NzNjZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGRvdWJsZSBERkdfT1BF
UkFUSU9OICgqRF9ERkdPcGVyYXRpb25fREQpKGRvdWJsZSwgZG91YmxlKTsKIHR5cGVkZWYgZG91
YmxlIERGR19PUEVSQVRJT04gKCpEX0RGR09wZXJhdGlvbl9aWikoaW50MzJfdCwgaW50MzJfdCk7
CiB0eXBlZGVmIGRvdWJsZSBERkdfT1BFUkFUSU9OICgqRF9ERkdPcGVyYXRpb25fRUopKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgaW50MzJfdCBERkdfT1BFUkFUSU9OICgq
Wl9ERkdPcGVyYXRpb25fRCkoZG91YmxlKTsKK3R5cGVkZWYgaW50MzJfdCBERkdfT1BFUkFUSU9O
ICgqWl9ERkdPcGVyYXRpb25fWlopKGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBzaXplX3Qg
REZHX09QRVJBVElPTiAoKlNfREZHT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwg
SlNDZWxsKik7CiB0eXBlZGVmIHNpemVfdCBERkdfT1BFUkFUSU9OICgqU19ERkdPcGVyYXRpb25f
RUopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgc2l6ZV90IERGR19PUEVS
QVRJT04gKCpTX0RGR09wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSk7CkBAIC0yMDgsNiArMjA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgREZHX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRJbmxpbmVkQXJndW1lbnRCeVZhbChFeGVjU3RhdGUqLCBpbnQz
Ml8KIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0QXJndW1lbnRCeVZh
bChFeGVjU3RhdGUqLCBpbnQzMl90LCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIERG
R19PUEVSQVRJT04gb3BlcmF0aW9uTmV3RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNDZWxsKikgV1RG
X0lOVEVSTkFMOwogSlNDZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uRXhw
cmVzc2lvbihFeGVjU3RhdGUqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7CitpbnQzMl90IERGR19P
UEVSQVRJT04gb3BlcmF0aW9uTW9kT25JbnRzKGludDMyX3QsIGludDMyX3QpIFdURl9JTlRFUk5B
TDsKIGRvdWJsZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkZNb2RPbkludHMoaW50MzJfdCwgaW50
MzJfdCkgV1RGX0lOVEVSTkFMOwogc2l6ZV90IERGR19PUEVSQVRJT04gb3BlcmF0aW9uSXNPYmpl
Y3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBERkdf
T1BFUkFUSU9OIG9wZXJhdGlvbklzRnVuY3Rpb24oRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
aW5kZXggNDMzN2U4MGY1OS4uM2ExNTUzYjIzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTI4NzcsMTIgKzI4NzcsMTIgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2YoTm9kZSogbm9kZSkKICNlbmRpZgog
fQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBub2RlKQor
I2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
U29mdE1vZHVsb0Zvclg4NihOb2RlKiBub2RlKQogewogICAgIC8vIEluIHRoZSBmYXN0IHBhdGgs
IHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBiZSB0aGUgZmluYWwgcmVzdWx0CiAgICAgLy8gKGlu
IGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZpc29yfCksIHNvIHdlIHNwZWN1bGF0ZSBpdCBhcyBz
dHJpY3QgaW50MzIuCiAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7Ci0jaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKICAgICBpZiAoaXNJ
bnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAgaW50MzJfdCBk
aXZpc29yID0gdmFsdWVPZkludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKICAg
ICAgICAgaWYgKGRpdmlzb3IpIHsKQEAgLTI5MjIsMzYgKzI5MjIsOSBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBub2RlKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgfQotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykgfHwgQ1BVKEFSTV9U
SFVNQjIpCi0gICAgaWYgKGlzSW50MzJDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7
Ci0gICAgICAgIGludDMyX3QgZGl2aXNvciA9IHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGUtPmNo
aWxkMigpLm5vZGUoKSk7Ci0gICAgICAgIGlmIChkaXZpc29yID4gMCAmJiBoYXNPbmVCaXRTZXQo
ZGl2aXNvcikpIHsgLy8gSWYgcG93ZXIgb2YgMiB0aGVuIGp1c3QgbWFzawotICAgICAgICAgICAg
R1BSUmVnIGRpdmlkZW5kR1BSID0gb3AxLmdwcigpOwotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3By
KCk7Ci0KLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLmNtcChkaXZpZGVuZEdQUiwgQVJN
VGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKDApKTsKLSAgICAgICAgICAgIG1faml0LmFz
c2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCwgZmFsc2UpOwotICAgICAg
ICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubmVnKHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOwotICAg
ICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubW92KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOwot
ICAgICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKGRpdmlzb3IgLSAxKSwgcmVzdWx0
R1BSKTsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpD
b25kaXRpb25MVCk7Ci0gICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0R1BS
LCByZXN1bHRHUFIpOwotCi0gICAgICAgICAgICBpZiAoIW5vZGVDYW5JZ25vcmVOZWdhdGl2ZVpl
cm8obm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpIHsKLSAgICAgICAgICAgICAgICAvLyBDaGVjayB0
aGF0IHdlJ3JlIG5vdCBhYm91dCB0byBjcmVhdGUgbmVnYXRpdmUgemVyby4KLSAgICAgICAgICAg
ICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1lcmF0b3JQb3NpdGl2ZSA9IG1faml0LmJyYW5jaDMy
KEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbk9yRXF1YWwsIGRpdmlkZW5kR1BSLCBUcnVzdGVkSW1t
MzIoMCkpOwotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJvLCBK
U1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIHJl
c3VsdEdQUikpOwotICAgICAgICAgICAgICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGludGVnZXJSZXN1bHQocmVzdWx0R1BSLCBu
b2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgogCiAg
ICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLSNp
ZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorCiAgICAgR1BSVGVtcG9yYXJ5IGVheCh0aGlzLCBY
ODZSZWdpc3RlcnM6OmVheCk7CiAgICAgR1BSVGVtcG9yYXJ5IGVkeCh0aGlzLCBYODZSZWdpc3Rl
cnM6OmVkeCk7CiAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKQEAgLTMwMTYsNDMgKzI5
ODksODcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9k
ZSkKICAgICAKICAgICBpZiAob3AxU2F2ZUdQUiAhPSBvcDFHUFIpCiAgICAgICAgIHVubG9jayhv
cDFTYXZlR1BSKTsKLSAgICAgICAgICAgIAorCiAgICAgaW50ZWdlclJlc3VsdChlZHguZ3ByKCks
IG5vZGUpOworfQorI2VsaWYgQ1BVKEFSTV9USFVNQjIpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlU29mdE1vZHVsb0ZvckFSTShOb2RlKiBub2RlKQoreworICAgIC8vIEluIHRoZSBmYXN0
IHBhdGgsIHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBiZSB0aGUgZmluYWwgcmVzdWx0CisgICAg
Ly8gKGluIGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZpc29yfCksIHNvIHdlIHNwZWN1bGF0ZSBp
dCBhcyBzdHJpY3QgaW50MzIuCisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgaWYgKGlzSW50MzJDb25zdGFudChub2RlLT5jaGls
ZDIoKS5ub2RlKCkpKSB7CisgICAgICAgIGludDMyX3QgZGl2aXNvciA9IHZhbHVlT2ZJbnQzMkNv
bnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSk7CisgICAgICAgIGlmIChkaXZpc29yID4gMCAm
JiBoYXNPbmVCaXRTZXQoZGl2aXNvcikpIHsgLy8gSWYgcG93ZXIgb2YgMiB0aGVuIGp1c3QgbWFz
aworICAgICAgICAgICAgR1BSUmVnIGRpdmlkZW5kR1BSID0gb3AxLmdwcigpOworICAgICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgICAgIEdQUlJlZyByZXN1bHRH
UFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLmNtcChk
aXZpZGVuZEdQUiwgQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKDApKTsKKyAgICAg
ICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCwg
ZmFsc2UpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubmVnKHJlc3VsdEdQUiwgZGl2
aWRlbmRHUFIpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubW92KHJlc3VsdEdQUiwg
ZGl2aWRlbmRHUFIpOworICAgICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKGRpdmlz
b3IgLSAxKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFS
TXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCk7CisgICAgICAgICAgICBtX2ppdC5hc3NlbWJsZXIo
KS5uZWcocmVzdWx0R1BSLCByZXN1bHRHUFIpOworCisgICAgICAgICAgICBpZiAoIW5vZGVDYW5J
Z25vcmVOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpIHsKKyAgICAgICAgICAg
ICAgICAvLyBDaGVjayB0aGF0IHdlJ3JlIG5vdCBhYm91dCB0byBjcmVhdGUgbmVnYXRpdmUgemVy
by4KKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1lcmF0b3JQb3NpdGl2ZSA9
IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbk9yRXF1YWwsIGRpdmlkZW5k
R1BSLCBUcnVzdGVkSW1tMzIoMCkpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
TmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29t
cGlsZXI6Olplcm8sIHJlc3VsdEdQUikpOworICAgICAgICAgICAgICAgIG51bWVyYXRvclBvc2l0
aXZlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludGVnZXJSZXN1
bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIo
KSk7CiAKLSNlbGlmIENQVShBUFBMRV9BUk1WN1MpCi0gICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhp
cyk7Ci0gICAgR1BSVGVtcG9yYXJ5IHF1b3RpZW50VGhlblJlbWFpbmRlcih0aGlzKTsKLSAgICBH
UFJUZW1wb3JhcnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7CiAgICAgR1BSUmVnIGRpdmlkZW5kR1BS
ID0gb3AxLmdwcigpOwogICAgIEdQUlJlZyBkaXZpc29yR1BSID0gb3AyLmdwcigpOwotICAgIEdQ
UlJlZyBxdW90aWVudFRoZW5SZW1haW5kZXJHUFIgPSBxdW90aWVudFRoZW5SZW1haW5kZXIuZ3By
KCk7Ci0gICAgR1BSUmVnIG11bHRpcGx5QW5zd2VyR1BSID0gbXVsdGlwbHlBbnN3ZXIuZ3ByKCk7
CiAKLSAgICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwg
ZGl2aWRlbmRHUFIsIGRpdmlzb3JHUFIpOwotICAgIHNwZWN1bGF0aW9uQ2hlY2soT3ZlcmZsb3cs
IEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaE11bDMyKEpJVENvbXBpbGVyOjpPdmVyZmxv
dywgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSLCBkaXZpc29yR1BSLCBtdWx0aXBseUFuc3dlckdQ
UikpOwotICAgIG1faml0LmFzc2VtYmxlcigpLnN1YihxdW90aWVudFRoZW5SZW1haW5kZXJHUFIs
IGRpdmlkZW5kR1BSLCBtdWx0aXBseUFuc3dlckdQUik7CisgICAgR1BSUmVzdWx0IHJlc3VsdCh0
aGlzKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworCisgICAgaWYgKE1h
Y3JvQXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYoKSkgeworICAgICAgICBHUFJUZW1wb3Jh
cnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7CisgICAgICAgIEdQUlJlZyBtdWx0aXBseUFuc3dlckdQ
UiA9IG11bHRpcGx5QW5zd2VyLmdwcigpOworICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2
KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIsIGRpdmlzb3JHUFIpOworICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hNdWwzMihKSVRD
b21waWxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwgZGl2aXNvckdQUiwgbXVsdGlwbHlBbnN3ZXJH
UFIpKTsKKyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc3ViKHJlc3VsdEdQUiwgZGl2aWRlbmRH
UFIsIG11bHRpcGx5QW5zd2VyR1BSKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk1vZE9uSW50cywgcmVzdWx0
R1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CisgICAgfQogCiAgICAgLy8gSWYgdGhlIHVz
ZXIgY2FyZXMgYWJvdXQgbmVnYXRpdmUgemVybywgdGhlbiBzcGVjdWxhdGUgdGhhdCB3ZSdyZSBu
b3QgYWJvdXQKICAgICAvLyB0byBwcm9kdWNlIG5lZ2F0aXZlIHplcm8uCiAgICAgaWYgKCFub2Rl
Q2FuSWdub3JlTmVnYXRpdmVaZXJvKG5vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7CiAgICAgICAg
IC8vIENoZWNrIHRoYXQgd2UncmUgbm90IGFib3V0IHRvIGNyZWF0ZSBuZWdhdGl2ZSB6ZXJvLgog
ICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1lcmF0b3JQb3NpdGl2ZSA9IG1faml0LmJyYW5j
aDMyKEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbk9yRXF1YWwsIGRpdmlkZW5kR1BSLCBUcnVzdGVk
SW1tMzIoMCkpOwotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE5lZ2F0aXZlWmVybywgSlNWYWx1
ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpaZXJvLCBxdW90aWVu
dFRoZW5SZW1haW5kZXJHUFIpKTsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhOZWdhdGl2ZVpl
cm8sIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxlcjo6WmVy
bywgcmVzdWx0R1BSKSk7CiAgICAgICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0KTsK
ICAgICB9CiAKLSAgICBpbnRlZ2VyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgbm9k
ZSk7Ci0jZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRoYXQgY2FuIGRvIGludGVnZXIgZGl2aXNp
b24KKyAgICBpbnRlZ2VyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Cit9CisjZWxzZSAvLyBDUFUg
dHlwZSB3aXRob3V0IGludGVnZXIgZGl2aXNpb24KK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVy
YW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlSW50ZWdlck9wZXJh
bmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKwogICAgIC8vIERvIHRoaXMgdGhlICpzYWZl
c3QqIHdheSBwb3NzaWJsZTogY2FsbCBvdXQgdG8gYSBDIGZ1bmN0aW9uIHRoYXQgd2lsbCBkbyB0
aGUgbW9kdWxvLAogICAgIC8vIGFuZCB0aGVuIGF0dGVtcHQgdG8gY29udmVydCBiYWNrLgotICAg
IEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7Ci0gICAgR1BSUmVnIG9wMkdQUiA9IG9wMi5ncHIo
KTsKLSAgICAKKyAgICBHUFJSZWcgZGl2aWRlbmRHUFIgPSBvcDEuZ3ByKCk7CisgICAgR1BSUmVn
IGRpdmlzb3JHUFIgPSBvcDIuZ3ByKCk7CisKICAgICBGUFJSZXN1bHQgcmVzdWx0KHRoaXMpOwot
ICAgIAorCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkZNb2RPbkludHMsIHJlc3VsdC5mcHIoKSwgb3AxR1BSLCBvcDJHUFIpOwotICAgIAorICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uRk1vZE9uSW50cywgcmVzdWx0LmZwcigpLCBkaXZpZGVuZEdQ
UiwgZGl2aXNvckdQUik7CisKICAgICBGUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBH
UFJUZW1wb3JhcnkgaW50UmVzdWx0KHRoaXMpOwogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBm
YWlsdXJlQ2FzZXM7CkBAIC0zMDY0LDEwICszMDgxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
TmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29t
cGlsZXI6Olplcm8sIGludFJlc3VsdC5ncHIoKSkpOwogICAgICAgICBudW1lcmF0b3JQb3NpdGl2
ZS5saW5rKCZtX2ppdCk7CiAgICAgfQotICAgIAorCiAgICAgaW50ZWdlclJlc3VsdChpbnRSZXN1
bHQuZ3ByKCksIG5vZGUpOwotI2VuZGlmIC8vIENQVShYODYpIHx8IENQVShYODZfNjQpCiB9Cisj
ZW5kaWYKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFkZChOb2RlKiBub2RlKQogewpA
QCAtMzQ3Niw4ICszNDkzLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludGVnZXJB
cml0aERpdkZvclg4NihOb2RlKiBub2RlKQogICAgICAgICAgICAgCiAgICAgaW50ZWdlclJlc3Vs
dChlYXguZ3ByKCksIG5vZGUpOwogfQotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykKLXZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12N3MoTm9kZSogbm9kZSkK
KyNlbGlmIEVOQUJMRShBUk1fSU5URUdFUl9ESVYpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNKE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlSW50
ZWdlck9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICBTcGVjdWxhdGVJbnRl
Z2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwpAQCAtMzUxMSw3ICszNTI4LDEz
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2RlKiBub2RlKQogewog
ICAgIHN3aXRjaCAobm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgY2FzZSBJbnQzMlVzZTog
eworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgICAgIGNvbXBpbGVTb2Z0TW9kdWxv
Rm9yWDg2KG5vZGUpOworI2VsaWYgQ1BVKEFSTV9USFVNQjIpCisgICAgICAgIGNvbXBpbGVTb2Z0
TW9kdWxvRm9yQVJNKG5vZGUpOworI2Vsc2UKICAgICAgICAgY29tcGlsZVNvZnRNb2R1bG8obm9k
ZSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggNmQxZGVmYTMxNS4u
YWRjYjliZGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaApAQCAtMTExMCw2ICsxMTEwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9qaXQuemVy
b0V4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdCk7CiAgICAgICAg
IHJldHVybiBjYWxsOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFpfREZHT3BlcmF0aW9uX1paIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEs
IEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHMoYXJnMSwg
YXJnMik7CisgICAgICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBtX2ppdC5hcHBlbmRDYWxs
KG9wZXJhdGlvbik7CisgICAgICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCByZXN1bHQpOworICAgICAgICByZXR1cm4gY2FsbDsKKyAgICB9CiAgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RGR09wZXJhdGlvbl9FR3JpSnNnSSBv
cGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgSWRlbnRp
ZmllciogaWRlbnRpZmllcikKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGlkZW50aWZpZXIpKTsKQEAgLTEz
MTUsNiArMTMyMiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRy
KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gY2FsbDsK
ICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0RGR09wZXJhdGlv
bl9aWiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikK
KyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzKGFyZzEsIGFyZzIpOworICAgICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsID0gbV9qaXQuYXBwZW5kQ2FsbChvcGVyYXRpb24pOwor
ICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
cmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIGNhbGw7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRSBvcGVyYXRpb24sIEdQUlJlZyByZXN1
bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNFeGVjU3RhdGUoKTsKQEAgLTE5NzEsMTAgKzE5ODUsMTUgQEAgcHVibGljOgogICAg
IHZvaWQgY29tcGlsZUFyaXRoSU11bChOb2RlKik7CiAjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkKICAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JYODYoTm9kZSopOwotI2VsaWYg
Q1BVKEFQUExFX0FSTVY3UykKLSAgICB2b2lkIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12
N3MoTm9kZSopOworI2VsaWYgRU5BQkxFKEFSTV9JTlRFR0VSX0RJVikKKyAgICB2b2lkIGNvbXBp
bGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk0oTm9kZSopOwogI2VuZGlmCiAgICAgdm9pZCBjb21waWxl
QXJpdGhNb2QoTm9kZSopOworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgdm9pZCBj
b21waWxlU29mdE1vZHVsb0Zvclg4NihOb2RlKik7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJf
RElWKQorICAgIHZvaWQgY29tcGlsZVNvZnRNb2R1bG9Gb3JBUk0oTm9kZSopOworI2VuZGlmCiAg
ICAgdm9pZCBjb21waWxlU29mdE1vZHVsbyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0SW5k
ZXhlZFByb3BlcnR5U3RvcmFnZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbklu
dFR5cGVkQXJyYXkoY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3ImLCBOb2RlKiwgc2l6ZV90IGVs
ZW1lbnRTaXplLCBUeXBlZEFycmF5U2lnbmVkbmVzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAzNTk1NzUzYzEx
Li5jODlmNDMxYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTIyNTMsOCArMjI1Myw5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewog
I2lmIENQVShYODYpCiAgICAgICAgICAgICBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yWDg2KG5v
ZGUpOwotI2VsaWYgQ1BVKEFQUExFX0FSTVY3UykKLSAgICAgICAgICAgIGNvbXBpbGVJbnRlZ2Vy
QXJpdGhEaXZGb3JBUk12N3Mobm9kZSk7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQor
ICAgICAgICAgICAgQVNTRVJUKE1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYoKSk7
CisgICAgICAgICAgICBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNKG5vZGUpOwogI2Vsc2Ug
Ly8gQ1BVIHR5cGUgd2l0aG91dCBpbnRlZ2VyIGRpdmlkZQogICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gc2hvdWxkIGhhdmUgYmVlbiBjb3ZlcnRlZCBpbnRvIGEg
ZG91YmxlIGRpdmlkZS4KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmZDZlYjE0YWUxLi4xZWNkNDlkZjI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDEzLTA0LTI2ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAYmxhY2ti
ZXJyeS5jb20+CisKKyAgICAgICAgW0FSTV0gRXhwYW5kIHRoZSB1c2Ugb2YgaW50ZWdlciBkaXZp
c2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1
MTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm0uaDogQWRkZWQgRU5BQkxFX0FSTV9JTlRFR0VSX0RJVi4KKwogMjAxMy0wNC0y
NiAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgQXBw
bGUgV2luZG93cyBWUzIwMTAgYnVpbGQgcmVzdWx0cyBpbnRvIGFuZCBnZXQgZGVwZW5kZW5jaWVz
IGZyb20gX18zMiBzdWZmaXhlZCBmb2xkZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggYzljMmM3MzRkMi4u
ZWQ0MjM1NDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC05MjYsNiArOTI2LDEwIEBACiAjZGVmaW5lIEVO
QUJMRV9DT01QQVJFX0FORF9TV0FQIDEKICNlbmRpZgogCisjaWYgQ1BVKEFQUExFX0FSTVY3Uykg
fHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhRTlgpKQorI2RlZmluZSBFTkFCTEVfQVJNX0lOVEVH
RVJfRElWIDEKKyNlbmRpZgorCiAjZGVmaW5lIEVOQUJMRV9PQkpFQ1RfTUFSS19MT0dHSU5HIDAK
IAogI2lmICFkZWZpbmVkKEVOQUJMRV9QQVJBTExFTF9HQykgJiYgIUVOQUJMRShPQkpFQ1RfTUFS
S19MT0dHSU5HKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEdUSykpICYmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQ
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200069</attachid>
            <date>2013-04-29 18:28:20 -0700</date>
            <delta_ts>2013-04-29 19:54:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>27996</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YTBjMWVlNTdjLi5lNmE1MGRm
NGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTcsNiArNTE3LDcg
QEAgaWYgKFdURl9DUFVfQVJNKQogICAgICAgICBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAog
ICAgICAgICBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuY3BwCiAgICAgICAgIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5jcHAKKyAgICAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuY3BwCiAgICAgKQogZWxzZWlmIChXVEZfQ1BVX01JUFMpCiBlbHNlaWYgKFdURl9DUFVfWDg2
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMzc3MDA0M2YzMi4uOTRiZTg2Y2QzYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTMtMDQtMjYgIENvc21p
biBUcnV0YSAgPGN0cnV0YUBibGFja2JlcnJ5LmNvbT4KKworICAgICAgICBbQVJNXSBFeHBhbmQg
dGhlIHVzZSBvZiBpbnRlZ2VyIGRpdmlzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUxMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJZiBhdmFpbGFiaWxpdHkgb2YgaGFyZHdhcmUgaW50ZWdlciBk
aXZpc2lvbiBpc24ndCBrbm93biBhdCBjb21waWxlCisgICAgICAgIHRpbWUsIGNoZWNrIHRoZSBD
UFUgZmxhZ3MgYW5kIGRlY2lkZSBhdCBydW50aW1lIHdoZXRoZXIgdG8gZmFsbCBiYWNrCisgICAg
ICAgIHRvIHNvZnR3YXJlLiBDdXJyZW50bHksIHRoaXMgT1Mtc3BlY2lmaWMgY2hlY2sgaXMgaW1w
bGVtZW50ZWQgb24gUU5YLgorCisgICAgICAgIE1vcmVvdmVyLCB1c2Ugb3BlcmF0b3IgJSBpbnN0
ZWFkIG9mIGZtb2QoKSBpbiB0aGUgY2FsY3VsYXRpb24gb2YgdGhlCisgICAgICAgIHNvZnR3YXJl
IG1vZHVsby4gRXZlbiB3aGVuIGl0J3Mgc29mdHdhcmUtZW11bGF0ZWQsIG9wZXJhdG9yICUgaXMg
ZmFzdGVyCisgICAgICAgIHRoYW4gZm1vZCgpOiBvbiBBUk0gdjcgUU5YLCB3aXRob3V0IGhhcmR3
YXJlIGRpdmlzaW9uLCB3ZSBub3RpY2VkCisgICAgICAgID4zJSBzcGVlZHVwIG9uIFN1blNwaWRl
ci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6
QVJNdjdBc3NlbWJsZXI6OnNkaXYpOiBEaWQgbm90IGNvbXBpbGUgY29uZGl0aW9uYWxseS4KKyAg
ICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnVkaXYpOiBEaXR0by4KKyAgICAgICAgKiBhc3Nl
bWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjppc0FSTXY3cyk6
IFJlbW92ZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6aXNJbnRlZ2VyRGl2U3VwcG9ydGVkKTogQWRkZWQuCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9ydHNJbnRlZ2VyRGl2KTogQWRkZWQuCisgICAgICAgICog
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZp
eHVwTm9kZSk6IENoZWNrZWQgTWFjcm9Bc3NlbWJsZXI6OnN1cHBvcnRzSW50ZWdlckRpdigpIGlu
IEFyaXRoRGl2IGNhc2UuCisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6Om9wZXJhdGlvbk1vZE9uSW50cyk6IEFkZGVkLgorICAgICAgICAqIGRmZy9E
RkdPcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6OkRGRzo6Wl9ERkdPcGVyYXRpb25fWlopOiBB
ZGRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyk6IFNlcGFyYXRlZCB0aGUg
WDg2LXNwZWNpZmljIGFuZCBBUk0tc3BlY2lmaWMgY29kZWdlbgorICAgICAgICBmcm9tIHRoZSBj
b21tb24gaW1wbGVtZW50YXRpb247IHVzZWQgb3BlcmF0aW9uTW9kT25JbnRzIG9uIEFSTS4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZv
ckFSTSk6IFJlbmFtZWQgZnJvbSBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNdjcuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6IEFsbG93ZWQg
cnVuLXRpbWUgZGV0ZWN0aW9uIG9mIGludGVnZXIgZGl2IG9uIEFSTS4KKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y2FsbE9wZXJhdGlvbik6IEFkZGVkIG92ZXJsb2FkcyB3aXRoIFpfREZHT3BlcmF0aW9uX1paIGFy
Z3VtZW50cy4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBVc2VkIGNvbXBpbGVJbnRl
Z2VyQXJpdGhEaXZGb3JBUk0uCisKIDIwMTMtMDQtMjkgIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHB1c2ggYW5kIHBvcCBmb3IgaU9TIG1hdGgg
ZnVuY3Rpb24gdGh1bmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IDEwMjFmMDkyMjEuLmZlYjRkMGIzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC03Myw2ICs3Myw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0u
aCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0N2FhNGU2ZDgwLi4y
NWVmYmM0NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTc0LDYgKzU3NCw3
IEBACiAJCTg2QzU2OEUwMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhERDEx
QTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwICovOyB9OwogCQk4NkM1NjhF
MTExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJNSVBTLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhERTExQTIxM0VFMDAwN0Y3RjAg
LyogTWFjcm9Bc3NlbWJsZXJNSVBTLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODZDNTY4RTIxMUEyMTNFRTAwMDdGN0YwIC8qIE1JUFNBc3NlbWJs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QzU2
OERGMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZDNTY4RTRGQjkyODY3QTE2RkQxMDAy
IC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODZDNTY4RTNGQjkyODY3QTE2RkQxMDAyIC8qIE1hY3JvQXNzZW1i
bGVyQVJNdjcuY3BwICovOyB9OwogCQk4NkNBMDMyRTEwMzhFODQ0MDAyOEE2MDkgLyogRXhlY3V0
YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NkNBMDMyRDEwMzhFODQ0MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5jcHAgKi87IH07CiAJCTg2Q0FG
RUUzMTAzNURERTYwMDI4QTYwOSAvKiBFeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkNBRkVFMjEwMzVEREU2MDAyOEE2MDkgLyogRXhl
Y3V0YWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg2Q0M4NUExMEVFNzlBNDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkNDODVBMDBFRTc5QTQ3MDAyODg2
ODIgLyogSklUSW5saW5lcy5oICovOyB9OwpAQCAtMTQ3Nyw2ICsxNDc4LDcgQEAKIAkJODZDNTY4
REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hY3JvQXNzZW1ibGVyQVJNLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNz
ZW1ibGVyTUlQUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYWNyb0Fzc2Vt
Ymxlck1JUFMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZDNTY4REYxMUEyMTNF
RTAwMDdGN0YwIC8qIE1JUFNBc3NlbWJsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTUlQU0Fzc2VtYmxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NkM1
NjhFM0ZCOTI4NjdBMTZGRDEwMDIgLyogTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxlckFSTXY3LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZDQTAzMkQxMDM4RTg0NDAwMjhBNjA5IC8qIEV4
ZWN1dGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhlY3V0
YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2Q0FGRUUyMTAzNURERTYw
MDI4QTYwOSAvKiBFeGVjdXRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4ZWN1dGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZDQzg1QTAwRUU3
OUE0NzAwMjg4NjgyIC8qIEpJVElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSklUSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg0NSw2
ICsyODQ3LDcgQEAKIAkJCQk4NkMzNkVFOTBFRTEyODlEMDBCM0RGNTkgLyogTWFjcm9Bc3NlbWJs
ZXIuaCAqLywKIAkJCQk4NkM1NjhERDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJB
Uk0uY3BwICovLAogCQkJCTg2RDNCMkMyMTAxNTZCREUwMDI4NjVFNyAvKiBNYWNyb0Fzc2VtYmxl
ckFSTS5oICovLAorCQkJCTg2QzU2OEUzRkI5Mjg2N0ExNkZEMTAwMiAvKiBNYWNyb0Fzc2VtYmxl
ckFSTXY3LmNwcCAqLywKIAkJCQk4NkFERDE0NDBGRERFQTk4MDAwNkVFQzIgLyogTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oICovLAogCQkJCTg2M0IyM0RGMEZDNjBFNjIwMDcwM0FBNCAvKiBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYuaCAqLywKIAkJCQk4NkM1NjhERTExQTIxM0VFMDAwN0Y3RjAgLyogTWFj
cm9Bc3NlbWJsZXJNSVBTLmggKi8sCkBAIC0zOTc3LDYgKzM5ODAsNyBAQAogCQkJCTE0QjcyM0Iy
MTJEN0RBNDYwMDNCRDVFRCAvKiBNYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFQjNFQ0YxNjIzN0Y2QzAwQUI2N0FEIC8qIE1hY3JvQXNzZW1ibGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg2QzU2OEUwMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxl
ckFSTS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4NkM1NjhFNEZCOTI4NjdBMTZGRDEwMDIgLyog
TWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkFFNjRBODEzNUU1
RTFDMDA5NjMwMTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDJENkYwODEzNTM5QTI4MDBCMDJFODYgLyogTWFya2VkQmxvY2suY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0FSTXY3QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3
QXNzZW1ibGVyLmgKaW5kZXggMjg5ODk1NDlkNC4uMDc5YjUwOTU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtNjYxLDEwICs2
NjEsOCBAQCBwcml2YXRlOgogICAgICAgICBPUF9ST1JfcmVnX1QyICAgPSAweEZBNjAsCiAgICAg
ICAgIE9QX0NMWiAgICAgICAgICA9IDB4RkFCMCwKICAgICAgICAgT1BfU01VTExfVDEgICAgID0g
MHhGQjgwLAotI2lmIENQVShBUFBMRV9BUk1WN1MpCiAgICAgICAgIE9QX1NESVZfVDEgICAgICA9
IDB4RkI5MCwKICAgICAgICAgT1BfVURJVl9UMSAgICAgID0gMHhGQkIwLAotI2VuZGlmCiAgICAg
fSBPcGNvZGVJRDE7CiAKICAgICB0eXBlZGVmIGVudW0gewpAQCAtMTQwNyw3ICsxNDA1LDYgQEAg
cHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3VyRm91cnMoT1Bf
Uk9SX3JlZ19UMiwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAwLCBybSkpOwogICAgIH0KIAotI2lm
IENQVShBUFBMRV9BUk1WN1MpCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNkaXYoUmVnaXN0ZXJJ
RCByZCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7CiAgICAgICAgIEFTU0VS
VCghQmFkUmVnKHJkKSk7CkBAIC0xNDE1LDcgKzE0MTIsNiBAQCBwdWJsaWM6CiAgICAgICAgIEFT
U0VSVCghQmFkUmVnKHJtKSk7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDEyUmVnNEZv
dXJGb3VycyhPUF9TRElWX1QxLCBybiwgRm91ckZvdXJzKDB4ZiwgcmQsIDB4Ziwgcm0pKTsKICAg
ICB9Ci0jZW5kaWYKIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzbXVsbChSZWdpc3RlcklEIHJk
TG8sIFJlZ2lzdGVySUQgcmRIaSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7
CkBAIC0xNzUzLDcgKzE3NDksNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dv
cmRPcDEyUmVnNDBJbW0zUmVnNEltbTIwSW1tNShPUF9VQkZYX1QxLCByZCwgcm4sIChsc2IgJiAw
eDFjKSA8PCAxMCwgKGxzYiAmIDB4MykgPDwgNiwgKHdpZHRoIC0gMSkgJiAweDFmKTsKICAgICB9
CiAKLSNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCB1ZGl2KFJl
Z2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAg
ICBBU1NFUlQoIUJhZFJlZyhyZCkpOwpAQCAtMTc2MSw3ICsxNzU2LDYgQEAgcHVibGljOgogICAg
ICAgICBBU1NFUlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3Ax
MlJlZzRGb3VyRm91cnMoT1BfVURJVl9UMSwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAweGYsIHJt
KSk7CiAgICAgfQotI2VuZGlmCiAKICAgICB2b2lkIHZhZGQoRlBEb3VibGVSZWdpc3RlcklEIHJk
LCBGUERvdWJsZVJlZ2lzdGVySUQgcm4sIEZQRG91YmxlUmVnaXN0ZXJJRCBybSkKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9B
c3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNy
b0Fzc2VtYmxlci5oCmluZGV4IDY4ZmQ4MDRlY2MuLjc1NWU1NGZmMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
ci5oCkBAIC00NiwxNSArNDYsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotaW5saW5lIGJvb2wg
aXNBUk12N3MoKQotewotI2lmIENQVShBUFBMRV9BUk1WN1MpCi0gICAgcmV0dXJuIHRydWU7Ci0j
ZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBpbmxpbmUgYm9vbCBpc1g4Nigp
CiB7CiAjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjJlZDVmYzJiMDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3Bw
CkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgUmVzZWFy
Y2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgQ1BVKEFSTV9USFVNQjIp
CisKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckFSTXY3LmgiCisKKyNpZiBPUyhRTlgpCisjaW5j
bHVkZSA8c3lzL3N5c3BhZ2UuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmIE9T
KFFOWCkKKworc3RhdGljIGJvb2wgaXNJbnRlZ2VyRGl2U3VwcG9ydGVkKCkKK3sKKyNpZmRlZiBB
Uk1fQ1BVX0ZMQUdfSURJVgorICAgIHJldHVybiAhIShTWVNQQUdFX0VOVFJZKGNwdWluZm8pLT5m
bGFncyAmIEFSTV9DUFVfRkxBR19JRElWKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKK2NvbnN0IGJvb2wgTWFjcm9Bc3NlbWJsZXJBUk12Nzo6c19pc0ludGVnZXJEaXZT
dXBwb3J0ZWQgPSBpc0ludGVnZXJEaXZTdXBwb3J0ZWQoKTsKKworI2VuZGlmIC8vIE9TKFFOWCkK
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKEFTU0VNQkxFUikgJiYgQ1BVKEFSTV9USFVNQjIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5oCmluZGV4IGIxYmM0MTcyOTYuLjFiMDc0ODU0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC03OTMs
OCArNzkzLDE5IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAotICAgIC8vIEZsb2F0aW5nLXBv
aW50IG9wZXJhdGlvbnM6CisgICAgLy8gSW50ZWdlciBvcGVyYXRpb25zLgorICAgIHN0YXRpYyBi
b29sIHN1cHBvcnRzSW50ZWdlckRpdigpCisgICAgeworI2lmIENQVShBUFBMRV9BUk1WN1MpCisg
ICAgICAgIHJldHVybiB0cnVlOworI2VsaWYgT1MoUU5YKQorICAgICAgICByZXR1cm4gc19pc0lu
dGVnZXJEaXZTdXBwb3J0ZWQ7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
KyAgICB9CiAKKyAgICAvLyBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zLgogICAgIHN0YXRpYyBi
b29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAg
ICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgeyByZXR1cm4gdHJ1ZTsg
fQpAQCAtMTkwNyw2ICsxOTE4LDEwIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgYm9vbCBtX21h
a2VKdW1wUGF0Y2hhYmxlOworCisjaWYgT1MoUU5YKQorICAgIHN0YXRpYyBjb25zdCBib29sIHNf
aXNJbnRlZ2VyRGl2U3VwcG9ydGVkOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGM5YTU4
ZDY2OTguLjIwYzY2MDcwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcApAQCAtMjE0LDcgKzIxNCwxNCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFy
aXRoRGl2OiB7CiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50ZWdlckZv
ckFyaXRobWV0aWMobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkp
CiAgICAgICAgICAgICAgICAgJiYgbm9kZS0+Y2FuU3BlY3VsYXRlSW50ZWdlcigpKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGlzWDg2KCkgfHwgaXNBUk12N3MoKSkgeworI2lmIENQVShYODYpIHx8
IENQVShYODZfNjQpCisgICAgICAgICAgICAgICAgY29uc3QgYm9vbCBjcHVTdXBwb3J0c0ludGVn
ZXJEaXYgPSB0cnVlOworI2VsaWYgQ1BVKEFSTV9USFVNQjIpCisgICAgICAgICAgICAgICAgY29u
c3QgYm9vbCBjcHVTdXBwb3J0c0ludGVnZXJEaXYgPSBNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNJ
bnRlZ2VyRGl2KCk7CisjZWxzZQorICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgY3B1U3VwcG9y
dHNJbnRlZ2VyRGl2ID0gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBpZiAoY3B1U3Vw
cG9ydHNJbnRlZ2VyRGl2KSB7CiAgICAgICAgICAgICAgICAgICAgIHNldFVzZUtpbmRBbmRVbmJv
eElmUHJvZml0YWJsZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAg
ICAgICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxk
MigpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAzMTBmMjQ0ZWY1Li4zMmM4ZmU3YWFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTQ1LDYgKzQ1
LDcgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJTdHJpbmdDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgPHN0ZGxpYi5o
PgogI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KIAogI2lmIEVOQUJMRShKSVQpCkBAIC0xNjAw
LDYgKzE2MDEsMTEgQEAgSlNDZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk1ha2VSb3BlMyhF
eGVjU3RhdGUqIGV4ZWMsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyoKICAgICByZXR1cm4gSlNSb3Bl
U3RyaW5nOjpjcmVhdGUodm0sIGEsIGIsIGMpOwogfQogCitpbnQzMl90IERGR19PUEVSQVRJT04g
b3BlcmF0aW9uTW9kT25JbnRzKGludDMyX3QgYSwgaW50MzJfdCBiKQoreworICAgIHJldHVybiBh
ICUgYjsKK30KKwogZG91YmxlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uRk1vZE9uSW50cyhpbnQz
Ml90IGEsIGludDMyX3QgYikKIHsKICAgICByZXR1cm4gZm1vZChhLCBiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggYzMxNGU4ZWIzOS4uZmI5ODczY2Vl
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTk3LDYg
Kzk3LDcgQEAgdHlwZWRlZiBkb3VibGUgREZHX09QRVJBVElPTiAoKkRfREZHT3BlcmF0aW9uX0RE
KShkb3VibGUsIGRvdWJsZSk7CiB0eXBlZGVmIGRvdWJsZSBERkdfT1BFUkFUSU9OICgqRF9ERkdP
cGVyYXRpb25fWlopKGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBkb3VibGUgREZHX09QRVJB
VElPTiAoKkRfREZHT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0
eXBlZGVmIGludDMyX3QgREZHX09QRVJBVElPTiAoKlpfREZHT3BlcmF0aW9uX0QpKGRvdWJsZSk7
Cit0eXBlZGVmIGludDMyX3QgREZHX09QRVJBVElPTiAoKlpfREZHT3BlcmF0aW9uX1paKShpbnQz
Ml90LCBpbnQzMl90KTsKIHR5cGVkZWYgc2l6ZV90IERGR19PUEVSQVRJT04gKCpTX0RGR09wZXJh
dGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlwZWRlZiBzaXplX3Qg
REZHX09QRVJBVElPTiAoKlNfREZHT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSk7CiB0eXBlZGVmIHNpemVfdCBERkdfT1BFUkFUSU9OICgqU19ERkdPcGVyYXRpb25fRUpK
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwpAQCAtMjA4LDYg
KzIwOSw3IEBAIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0SW5saW5l
ZEFyZ3VtZW50QnlWYWwoRXhlY1N0YXRlKiwgaW50MzJfCiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldEFyZ3VtZW50QnlWYWwoRXhlY1N0YXRlKiwgaW50MzJfdCwgaW50
MzJfdCkgV1RGX0lOVEVSTkFMOwogSlNDZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1
bmN0aW9uKEV4ZWNTdGF0ZSosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogREZHX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdGdW5jdGlvbkV4cHJlc3Npb24oRXhlY1N0YXRlKiwgSlNDZWxs
KikgV1RGX0lOVEVSTkFMOworaW50MzJfdCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk1vZE9uSW50
cyhpbnQzMl90LCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiBkb3VibGUgREZHX09QRVJBVElPTiBv
cGVyYXRpb25GTW9kT25JbnRzKGludDMyX3QsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIHNpemVf
dCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbklzT2JqZWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgREZHX09QRVJBVElPTiBvcGVyYXRpb25Jc0Z1bmN0
aW9uKEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDQzMzdlODBmNTkuLmNkZWU3YWY4
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCkBAIC0yODc3LDEyICsyODc3LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJ
bnN0YW5jZU9mKE5vZGUqIG5vZGUpCiAjZW5kaWYKIH0KIAorI2lmIENQVShYODYpIHx8IENQVShY
ODZfNjQpCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBub2Rl
KQogewogICAgIC8vIEluIHRoZSBmYXN0IHBhdGgsIHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBi
ZSB0aGUgZmluYWwgcmVzdWx0CiAgICAgLy8gKGluIGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZp
c29yfCksIHNvIHdlIHNwZWN1bGF0ZSBpdCBhcyBzdHJpY3QgaW50MzIuCiAgICAgU3BlY3VsYXRl
U3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0jaWYgQ1BVKFg4
NikgfHwgQ1BVKFg4Nl82NCkKICAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigp
Lm5vZGUoKSkpIHsKICAgICAgICAgaW50MzJfdCBkaXZpc29yID0gdmFsdWVPZkludDMyQ29uc3Rh
bnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKICAgICAgICAgaWYgKGRpdmlzb3IpIHsKQEAgLTI5
MjIsMzYgKzI5MjIsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhO
b2RlKiBub2RlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotI2VsaWYg
Q1BVKEFQUExFX0FSTVY3UykgfHwgQ1BVKEFSTV9USFVNQjIpCi0gICAgaWYgKGlzSW50MzJDb25z
dGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7Ci0gICAgICAgIGludDMyX3QgZGl2aXNvciA9
IHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSk7Ci0gICAgICAgIGlm
IChkaXZpc29yID4gMCAmJiBoYXNPbmVCaXRTZXQoZGl2aXNvcikpIHsgLy8gSWYgcG93ZXIgb2Yg
MiB0aGVuIGp1c3QgbWFzawotICAgICAgICAgICAgR1BSUmVnIGRpdmlkZW5kR1BSID0gb3AxLmdw
cigpOwotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAg
IEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0KLSAgICAgICAgICAgIG1faml0LmFz
c2VtYmxlcigpLmNtcChkaXZpZGVuZEdQUiwgQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVk
SW1tKDApKTsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVy
OjpDb25kaXRpb25MVCwgZmFsc2UpOwotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubmVn
KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOwotICAgICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCku
bW92KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOwotICAgICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1
c3RlZEltbTMyKGRpdmlzb3IgLSAxKSwgcmVzdWx0R1BSKTsKLSAgICAgICAgICAgIG1faml0LmFz
c2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCk7Ci0gICAgICAgICAgICBt
X2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0R1BSLCByZXN1bHRHUFIpOwotCi0gICAgICAgICAg
ICBpZiAoIW5vZGVDYW5JZ25vcmVOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkp
IHsKLSAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHdlJ3JlIG5vdCBhYm91dCB0byBjcmVh
dGUgbmVnYXRpdmUgemVyby4KLSAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1l
cmF0b3JQb3NpdGl2ZSA9IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbk9y
RXF1YWwsIGRpdmlkZW5kR1BSLCBUcnVzdGVkSW1tMzIoMCkpOwotICAgICAgICAgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFu
Y2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIHJlc3VsdEdQUikpOwotICAgICAgICAgICAgICAg
IG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGludGVnZXJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgIH0KLSNlbmRpZgogCiAgICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQg
b3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQor
CiAgICAgR1BSVGVtcG9yYXJ5IGVheCh0aGlzLCBYODZSZWdpc3RlcnM6OmVheCk7CiAgICAgR1BS
VGVtcG9yYXJ5IGVkeCh0aGlzLCBYODZSZWdpc3RlcnM6OmVkeCk7CiAgICAgR1BSUmVnIG9wMUdQ
UiA9IG9wMS5ncHIoKTsKQEAgLTMwMTYsNDMgKzI5ODksODcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVNvZnRNb2R1bG8oTm9kZSogbm9kZSkKICAgICAKICAgICBpZiAob3AxU2F2ZUdQ
UiAhPSBvcDFHUFIpCiAgICAgICAgIHVubG9jayhvcDFTYXZlR1BSKTsKLSAgICAgICAgICAgIAor
CiAgICAgaW50ZWdlclJlc3VsdChlZHguZ3ByKCksIG5vZGUpOworfQorI2VsaWYgQ1BVKEFSTV9U
SFVNQjIpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU29mdE1vZHVsbyhOb2RlKiBub2Rl
KQoreworICAgIC8vIEluIHRoZSBmYXN0IHBhdGgsIHRoZSBkaXZpZGVuZCB2YWx1ZSBjb3VsZCBi
ZSB0aGUgZmluYWwgcmVzdWx0CisgICAgLy8gKGluIGNhc2Ugb2YgfGRpdmlkZW5kfCA8IHxkaXZp
c29yfCksIHNvIHdlIHNwZWN1bGF0ZSBpdCBhcyBzdHJpY3QgaW50MzIuCisgICAgU3BlY3VsYXRl
U3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgaWYgKGlz
SW50MzJDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CisgICAgICAgIGludDMyX3Qg
ZGl2aXNvciA9IHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSk7Cisg
ICAgICAgIGlmIChkaXZpc29yID4gMCAmJiBoYXNPbmVCaXRTZXQoZGl2aXNvcikpIHsgLy8gSWYg
cG93ZXIgb2YgMiB0aGVuIGp1c3QgbWFzaworICAgICAgICAgICAgR1BSUmVnIGRpdmlkZW5kR1BS
ID0gb3AxLmdwcigpOworICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAg
ICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAg
IG1faml0LmFzc2VtYmxlcigpLmNtcChkaXZpZGVuZEdQUiwgQVJNVGh1bWJJbW1lZGlhdGU6Om1h
a2VFbmNvZGVkSW1tKDApKTsKKyAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3
QXNzZW1ibGVyOjpDb25kaXRpb25MVCwgZmFsc2UpOworICAgICAgICAgICAgbV9qaXQuYXNzZW1i
bGVyKCkubmVnKHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOworICAgICAgICAgICAgbV9qaXQuYXNz
ZW1ibGVyKCkubW92KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIpOworICAgICAgICAgICAgbV9qaXQu
YW5kMzIoVHJ1c3RlZEltbTMyKGRpdmlzb3IgLSAxKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAg
IG1faml0LmFzc2VtYmxlcigpLml0KEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25MVCk7CisgICAg
ICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5uZWcocmVzdWx0R1BSLCByZXN1bHRHUFIpOworCisg
ICAgICAgICAgICBpZiAoIW5vZGVDYW5JZ25vcmVOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhOb2Rl
RmxhZ3MoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHdlJ3JlIG5vdCBhYm91
dCB0byBjcmVhdGUgbmVnYXRpdmUgemVyby4KKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6
SnVtcCBudW1lcmF0b3JQb3NpdGl2ZSA9IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpHcmVh
dGVyVGhhbk9yRXF1YWwsIGRpdmlkZW5kR1BSLCBUcnVzdGVkSW1tMzIoMCkpOworICAgICAgICAg
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBt
X2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIHJlc3VsdEdQUikpOworICAgICAg
ICAgICAgICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGludGVnZXJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5k
IG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAKLSNlbGlmIENQVShBUFBMRV9BUk1WN1MpCi0g
ICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7Ci0gICAgR1BSVGVtcG9yYXJ5IHF1b3RpZW50VGhl
blJlbWFpbmRlcih0aGlzKTsKLSAgICBHUFJUZW1wb3JhcnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7
CiAgICAgR1BSUmVnIGRpdmlkZW5kR1BSID0gb3AxLmdwcigpOwogICAgIEdQUlJlZyBkaXZpc29y
R1BSID0gb3AyLmdwcigpOwotICAgIEdQUlJlZyBxdW90aWVudFRoZW5SZW1haW5kZXJHUFIgPSBx
dW90aWVudFRoZW5SZW1haW5kZXIuZ3ByKCk7Ci0gICAgR1BSUmVnIG11bHRpcGx5QW5zd2VyR1BS
ID0gbXVsdGlwbHlBbnN3ZXIuZ3ByKCk7CiAKLSAgICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2KHF1
b3RpZW50VGhlblJlbWFpbmRlckdQUiwgZGl2aWRlbmRHUFIsIGRpdmlzb3JHUFIpOwotICAgIHNw
ZWN1bGF0aW9uQ2hlY2soT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaE11
bDMyKEpJVENvbXBpbGVyOjpPdmVyZmxvdywgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSLCBkaXZp
c29yR1BSLCBtdWx0aXBseUFuc3dlckdQUikpOwotICAgIG1faml0LmFzc2VtYmxlcigpLnN1Yihx
dW90aWVudFRoZW5SZW1haW5kZXJHUFIsIGRpdmlkZW5kR1BSLCBtdWx0aXBseUFuc3dlckdQUik7
CisgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOworCisgICAgaWYgKE1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYo
KSkgeworICAgICAgICBHUFJUZW1wb3JhcnkgbXVsdGlwbHlBbnN3ZXIodGhpcyk7CisgICAgICAg
IEdQUlJlZyBtdWx0aXBseUFuc3dlckdQUiA9IG11bHRpcGx5QW5zd2VyLmdwcigpOworICAgICAg
ICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2KHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIsIGRpdmlzb3JH
UFIpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAw
LCBtX2ppdC5icmFuY2hNdWwzMihKSVRDb21waWxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwgZGl2
aXNvckdQUiwgbXVsdGlwbHlBbnN3ZXJHUFIpKTsKKyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCku
c3ViKHJlc3VsdEdQUiwgZGl2aWRlbmRHUFIsIG11bHRpcGx5QW5zd2VyR1BSKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbk1vZE9uSW50cywgcmVzdWx0R1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7Cisg
ICAgfQogCiAgICAgLy8gSWYgdGhlIHVzZXIgY2FyZXMgYWJvdXQgbmVnYXRpdmUgemVybywgdGhl
biBzcGVjdWxhdGUgdGhhdCB3ZSdyZSBub3QgYWJvdXQKICAgICAvLyB0byBwcm9kdWNlIG5lZ2F0
aXZlIHplcm8uCiAgICAgaWYgKCFub2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG5vZGUtPmFyaXRo
Tm9kZUZsYWdzKCkpKSB7CiAgICAgICAgIC8vIENoZWNrIHRoYXQgd2UncmUgbm90IGFib3V0IHRv
IGNyZWF0ZSBuZWdhdGl2ZSB6ZXJvLgogICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1lcmF0
b3JQb3NpdGl2ZSA9IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbk9yRXF1
YWwsIGRpdmlkZW5kR1BSLCBUcnVzdGVkSW1tMzIoMCkpOwotICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKE5lZ2F0aXZlWmVybywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJ
VENvbXBpbGVyOjpaZXJvLCBxdW90aWVudFRoZW5SZW1haW5kZXJHUFIpKTsKKyAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhOZWdhdGl2ZVplcm8sIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5j
aFRlc3QzMihKSVRDb21waWxlcjo6WmVybywgcmVzdWx0R1BSKSk7CiAgICAgICAgIG51bWVyYXRv
clBvc2l0aXZlLmxpbmsoJm1faml0KTsKICAgICB9CiAKLSAgICBpbnRlZ2VyUmVzdWx0KHF1b3Rp
ZW50VGhlblJlbWFpbmRlckdQUiwgbm9kZSk7Ci0jZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRo
YXQgY2FuIGRvIGludGVnZXIgZGl2aXNpb24KKyAgICBpbnRlZ2VyUmVzdWx0KHJlc3VsdEdQUiwg
bm9kZSk7Cit9CisjZWxzZSAvLyBDUFUgdHlwZSB3aXRob3V0IGludGVnZXIgZGl2aXNpb24KK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCit7CisgICAg
U3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Cisg
ICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKwog
ICAgIC8vIERvIHRoaXMgdGhlICpzYWZlc3QqIHdheSBwb3NzaWJsZTogY2FsbCBvdXQgdG8gYSBD
IGZ1bmN0aW9uIHRoYXQgd2lsbCBkbyB0aGUgbW9kdWxvLAogICAgIC8vIGFuZCB0aGVuIGF0dGVt
cHQgdG8gY29udmVydCBiYWNrLgotICAgIEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7Ci0gICAg
R1BSUmVnIG9wMkdQUiA9IG9wMi5ncHIoKTsKLSAgICAKKyAgICBHUFJSZWcgZGl2aWRlbmRHUFIg
PSBvcDEuZ3ByKCk7CisgICAgR1BSUmVnIGRpdmlzb3JHUFIgPSBvcDIuZ3ByKCk7CisKICAgICBG
UFJSZXN1bHQgcmVzdWx0KHRoaXMpOwotICAgIAorCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkZNb2RPbkludHMsIHJlc3VsdC5mcHIoKSwgb3AxR1BS
LCBvcDJHUFIpOwotICAgIAorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uRk1vZE9uSW50cywg
cmVzdWx0LmZwcigpLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CisKICAgICBGUFJUZW1wb3Jh
cnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJUZW1wb3JhcnkgaW50UmVzdWx0KHRoaXMpOwogICAg
IEpJVENvbXBpbGVyOjpKdW1wTGlzdCBmYWlsdXJlQ2FzZXM7CkBAIC0zMDY0LDEwICszMDgxLDEw
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTb2Z0TW9kdWxvKE5vZGUqIG5vZGUpCiAg
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBt
X2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIGludFJlc3VsdC5ncHIoKSkpOwog
ICAgICAgICBudW1lcmF0b3JQb3NpdGl2ZS5saW5rKCZtX2ppdCk7CiAgICAgfQotICAgIAorCiAg
ICAgaW50ZWdlclJlc3VsdChpbnRSZXN1bHQuZ3ByKCksIG5vZGUpOwotI2VuZGlmIC8vIENQVShY
ODYpIHx8IENQVShYODZfNjQpCiB9CisjZW5kaWYKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFkZChOb2RlKiBub2RlKQogewpAQCAtMzQ3Niw4ICszNDkzLDggQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUludGVnZXJBcml0aERpdkZvclg4NihOb2RlKiBub2RlKQogICAgICAg
ICAgICAgCiAgICAgaW50ZWdlclJlc3VsdChlYXguZ3ByKCksIG5vZGUpOwogfQotI2VsaWYgQ1BV
KEFQUExFX0FSTVY3UykKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnRlZ2VyQXJpdGhE
aXZGb3JBUk12N3MoTm9kZSogbm9kZSkKKyNlbGlmIEVOQUJMRShBUk1fSU5URUdFUl9ESVYpCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yQVJNKE5vZGUqIG5v
ZGUpCiB7CiAgICAgU3BlY3VsYXRlSW50ZWdlck9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxk
MSgpKTsKICAgICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQy
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmlu
ZGV4IDZkMWRlZmEzMTUuLmNhNzU4MjY1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTExMTAsNiArMTExMCwxMyBAQCBwdWJsaWM6CiAg
ICAgICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBy
ZXN1bHQpOwogICAgICAgICByZXR1cm4gY2FsbDsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihaX0RGR09wZXJhdGlvbl9aWiBvcGVyYXRpb24sIEdQUlJlZyByZXN1
bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVw
QXJndW1lbnRzKGFyZzEsIGFyZzIpOworICAgICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsID0g
bV9qaXQuYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJU
b1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIGNh
bGw7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVy
YXRpb25fRUdyaUpzZ0kgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BS
UmVnIGFyZzIsIElkZW50aWZpZXIqIGlkZW50aWZpZXIpCiAgICAgewogICAgICAgICBtX2ppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihpZGVu
dGlmaWVyKSk7CkBAIC0xMzE1LDYgKzEzMjIsMTMgQEAgcHVibGljOgogICAgICAgICBtX2ppdC56
ZXJvRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0KTsKICAgICAg
ICAgcmV0dXJuIGNhbGw7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oWl9ERkdPcGVyYXRpb25fWlogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJn
MSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50cyhhcmcx
LCBhcmcyKTsKKyAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IG1faml0LmFwcGVuZENh
bGwob3BlcmF0aW9uKTsKKyAgICAgICAgbV9qaXQuemVyb0V4dGVuZDMyVG9QdHIoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiBjYWxsOworICAgIH0KICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfREZHT3BlcmF0aW9uX0Ugb3BlcmF0
aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCkKICAgICB7CiAgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7CkBAIC0xOTcxLDggKzE5ODUsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlQXJpdGhJTXVsKE5vZGUqKTsKICNpZiBDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KQogICAgIHZvaWQgY29tcGlsZUludGVnZXJBcml0aERpdkZvclg4NihO
b2RlKik7Ci0jZWxpZiBDUFUoQVBQTEVfQVJNVjdTKQotICAgIHZvaWQgY29tcGlsZUludGVnZXJB
cml0aERpdkZvckFSTXY3cyhOb2RlKik7CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQor
ICAgIHZvaWQgY29tcGlsZUludGVnZXJBcml0aERpdkZvckFSTShOb2RlKik7CiAjZW5kaWYKICAg
ICB2b2lkIGNvbXBpbGVBcml0aE1vZChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlU29mdE1vZHVs
byhOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcAppbmRleCAzNTk1NzUzYzExLi5jODlmNDMxYWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
QEAgLTIyNTMsOCArMjI1Myw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogI2lmIENQVShYODYpCiAgICAgICAgICAg
ICBjb21waWxlSW50ZWdlckFyaXRoRGl2Rm9yWDg2KG5vZGUpOwotI2VsaWYgQ1BVKEFQUExFX0FS
TVY3UykKLSAgICAgICAgICAgIGNvbXBpbGVJbnRlZ2VyQXJpdGhEaXZGb3JBUk12N3Mobm9kZSk7
CisjZWxpZiBFTkFCTEUoQVJNX0lOVEVHRVJfRElWKQorICAgICAgICAgICAgQVNTRVJUKE1hY3Jv
QXNzZW1ibGVyOjpzdXBwb3J0c0ludGVnZXJEaXYoKSk7CisgICAgICAgICAgICBjb21waWxlSW50
ZWdlckFyaXRoRGl2Rm9yQVJNKG5vZGUpOwogI2Vsc2UgLy8gQ1BVIHR5cGUgd2l0aG91dCBpbnRl
Z2VyIGRpdmlkZQogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8g
c2hvdWxkIGhhdmUgYmVlbiBjb3ZlcnRlZCBpbnRvIGEgZG91YmxlIGRpdmlkZS4KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCBkZDgzYTE5ODE3Li4yYThlMjMyMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA0
LTI2ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAYmxhY2tiZXJyeS5jb20+CisKKyAgICAgICAgW0FS
TV0gRXhwYW5kIHRoZSB1c2Ugb2YgaW50ZWdlciBkaXZpc2lvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MTM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDogQWRkZWQgRU5B
QkxFX0FSTV9JTlRFR0VSX0RJVi4KKwogMjAxMy0wNC0yOSAgQW5kZXJzIENhcmxzc29uICA8YW5k
ZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEl0IHNob3VsZCBiZSBhbiBlcnJvciB0byB1c2Ug
YWRvcHRQdHIgd2l0aCBSZWZDb3VudGVkIHN1YmNsYXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDBlMTEz
MDg3M2MuLmU5MDcxZDM2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtOTI2LDYgKzkyNiwxMCBAQAogI2Rl
ZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5kaWYKIAorI2lmIENQVShBUFBMRV9B
Uk1WN1MpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgT1MoUU5YKSkKKyNkZWZpbmUgRU5BQkxFX0FS
TV9JTlRFR0VSX0RJViAxCisjZW5kaWYKKwogI2RlZmluZSBFTkFCTEVfT0JKRUNUX01BUktfTE9H
R0lORyAwCiAKICNpZiAhZGVmaW5lZChFTkFCTEVfUEFSQUxMRUxfR0MpICYmICFFTkFCTEUoT0JK
RUNUX01BUktfTE9HR0lORykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQ
TEFURk9STShCTEFDS0JFUlJZKSB8fCBQTEFURk9STShHVEspKSAmJiBFTkFCTEUoQ09NUEFSRV9B
TkRfU1dBUCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>