<?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>98856</bug_id>
          
          <creation_ts>2012-10-09 22:06:22 -0700</creation_ts>
          <short_desc>Add moveDoubleToInts and moveIntsToDouble to MacroAssemblerMIPS</short_desc>
          <delta_ts>2012-10-16 10:51:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P1</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>99359</dependson>
          <blocked>98605</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>fu</cc>
    
    <cc>gaborb</cc>
    
    <cc>galpeter</cc>
    
    <cc>gergely</cc>
    
    <cc>kilvadyb</cc>
    
    <cc>loki</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rgabor</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>738541</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-10-09 22:06:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/130839 broke the Qt MIPS
build, because 2 new functions introduced in it:
- moveDoubleToInts
- moveIntsToDouble

But their implementation in MacroAssemblerMIPS is still missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738736</commentid>
    <comment_count>1</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-10-10 01:35:19 -0700</bug_when>
    <thetext>Well I&apos;m not a MIPS expert, but I was thinking doing something like this:

moveIntsToDouble(src_t1, src_t2, dst_fp1):
  mtc1   src_t1, dst_fp1
  mthc1  src_t2, dst_fp1

moveDoubleToInts(src_fp1, dst_t1, dst_22):
  mfc1   dst_t1, src_fp1
  mfhc1  dst_t2, src_fp1



This should work (I think at least) if the fp registers are 64bit wide. Am I right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738843</commentid>
    <comment_count>2</comment_count>
      <attachid>167980</attachid>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-10-10 04:42:58 -0700</bug_when>
    <thetext>Created attachment 167980
speculative fix

Well... I did something, not sure if it is correct. The MIPS gurus will decide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738873</commentid>
    <comment_count>3</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-10 05:48:38 -0700</bug_when>
    <thetext>Patch works but there are other missing MIPS functions I&apos;ve worked on. I would like to add a full patch which contains more functions to make master branch compilable on MIPS to this bug if that is ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738894</commentid>
    <comment_count>4</comment_count>
      <attachid>167989</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-10 06:24:13 -0700</bug_when>
    <thetext>Created attachment 167989
Many missing MIPS functions

Includes Peter Gal&apos;s patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738896</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 06:27:51 -0700</bug_when>
    <thetext>Attachment 167989 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/assembler/MIPSAssembler.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MIPSAssembler.h:411:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:609:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:825:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:1788:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:1877:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:1928:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:1991:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:2018:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:2027:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:2028:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:2029:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 12 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738929</commentid>
    <comment_count>6</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-10-10 07:04:59 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=167989&amp;action=review

&gt;&gt; Source/JavaScriptCore/assembler/MIPSAssembler.h:376
&gt;&gt; +        emitInst(0x80000000 | (rt &lt;&lt; OP_SH_RT) | (rs &lt;&lt; OP_SH_RS)
&gt;&gt; +                 | (offset &amp; 0xffff));
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

Why break these lines at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738935</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-10 07:14:49 -0700</bug_when>
    <thetext>I tried to make the smallest diffs possible and many of those kind of lines were accepted before and personally I prefer shorter lines but I fix these files to pass the coding-style script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738959</commentid>
    <comment_count>8</comment_count>
      <attachid>168000</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-10 08:13:25 -0700</bug_when>
    <thetext>Created attachment 168000
Many missing MIPS functions.

Hopefully style-fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739206</commentid>
    <comment_count>9</comment_count>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2012-10-10 12:18:21 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Well I&apos;m not a MIPS expert, but I was thinking doing something like this:
&gt; 
&gt; moveIntsToDouble(src_t1, src_t2, dst_fp1):
&gt;   mtc1   src_t1, dst_fp1
&gt;   mthc1  src_t2, dst_fp1
&gt; 
&gt; moveDoubleToInts(src_fp1, dst_t1, dst_22):
&gt;   mfc1   dst_t1, src_fp1
&gt;   mfhc1  dst_t2, src_fp1
&gt; 
&gt; 
&gt; 
&gt; This should work (I think at least) if the fp registers are 64bit wide. Am I right?

Yes, but this works only for mips32r2 with -mfp64 compilation.
Note that -mfp64 is not supported under MIPS Linux O32 ABI (currently).
All double values occupy two fp registers (eg, $f0 and $f1).

We need a test to guard code.
Ex: (from in MacroAssemblerMIPS.h)

#if WTF_MIPS_ISA_REV(2) &amp;&amp; WTF_MIPS_FP64
        m_assembler.mtc1(MIPSRegisters::zero, scratch);
        m_assembler.mthc1(MIPSRegisters::zero, scratch);
#else
        m_assembler.mtc1(MIPSRegisters::zero, scratch);
        m_assembler.mtc1(MIPSRegisters::zero, FPRegisterID(scratch + 1));
#endif

  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739711</commentid>
    <comment_count>10</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-11 01:32:40 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #1)
&gt; &gt; Well I&apos;m not a MIPS expert, but I was thinking doing something like this:
&gt; &gt; 
&gt; &gt; moveIntsToDouble(src_t1, src_t2, dst_fp1):
&gt; &gt;   mtc1   src_t1, dst_fp1
&gt; &gt;   mthc1  src_t2, dst_fp1
&gt; &gt; 
&gt; &gt; moveDoubleToInts(src_fp1, dst_t1, dst_22):
&gt; &gt;   mfc1   dst_t1, src_fp1
&gt; &gt;   mfhc1  dst_t2, src_fp1
&gt; &gt; 
&gt; &gt; 
&gt; &gt; 
&gt; &gt; This should work (I think at least) if the fp registers are 64bit wide. Am I right?
&gt; 
&gt; Yes, but this works only for mips32r2 with -mfp64 compilation.
&gt; Note that -mfp64 is not supported under MIPS Linux O32 ABI (currently).
&gt; All double values occupy two fp registers (eg, $f0 and $f1).
&gt; 
&gt; We need a test to guard code.
&gt; Ex: (from in MacroAssemblerMIPS.h)
&gt; 
&gt; #if WTF_MIPS_ISA_REV(2) &amp;&amp; WTF_MIPS_FP64
&gt;         m_assembler.mtc1(MIPSRegisters::zero, scratch);
&gt;         m_assembler.mthc1(MIPSRegisters::zero, scratch);
&gt; #else
&gt;         m_assembler.mtc1(MIPSRegisters::zero, scratch);
&gt;         m_assembler.mtc1(MIPSRegisters::zero, FPRegisterID(scratch + 1));
&gt; #endif
&gt; 
&gt;   Thanks!

Thank you for the note, but that was a pseudo code and bot Peter Gal&apos;s patch and my patch-set contains this kind of #ifdef guards:
 void moveDoubleToInts(FPRegisterID src, RegisterID dest1, RegisterID dest2)
  {
 #if WTF_MIPS_ISA_REV(2) &amp;&amp; WTF_MIPS_FP64
      m_assembler.mfc1(dest1, src);
      m_assembler.mfhc1(dest2, src);
 #else
     m_assembler.mfc1(dest1, src);
     m_assembler.mfc1(dest2, FPRegisterID(src + 1));
 #endif
 }

And master with my patch-set successfully compiled for MIPS and the resulted jsc passed the js tests (expect a pending regression which existed before the compilation problem but not with experimental dfg &amp; llint implementation nor in debug compiled jsc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740953</commentid>
    <comment_count>11</comment_count>
      <attachid>168431</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-12 09:11:35 -0700</bug_when>
    <thetext>Created attachment 168431
Minor code fix, style fixes, rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740958</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-12 09:16:18 -0700</bug_when>
    <thetext>Attachment 168431 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740966</commentid>
    <comment_count>13</comment_count>
      <attachid>168436</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-12 09:22:34 -0700</bug_when>
    <thetext>Created attachment 168436
Many missing MIPS functions and style fixes.

Another style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741930</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-10-15 04:16:17 -0700</bug_when>
    <thetext>Ping for review? (The Qt MIPS build is still broken because of this bug.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742092</commentid>
    <comment_count>15</comment_count>
      <attachid>168436</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-10-15 08:58:35 -0700</bug_when>
    <thetext>Comment on attachment 168436
Many missing MIPS functions and style fixes.

Please remove the unrelated style changes from the functionality changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742104</commentid>
    <comment_count>16</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-15 09:21:36 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 168436 [details])
&gt; Please remove the unrelated style changes from the functionality changes.
Those style changes was necessary to pass style checking (otherwise style checking said: Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:2018:  Weird number of spaces at line-start.) So I could have style-fixed only new functions but I wanted to make it consistent. Wouldn&apos;t it be reviewed/accepted this way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742146</commentid>
    <comment_count>17</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-10-15 10:24:20 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (From update of attachment 168436 [details] [details])
&gt; &gt; Please remove the unrelated style changes from the functionality changes.
&gt; Those style changes was necessary to pass style checking (otherwise style checking said: Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:2018:  Weird number of spaces at line-start.) So I could have style-fixed only new functions but I wanted to make it consistent. Wouldn&apos;t it be reviewed/accepted this way?

We don&apos;t make large (and unrelated) formatting/style changes at the same time as making a functionality change.  The formatting changes obscure the actual content of the fix.

You can do the formatting fix before or after, but not during the functionality fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742452</commentid>
    <comment_count>18</comment_count>
      <attachid>168785</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-15 14:26:16 -0700</bug_when>
    <thetext>Created attachment 168785
Many missing MIPS functions.

As Oliver Hunt suggested at review of patch #168436, this is the separated functional part of that patch. This patch should be applied after patch #168774 of bug #99359.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742469</commentid>
    <comment_count>19</comment_count>
      <attachid>168785</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-15 14:38:46 -0700</bug_when>
    <thetext>Comment on attachment 168785
Many missing MIPS functions.

You should rebase this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742931</commentid>
    <comment_count>20</comment_count>
      <attachid>168883</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-16 01:14:12 -0700</bug_when>
    <thetext>Created attachment 168883
Many missing MIPS functions, rebased

Previous commit likely failed because of ChangeLog diff which pended on bug 99359. Let&apos;s try with diff of a modified ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742939</commentid>
    <comment_count>21</comment_count>
      <attachid>168883</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-16 01:19:19 -0700</bug_when>
    <thetext>Comment on attachment 168883
Many missing MIPS functions, rebased

Seems it wont work without accepting 99359.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742943</commentid>
    <comment_count>22</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-10-16 01:22:02 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=168883&amp;action=review

&gt; Source/JavaScriptCore/assembler/MIPSAssembler.h:525
&gt; +    void mfhc1(RegisterID rt, FPRegisterID fs)

This function is never used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742961</commentid>
    <comment_count>23</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-10-16 01:44:04 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 168883 [details])
&gt; Seems it wont work without accepting 99359.

Style fix landed in http://trac.webkit.org/changeset/131427</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742971</commentid>
    <comment_count>24</comment_count>
      <attachid>168894</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-16 01:59:47 -0700</bug_when>
    <thetext>Created attachment 168894
Many missing MIPS functions, rebased #2

Next try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742973</commentid>
    <comment_count>25</comment_count>
      <attachid>168894</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-16 02:01:16 -0700</bug_when>
    <thetext>Comment on attachment 168894
Many missing MIPS functions, rebased #2

void mfhc1(RegisterID rt, FPRegisterID fs) removed, thanks to Peter Gal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742975</commentid>
    <comment_count>26</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-10-16 02:04:59 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 168894 [details])
&gt; void mfhc1(RegisterID rt, FPRegisterID fs) removed, thanks to Peter Gal.

Just curious: should we use it in the vmov? or the #ifdef guards were wrong? or something else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742987</commentid>
    <comment_count>27</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-16 02:18:40 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; (From update of attachment 168894 [details] [details])
&gt; &gt; void mfhc1(RegisterID rt, FPRegisterID fs) removed, thanks to Peter Gal.
&gt; 
&gt; Just curious: should we use it in the vmov? or the #ifdef guards were wrong? or something else?
Using vmov hides it from higher level (if we want #ifdefs later). With or without mfhc1 the operation will be implemented with two instructions so it seems no performance gain from mfhc1 just looks better then the R1 solution. If there is any reason for using it then I will add it to vmov.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742988</commentid>
    <comment_count>28</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-10-16 02:20:44 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; (In reply to comment #25)
&gt; &gt; &gt; (From update of attachment 168894 [details] [details] [details])
&gt; &gt; &gt; void mfhc1(RegisterID rt, FPRegisterID fs) removed, thanks to Peter Gal.
&gt; &gt; 
&gt; &gt; Just curious: should we use it in the vmov? or the #ifdef guards were wrong? or something else?
&gt; Using vmov hides it from higher level (if we want #ifdefs later). With or without mfhc1 the operation will be implemented with two instructions so it seems no performance gain from mfhc1 just looks better then the R1 solution. If there is any reason for using it then I will add it to vmov.

Okay. BTW: why did you removed the r? flag?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742999</commentid>
    <comment_count>29</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-16 02:33:36 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; (In reply to comment #26)
&gt; &gt; &gt; (In reply to comment #25)
&gt; &gt; &gt; &gt; (From update of attachment 168894 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; void mfhc1(RegisterID rt, FPRegisterID fs) removed, thanks to Peter Gal.
&gt; &gt; &gt; 
&gt; &gt; &gt; Just curious: should we use it in the vmov? or the #ifdef guards were wrong? or something else?
&gt; &gt; Using vmov hides it from higher level (if we want #ifdefs later). With or without mfhc1 the operation will be implemented with two instructions so it seems no performance gain from mfhc1 just looks better then the R1 solution. If there is any reason for using it then I will add it to vmov.
&gt; 
&gt; Okay. BTW: why did you removed the r? flag?
Mistake. If I choose + from the r list without name then Oliver or previous reviewer remains? I will try. I have to resend this patch so many times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743004</commentid>
    <comment_count>30</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-10-16 02:37:23 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #28)
&gt; &gt; (In reply to comment #27)
&gt; &gt; &gt; (In reply to comment #26)
&gt; &gt; &gt; &gt; (In reply to comment #25)
&gt; &gt; &gt; &gt; &gt; (From update of attachment 168894 [details] [details] [details] [details] [details])
&gt; &gt; &gt; &gt; &gt; void mfhc1(RegisterID rt, FPRegisterID fs) removed, thanks to Peter Gal.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Just curious: should we use it in the vmov? or the #ifdef guards were wrong? or something else?
&gt; &gt; &gt; Using vmov hides it from higher level (if we want #ifdefs later). With or without mfhc1 the operation will be implemented with two instructions so it seems no performance gain from mfhc1 just looks better then the R1 solution. If there is any reason for using it then I will add it to vmov.
&gt; &gt; 
&gt; &gt; Okay. BTW: why did you removed the r? flag?
&gt; Mistake. If I choose + from the r list without name then Oliver or previous reviewer remains? I will try. I have to resend this patch so many times.

Well.... if you can only set the r? flag. and a reviewer fill set it to r+. additional set the cq? flag so when a reviewer sets it to cq+ it&apos;ll be committed in time automatically. Also you don&apos;t need to re-upload it so many times, if you have want to edit the flags. (only if you wan to run the ews you should reupload, but in this case it is irrelevant)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743009</commentid>
    <comment_count>31</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-16 02:45:12 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; &gt; (In reply to comment #28)
&gt; &gt; &gt; (In reply to comment #27)
&gt; &gt; &gt; &gt; (In reply to comment #26)
&gt; &gt; &gt; &gt; &gt; (In reply to comment #25)
&gt; &gt; &gt; &gt; &gt; &gt; (From update of attachment 168894 [details] [details] [details] [details] [details] [details])
&gt; &gt; &gt; &gt; &gt; &gt; void mfhc1(RegisterID rt, FPRegisterID fs) removed, thanks to Peter Gal.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Just curious: should we use it in the vmov? or the #ifdef guards were wrong? or something else?
&gt; &gt; &gt; &gt; Using vmov hides it from higher level (if we want #ifdefs later). With or without mfhc1 the operation will be implemented with two instructions so it seems no performance gain from mfhc1 just looks better then the R1 solution. If there is any reason for using it then I will add it to vmov.
&gt; &gt; &gt; 
&gt; &gt; &gt; Okay. BTW: why did you removed the r? flag?
&gt; &gt; Mistake. If I choose + from the r list without name then Oliver or previous reviewer remains? I will try. I have to resend this patch so many times.
&gt; 
&gt; Well.... if you can only set the r? flag. and a reviewer fill set it to r+. additional set the cq? flag so when a reviewer sets it to cq+ it&apos;ll be committed in time automatically. Also you don&apos;t need to re-upload it so many times, if you have want to edit the flags. (only if you wan to run the ews you should reupload, but in this case it is irrelevant)
Thanks. But my diffs/patches wasn&apos;t applied as all of them was diff-ed to pendig or not pending versions of master branch as I was in a hurry. I try it again, now my fetched origin/master seems to be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743037</commentid>
    <comment_count>32</comment_count>
      <attachid>168910</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-16 03:44:07 -0700</bug_when>
    <thetext>Created attachment 168910
Many missing MIPS functions, rebased #3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743296</commentid>
    <comment_count>33</comment_count>
      <attachid>168910</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 10:51:26 -0700</bug_when>
    <thetext>Comment on attachment 168910
Many missing MIPS functions, rebased #3

Clearing flags on attachment: 168910

Committed r131475: &lt;http://trac.webkit.org/changeset/131475&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743297</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 10:51:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167980</attachid>
            <date>2012-10-10 04:42:58 -0700</date>
            <delta_ts>2012-10-15 04:15:42 -0700</delta_ts>
            <desc>speculative fix</desc>
            <filename>macroassembler_mips_movedouble.patch</filename>
            <type>text/plain</type>
            <size>2699</size>
            <attacher name="Peter Gal">galpeter</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA4ODFjOTEuLmZiMjhhNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTEwICBQZXRlciBHYWwgIDxn
YWxwZXRlckBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgQWRkIG1vdmVEb3VibGVUb0ludHMg
YW5kIG1vdmVJbnRzVG9Eb3VibGUgdG8gTWFjcm9Bc3NlbWJsZXJNSVBTCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODg1NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgbWlzc2luZyBt
b3ZlRG91YmxlVG9JbnRzIGFuZCBtb3ZlSW50c1RvRG91YmxlCisgICAgICAgIG1ldGhvZHMgaW4g
dGhlIE1hY3JvQXNzZW1ibGVyTUlQUyBhZnRlciByMTMwODM5LgorCisgICAgICAgICogYXNzZW1i
bGVyL01JUFNBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bWZoYzEp
OiBBZGRlZCBtZmhjMSBtZXRob2QuCisgICAgICAgIChNSVBTQXNzZW1ibGVyKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyTUlQUzo6bW92ZURvdWJsZVRvSW50cyk6CisgICAgICAgIChNYWNyb0Fzc2VtYmxlck1J
UFMpOgorCiAyMDEyLTEwLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVHlwZWQgYXJyYXlzIHNob3VsZCBub3QgYmUgMjB4IHNsb3dlciBpbiB0aGUgYmFzZWxp
bmUgSklUIHRoYW4gaW4gdGhlIERGRyBKSVQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NSVBTQXNzZW1ibGVyLmgKaW5kZXggZDNmOGFmOS4uNWJlM2NhZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgKQEAgLTU0Niw2
ICs1NDYsMTIgQEAgcHVibGljOgogICAgICAgICBjb3BEZWxheU5vcCgpOwogICAgIH0KIAorICAg
IHZvaWQgbWZoYzEoUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3RlcklEIGZzKQorICAgIHsKKyAgICAg
ICAgZW1pdEluc3QoMHg0NDYwMDAwMCB8IChmcyA8PCBPUF9TSF9GUykgfCAocnQgPDwgT1BfU0hf
UlQpKTsKKyAgICAgICAgY29wRGVsYXlOb3AoKTsKKyAgICB9CisKICAgICB2b2lkIHNxcnRkKEZQ
UmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQogICAgIHsKICAgICAgICAgZW1pdEluc3Qo
MHg0NjIwMDAwNCB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5o
CmluZGV4IDIyODMwYTYuLmJkNzNmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtMTI4Myw2ICsxMjgzLDI5IEBA
IHB1YmxpYzoKICAgICAgICAgbV9maXhlZFdpZHRoID0gZmFsc2U7CiAgICAgfQogCisgICAgdm9p
ZCBtb3ZlRG91YmxlVG9JbnRzKEZQUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdDEsIFJl
Z2lzdGVySUQgZGVzdDIpCisgICAgeworI2lmIFdURl9NSVBTX0lTQV9SRVYoMikgJiYgV1RGX01J
UFNfRlA2NAorICAgICAgICBtX2Fzc2VtYmxlci5tZmMxKGRlc3QxLCBzcmMpOworICAgICAgICBt
X2Fzc2VtYmxlci5tZmhjMShkZXN0Miwgc3JjKTsKKyNlbHNlCisgICAgICAgIG1fYXNzZW1ibGVy
Lm1mYzEoZGVzdDEsIHNyYyk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoZGVzdDIsIEZQUmVn
aXN0ZXJJRChzcmMgKyAxKSk7CisjZW5kaWYKKyAgICB9CisKKyAgICB2b2lkIG1vdmVJbnRzVG9E
b3VibGUoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIEZQUmVnaXN0ZXJJRCBkZXN0
LCBGUFJlZ2lzdGVySUQgc2NyYXRjaCkKKyAgICB7CisgICAgICAgIFVOVVNFRF9QQVJBTShzY3Jh
dGNoKTsKKyNpZiBXVEZfTUlQU19JU0FfUkVWKDIpICYmIFdURl9NSVBTX0ZQNjQKKyAgICAgICAg
bV9hc3NlbWJsZXIubXRjMShzcmMxLCBkZXN0KTsKKyAgICAgICAgbV9hc3NlbWJsZXIubXRoYzEo
c3JjMiwgZGVzdCk7CisjZWxzZQorICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKHNyYzEsIGRlc3Qp
OworICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKHNyYzIsIEZQUmVnaXN0ZXJJRChkZXN0ICsgMSkp
OworI2VuZGlmCisgICAgfQorCiAgICAgLy8gQXJpdGhtZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0
aW9uczoKICAgICAvLwogICAgIC8vIFRoaXMgc2V0IG9mIGNvbmRpdGlvbmFsIGJyYW5jaCBvcGVy
YXRpb25zIGJyYW5jaCBiYXNlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167989</attachid>
            <date>2012-10-10 06:24:13 -0700</date>
            <delta_ts>2012-10-10 08:13:25 -0700</delta_ts>
            <desc>Many missing MIPS functions</desc>
            <filename>missing_functions.diff</filename>
            <type>text/plain</type>
            <size>18781</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDBhOTJlYTMuLmQyZmVmZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACisyMDEyLTEwLTEwICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUzogTWlzc2luZyBmdW50
Y2lvbnMgYWRkZWQgdG8gY29tcGlsZSBhc3NlbWJsZXIuCisKKyAgICAgICAgQWRkaW5nIG1pc3Np
bmcgTUlQUyBmdW5jdGlvbnMgdG8gYXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbnMgaW4gTWFj
cm9Bc3NlbWJsZXJNSVBTIGFuZCBNSVBTQXNzZW1ibGVyLgorCisgICAgICAgICogYXNzZW1ibGVy
L01JUFNBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGIpOgorICAg
ICAgICAoTUlQU0Fzc2VtYmxlcik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmxoKToK
KyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bWZoYzEpOgorICAgICAgICAoSlNDOjpNSVBT
QXNzZW1ibGVyOjpjdnRkcyk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmN2dHNkKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChNYWNy
b0Fzc2VtYmxlck1JUFMpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQ4
U2lnbmVkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkMTZTaWduZWQp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om1vdmVEb3VibGVUb0ludHMpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om1vdmVJbnRzVG9Eb3VibGUpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWRGbG9hdCk6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyTUlQUzo6c3RvcmVGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQ
Uzo6c3RvcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmFkZERv
dWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6Y29udmVydEZsb2F0VG9E
b3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmNvbnZlcnREb3VibGVU
b0Zsb2F0KToKKwogMjAxMi0xMC0xMCAgUGV0ZXIgR2FsICA8Z2FscGV0ZXJAaW5mLnUtc3plZ2Vk
Lmh1PgogCiAgICAgICAgIEFkZCBtb3ZlRG91YmxlVG9JbnRzIGFuZCBtb3ZlSW50c1RvRG91Ymxl
IHRvIE1hY3JvQXNzZW1ibGVyQVJNCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTUlQU0Fzc2VtYmxlci5oCmluZGV4IGQzZjhhZjkuLmU2ODQ5MWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oCkBAIC0zNzAsNiArMzcw
LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgfCAocnMgPDwgT1BfU0hfUlMpKTsKICAg
ICB9CiAKKyAgICB2b2lkIGxiKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZz
ZXQpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDgwMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JU
KSB8IChycyA8PCBPUF9TSF9SUykKKyAgICAgICAgICAgICAgICAgfCAob2Zmc2V0ICYgMHhmZmZm
KSk7CisgICAgICAgIGxvYWREZWxheU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgbGJ1KFJlZ2lz
dGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewogICAgICAgICBlbWl0
SW5zdCgweDkwMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKQEAg
LTM5OCw2ICs0MDUsMTMgQEAgcHVibGljOgogICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAgICB9
CiAKKyAgICB2b2lkIGxoKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQp
CisgICAgeworICAgICAgICBlbWl0SW5zdCgweDg0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8
IChycyA8PCBPUF9TSF9SUykKKyAgICAgICAgICAgICAgICAgfCAob2Zmc2V0ICYgMHhmZmZmKSk7
CisgICAgICAgIGxvYWREZWxheU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgbGh1KFJlZ2lzdGVy
SUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewogICAgICAgICBlbWl0SW5z
dCgweDk0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKQEAgLTU0
Niw2ICs1NjAsMTIgQEAgcHVibGljOgogICAgICAgICBjb3BEZWxheU5vcCgpOwogICAgIH0KIAor
ICAgIHZvaWQgbWZoYzEoUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3RlcklEIGZzKQorICAgIHsKKyAg
ICAgICAgZW1pdEluc3QoMHg0NDYwMDAwMCB8IChmcyA8PCBPUF9TSF9GUykgfCAocnQgPDwgT1Bf
U0hfUlQpKTsKKyAgICAgICAgY29wRGVsYXlOb3AoKTsKKyAgICB9CisKICAgICB2b2lkIHNxcnRk
KEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQogICAgIHsKICAgICAgICAgZW1pdElu
c3QoMHg0NjIwMDAwNCB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKQEAg
LTU2MSwxMSArNTgxLDIxIEBAIHB1YmxpYzoKICAgICAgICAgZW1pdEluc3QoMHg0NjgwMDAyMSB8
IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKICAgICB9CiAKKyAgICB2b2lk
IGN2dGRzKEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQorICAgIHsKKyAgICAgICAg
ZW1pdEluc3QoMHg0NjAwMDAyMSB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMp
KTsKKyAgICB9CisKICAgICB2b2lkIGN2dHdkKEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklE
IGZzKQogICAgIHsKICAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAyNCB8IChmZCA8PCBPUF9TSF9G
RCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKICAgICB9CiAKKyAgICB2b2lkIGN2dHNkKEZQUmVnaXN0
ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQorICAgIHsKKyAgICAgICAgZW1pdEluc3QoMHg0NjIw
MDAyMCB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKKyAgICB9CisKICAg
ICB2b2lkIGNlcWQoRlBSZWdpc3RlcklEIGZzLCBGUFJlZ2lzdGVySUQgZnQpCiAgICAgewogICAg
ICAgICBlbWl0SW5zdCgweDQ2MjAwMDMyIHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChmdCA8PCBPUF9T
SF9GVCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJNSVBTLmgKaW5kZXggMjI4MzBhNi4uODM1Yjc3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCkBAIC01ODEs
NiArNTgxLDM1IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxidShkZXN0LCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CisgICAg
CisgICAgdm9pZCBsb2FkOFNpZ25lZChCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHsKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNz
Lm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAg
ICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBh
ZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFk
ZHJlc3MuYmFzZQorICAgICAgICAgICAgIGxiICAgICBkZXN0LCBhZGRyZXNzLm9mZnNldChhZGRy
VGVtcCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoK
KyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNj
YWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFz
ZQorICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAw
KSA+PiAxNgorICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1w
CisgICAgICAgICAgICAgbGIgICAgIGRlc3QsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQp
CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5i
YXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRy
ZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
dShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIo
ZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAg
fQogCiAgICAgdm9pZCBsb2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CkBAIC03NjksNiArNzk4LDM1IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAg
IH0KIAorICAgIHZvaWQgbG9hZDE2U2lnbmVkKEJhc2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCisgICAgeworICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFk
ZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7Cisg
ICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3Mu
aW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBh
ZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbGggICAgIGRlc3QsIGFkZHJl
c3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxoKGRlc3Qs
IGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFk
ZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChh
ZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFk
ZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgIGxoICAgICBkZXN0LCAo
YWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBh
ZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdp
c3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4g
MTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0
ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGgoZGVzdCwgYWRkclRlbXBSZWdpc3Rlciwg
YWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQorCiAgICAgRGF0YUxhYmVsMzIgc3Rv
cmUzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIG1fZml4ZWRXaWR0aCA9IHRydWU7CkBAIC0xMjgzLDYgKzEzNDEs
MjkgQEAgcHVibGljOgogICAgICAgICBtX2ZpeGVkV2lkdGggPSBmYWxzZTsKICAgICB9CiAKKyAg
ICB2b2lkIG1vdmVEb3VibGVUb0ludHMoRlBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0
MSwgUmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBX
VEZfTUlQU19GUDY0CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoZGVzdDEsIHNyYyk7CisgICAg
ICAgIG1fYXNzZW1ibGVyLm1maGMxKGRlc3QyLCBzcmMpOworI2Vsc2UKKyAgICAgICAgbV9hc3Nl
bWJsZXIubWZjMShkZXN0MSwgc3JjKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkZXN0Miwg
RlBSZWdpc3RlcklEKHNyYyArIDEpKTsKKyNlbmRpZgorICAgIH0KKworICAgIHZvaWQgbW92ZUlu
dHNUb0RvdWJsZShSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgRlBSZWdpc3RlcklE
IGRlc3QsIEZQUmVnaXN0ZXJJRCBzY3JhdGNoKQorICAgIHsKKyAgICAgICAgVU5VU0VEX1BBUkFN
KHNjcmF0Y2gpOworI2lmIFdURl9NSVBTX0lTQV9SRVYoMikgJiYgV1RGX01JUFNfRlA2NAorICAg
ICAgICBtX2Fzc2VtYmxlci5tdGMxKHNyYzEsIGRlc3QpOworICAgICAgICBtX2Fzc2VtYmxlci5t
dGhjMShzcmMyLCBkZXN0KTsKKyNlbHNlCisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoc3JjMSwg
ZGVzdCk7CisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoc3JjMiwgRlBSZWdpc3RlcklEKGRlc3Qg
KyAxKSk7CisjZW5kaWYKKyAgICB9CisKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBv
cGVyYXRpb25zOgogICAgIC8vCiAgICAgLy8gVGhpcyBzZXQgb2YgY29uZGl0aW9uYWwgYnJhbmNo
IG9wZXJhdGlvbnMgYnJhbmNoIGJhc2VkCkBAIC0xNjgwLDYgKzE3NjEsMzUgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gdGFpbFJlY3Vyc2l2ZUNhbGwoKTsKICAgICB9CiAKKyAgICB2b2lkIGxv
YWRGbG9hdChCYXNlSW5kZXggYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAg
ICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMy
NzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAg
ICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUK
KyAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisg
ICAgICAgICAgICAgbHdjMSAgICBkZXN0LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAg
ICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAg
ICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAg
ICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAg
ICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2Cisg
ICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAg
ICAgICBsd2MxICAgIGRlc3QsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNl
dCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShkZXN0LCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisKICAg
ICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKQEAgLTE3MTAsNiArMTgyMCw2NiBAQCBw
dWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lkIGxvYWREb3VibGUoQmFzZUluZGV4IGFk
ZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyNpZiBXVEZfTUlQU19JU0EoMSkKKyAg
ICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAz
Mjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAg
ICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNj
YWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3Mu
YmFzZQorICAgICAgICAgICAgICAgIGx3YzEgICAgZGVzdCwgYWRkcmVzcy5vZmZzZXQoYWRkclRl
bXApCisgICAgICAgICAgICAgICAgbHdjMSAgICBkZXN0KzEsIChhZGRyZXNzLm9mZnNldCs0KShh
ZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRk
clRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKGRlc3QsIGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEo
RlBSZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQg
KyA0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAg
c2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAg
ICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAg
ICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYK
KyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAg
ICAgICAgICAgICAgIGx3YzEgICAgZGVzdCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkK
KyAgICAgICAgICAgICAgICBsd2MxICAgIGRlc3QrNCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZm
ICsgNCkoYXQpCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFk
ZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3Rl
ciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdp
c3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKGRlc3QsIGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBSZWdp
c3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQgKyA0KTsK
KyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAm
JiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkg
eworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVt
cCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGxkYzEgICAgZGVzdCwg
YWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGRj
MShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFk
ZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJU
ZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1U
ZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRk
dSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBsZGMxICAg
IGRlc3QsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAqLworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgs
IGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+
PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbVRlbXBSZWdp
c3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZGMxKGRlc3QsIGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorCiAgICAgdm9p
ZCBsb2FkRG91YmxlKGNvbnN0IHZvaWQqIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICNpZiBXVEZfTUlQU19JU0EoMSkKQEAgLTE3MzEsNiArMTkwMSwzNCBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgQmFz
ZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMy
NzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdp
ZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFk
ZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgc3djMSAgICBz
cmMsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNz
LnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rlciwg
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFk
ZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBp
bW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAg
YWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBzd2Mx
ICAgIHNyYywgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICovCisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRl
eCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDAp
ID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rlciwg
YWRkclRlbXBSZWdpc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICB2b2lkIHN0b3Jl
RG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
QEAgLTE3NjIsMTcgKzE5NjAsMTAxIEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAorICAgIHZv
aWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCisgICAg
eworI2lmIFdURl9NSVBTX0lTQSgxKQorICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMy
NzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdp
ZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFk
ZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgc3djMSAgICBz
cmMsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3Jj
KzEsIChhZGRyZXNzLm9mZnNldCArIDQpKGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBh
ZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdp
c3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKEZQUmVnaXN0ZXJJRChzcmMgKyAxKSwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQgKyA0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwg
YWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1w
LCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNz
Lm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1w
LCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjLCAoYWRkcmVz
cy5vZmZzZXQgJiAweGZmZmYpKGF0KQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjKzEsIChh
ZGRyZXNzLm9mZnNldCAmIDB4ZmZmZiArIDQpKGF0KQorICAgICAgICAgICAgKi8KKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRy
ZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rl
ciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVt
cFJlZ2lzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoRlBSZWdpc3RlcklE
KHNyYyArIDEpLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCArIDQpOworICAgICAg
ICB9CisjZWxzZQorICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJl
c3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAg
ICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5k
ZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRy
VGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgc2RjMSAgICBzcmMsIGFkZHJlc3Mu
b2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNkYzEoc3JjLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5k
ZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRy
VGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRk
cmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRy
VGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBzZGMxICAgIHNyYywgKGFk
ZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5z
Y2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5s
dWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLnNkYzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
Lm9mZnNldCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0KKworICAgIHZvaWQgc3RvcmVEb3Vi
bGUoRlBSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB7CisjaWYgV1RG
X01JUFNfSVNBKDEpCisgICAgCW1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBS
ZWdpc3Rlcik7CisgICAgCW1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCAw
KTsKKyAgICAJbV9hc3NlbWJsZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1w
UmVnaXN0ZXIsIDQpOworI2Vsc2UKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3Mp
LCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJU
ZW1wUmVnaXN0ZXIsIDApOworI2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBhZGREb3VibGUoRlBS
ZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGRkKGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCisgICAgdm9pZCBhZGREb3VibGUo
RlBSZWdpc3RlcklEIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCisg
ICAgeworICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRlc3QsIG9wMSwgb3AyKTsKKyAgICB9CisK
ICAgICB2b2lkIGFkZERvdWJsZShBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBsb2FkRG91YmxlKHNyYywgZnBUZW1wUmVnaXN0ZXIpOwogICAgICAgICBtX2Fz
c2VtYmxlci5hZGRkKGRlc3QsIGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKKyAgICB2
b2lkIGFkZERvdWJsZShBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3Qp
CisgICAgeworICAgICAgICBsb2FkRG91YmxlKGFkZHJlc3MubV9wdHIsIGZwVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYWRkZChkZXN0LCBkZXN0LCBmcFRlbXBSZWdpc3Rlcik7
CisgICAgfQorCiAgICAgdm9pZCBzdWJEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zdWJkKGRlc3QsIGRlc3QsIHNy
Yyk7CkBAIC0xODIwLDYgKzIxMDIsMTYgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5j
dnRkdyhkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBjb252ZXJ0Rmxv
YXRUb0RvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuY3Z0ZHMoZHN0LCBzcmMpOworICAgIH0KKworICAgIHZvaWQgY29u
dmVydERvdWJsZVRvRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAg
ICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmN2dHNkKGRzdCwgc3JjKTsKKyAgICB9CisKICAgICB2
b2lkIGluc2VydFJlbGF4YXRpb25Xb3JkcygpCiAgICAgewogICAgICAgICAvKiBXZSBuZWVkIGZv
dXIgd29yZHMgZm9yIHJlbGF4YXRpb24uICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168000</attachid>
            <date>2012-10-10 08:13:25 -0700</date>
            <delta_ts>2012-10-12 09:12:49 -0700</delta_ts>
            <desc>Many missing MIPS functions.</desc>
            <filename>missing_functions.diff</filename>
            <type>text/plain</type>
            <size>42177</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL29yaWdpbi9tYXN0ZXI6U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZyBiL21hc3RlcjpTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGYxMjJjN2Uu
LmY1MjNlNDEgMTAwNjQ0Ci0tLSBhL29yaWdpbi9tYXN0ZXI6U291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9tYXN0ZXI6U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTEwICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhv
bWVqaW5uaS5jb20+CisKKyAgICAgICAgQWRkaW5nIG1pc3NpbmcgTUlQUyBmdW5jdGlvbnMgdG8g
YXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTg4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbnMgaW4gTWFjcm9Bc3NlbWJsZXJNSVBTIGFuZCBN
SVBTQXNzZW1ibGVyLgorCisgICAgICAgICogYXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaDoKKyAg
ICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGIpOgorICAgICAgICAoTUlQU0Fzc2VtYmxlcik6
CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmxoKToKKyAgICAgICAgKEpTQzo6TUlQU0Fz
c2VtYmxlcjo6bWZoYzEpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpjdnRkcyk6Cisg
ICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmN2dHNkKToKKyAgICAgICAgKiBhc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChNYWNyb0Fzc2VtYmxlck1JUFMpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQ4U2lnbmVkKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkMTZTaWduZWQpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlck1JUFM6Om1vdmVEb3VibGVUb0ludHMpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlck1JUFM6Om1vdmVJbnRzVG9Eb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlck1JUFM6OmxvYWRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6
bG9hZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVGbG9h
dCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVEb3VibGUpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmFkZERvdWJsZSk6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyTUlQUzo6Y29udmVydEZsb2F0VG9Eb3VibGUpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlck1JUFM6OmNvbnZlcnREb3VibGVUb0Zsb2F0KToKKwogMjAxMi0xMC0x
MCAgUGV0ZXIgR2FsICA8Z2FscGV0ZXJAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIEFkZCBt
b3ZlRG91YmxlVG9JbnRzIGFuZCBtb3ZlSW50c1RvRG91YmxlIHRvIE1hY3JvQXNzZW1ibGVyQVJN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3NlbWJs
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oCmlu
ZGV4IGQzZjhhZjkuLjI4MjAyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTUlQU0Fzc2VtYmxlci5oCkBAIC0yMjcsMjAgKzIyNywxNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGFkZGl1KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBpbW0pCiAgICAg
ewotICAgICAgICBlbWl0SW5zdCgweDI0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8
PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAoaW1tICYgMHhmZmZmKSk7CisgICAgICAg
IGVtaXRJbnN0KDB4MjQwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JT
KSB8IChpbW0gJiAweGZmZmYpKTsKICAgICB9CiAKICAgICB2b2lkIGFkZHUoUmVnaXN0ZXJJRCBy
ZCwgUmVnaXN0ZXJJRCBycywgUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0
KDB4MDAwMDAwMjEgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAg
ICAgICAgICAgICB8IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAw
MDIxIHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykgfCAocnQgPDwgT1BfU0hf
UlQpKTsKICAgICB9CiAKICAgICB2b2lkIHN1YnUoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBy
cywgUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMjMgfCAo
cmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChy
dCA8PCBPUF9TSF9SVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDIzIHwgKHJkIDw8IE9Q
X1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykgfCAocnQgPDwgT1BfU0hfUlQpKTsKICAgICB9CiAK
ICAgICB2b2lkIG11bHQoUmVnaXN0ZXJJRCBycywgUmVnaXN0ZXJJRCBydCkKQEAgLTI2Niw4ICsy
NjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtdWwoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBy
cywgUmVnaXN0ZXJJRCBydCkKICAgICB7CiAjaWYgV1RGX01JUFNfSVNBX0FUX0xFQVNUKDMyKSAK
LSAgICAgICAgZW1pdEluc3QoMHg3MDAwMDAwMiB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwg
T1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CisgICAgICAg
IGVtaXRJbnN0KDB4NzAwMDAwMDIgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JT
KSB8IChydCA8PCBPUF9TSF9SVCkpOwogI2Vsc2UKICAgICAgICAgbXVsdChycywgcnQpOwogICAg
ICAgICBtZmxvKHJkKTsKQEAgLTI3NiwxNTEgKzI3MiwxMzkgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBhbmRJbnNuKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnMsIFJlZ2lzdGVySUQgcnQpCiAg
ICAgewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDI0IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChy
cyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAocnQgPDwgT1BfU0hfUlQpKTsKKyAg
ICAgICAgZW1pdEluc3QoMHgwMDAwMDAyNCB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwgT1Bf
U0hfUlMpIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmRpKFJlZ2lz
dGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBpbW0pCiAgICAgewotICAgICAgICBlbWl0SW5z
dCgweDMwMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAg
ICAgICAgICAgICAgfCAoaW1tICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MzAwMDAw
MDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChpbW0gJiAweGZmZmYp
KTsKICAgICB9CiAKICAgICB2b2lkIG5vcihSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBS
ZWdpc3RlcklEIHJ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyNyB8IChyZCA8
PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8
IE9QX1NIX1JUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMjcgfCAocmQgPDwgT1BfU0hf
UkQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAogICAg
IHZvaWQgb3JJbnNuKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnMsIFJlZ2lzdGVySUQgcnQp
CiAgICAgewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDI1IHwgKHJkIDw8IE9QX1NIX1JEKSB8
IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAocnQgPDwgT1BfU0hfUlQpKTsK
KyAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyNSB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwg
T1BfU0hfUlMpIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CiAgICAgfQogCiAgICAgdm9pZCBvcmkoUmVn
aXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IGltbSkKICAgICB7Ci0gICAgICAgIGVtaXRJ
bnN0KDB4MzQwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAg
ICAgICAgICAgICAgICB8IChpbW0gJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHgzNDAw
MDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKGltbSAmIDB4ZmZm
ZikpOwogICAgIH0KIAogICAgIHZvaWQgeG9ySW5zbihSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklE
IHJzLCBSZWdpc3RlcklEIHJ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyNiB8
IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwg
KHJ0IDw8IE9QX1NIX1JUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMjYgfCAocmQgPDwg
T1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0K
IAogICAgIHZvaWQgeG9yaShSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgaW1tKQog
ICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgzODAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAo
cnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKGltbSAmIDB4ZmZmZikpOworICAg
ICAgICBlbWl0SW5zdCgweDM4MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9T
SF9SUykgfCAoaW1tICYgMHhmZmZmKSk7CiAgICAgfQogCiAgICAgdm9pZCBzbHQoUmVnaXN0ZXJJ
RCByZCwgUmVnaXN0ZXJJRCBycywgUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAgIGVtaXRJ
bnN0KDB4MDAwMDAwMmEgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAg
ICAgICAgICAgICAgICB8IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBlbWl0SW5zdCgweDAw
MDAwMDJhIHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykgfCAocnQgPDwgT1Bf
U0hfUlQpKTsKICAgICB9CiAKICAgICB2b2lkIHNsdHUoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJ
RCBycywgUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMmIg
fCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8
IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDJiIHwgKHJkIDw8
IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykgfCAocnQgPDwgT1BfU0hfUlQpKTsKICAgICB9
CiAKICAgICB2b2lkIHNsdGl1KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBpbW0p
CiAgICAgewotICAgICAgICBlbWl0SW5zdCgweDJjMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8
IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAoaW1tICYgMHhmZmZmKSk7Cisg
ICAgICAgIGVtaXRJbnN0KDB4MmMwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9Q
X1NIX1JTKSB8IChpbW0gJiAweGZmZmYpKTsKICAgICB9CiAKICAgICB2b2lkIHNsbChSZWdpc3Rl
cklEIHJkLCBSZWdpc3RlcklEIHJ0LCBpbnQgc2hhbXQpCiAgICAgewotICAgICAgICBlbWl0SW5z
dCgweDAwMDAwMDAwIHwgKHJkIDw8IE9QX1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkKLSAgICAg
ICAgICAgICAgICAgfCAoKHNoYW10ICYgMHgxZikgPDwgT1BfU0hfU0hBTVQpKTsKKyAgICAgICAg
ZW1pdEluc3QoMHgwMDAwMDAwMCB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnQgPDwgT1BfU0hfUlQp
IHwgKChzaGFtdCAmIDB4MWYpIDw8IE9QX1NIX1NIQU1UKSk7CiAgICAgfQogCiAgICAgdm9pZCBz
bGx2KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnQsIGludCBycykKICAgICB7Ci0gICAgICAg
IGVtaXRJbnN0KDB4MDAwMDAwMDQgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JU
KQotICAgICAgICAgICAgICAgICB8IChycyA8PCBPUF9TSF9SUykpOworICAgICAgICBlbWl0SW5z
dCgweDAwMDAwMDA0IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMg
PDwgT1BfU0hfUlMpKTsKICAgICB9CiAKICAgICB2b2lkIHNyYShSZWdpc3RlcklEIHJkLCBSZWdp
c3RlcklEIHJ0LCBpbnQgc2hhbXQpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDAz
IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkKLSAgICAgICAgICAgICAgICAg
fCAoKHNoYW10ICYgMHgxZikgPDwgT1BfU0hfU0hBTVQpKTsKKyAgICAgICAgZW1pdEluc3QoMHgw
MDAwMDAwMyB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnQgPDwgT1BfU0hfUlQpIHwgKChzaGFtdCAm
IDB4MWYpIDw8IE9QX1NIX1NIQU1UKSk7CiAgICAgfQogCiAgICAgdm9pZCBzcmF2KFJlZ2lzdGVy
SUQgcmQsIFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMpCiAgICAgewotICAgICAgICBlbWl0
SW5zdCgweDAwMDAwMDA3IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkKLSAg
ICAgICAgICAgICAgICAgfCAocnMgPDwgT1BfU0hfUlMpKTsKKyAgICAgICAgZW1pdEluc3QoMHgw
MDAwMDAwNyB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9Q
X1NIX1JTKSk7CiAgICAgfQogCiAgICAgdm9pZCBzcmwoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJ
RCBydCwgaW50IHNoYW10KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAwMiB8IChy
ZCA8PCBPUF9TSF9SRCkgfCAocnQgPDwgT1BfU0hfUlQpCi0gICAgICAgICAgICAgICAgIHwgKChz
aGFtdCAmIDB4MWYpIDw8IE9QX1NIX1NIQU1UKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAw
MDIgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKSB8ICgoc2hhbXQgJiAweDFm
KSA8PCBPUF9TSF9TSEFNVCkpOwogICAgIH0KIAogICAgIHZvaWQgc3JsdihSZWdpc3RlcklEIHJk
LCBSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzKQogICAgIHsKLSAgICAgICAgZW1pdEluc3Qo
MHgwMDAwMDAwNiB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnQgPDwgT1BfU0hfUlQpCi0gICAgICAg
ICAgICAgICAgIHwgKHJzIDw8IE9QX1NIX1JTKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAw
MDYgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9S
UykpOworICAgIH0KKworICAgIHZvaWQgbGIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywg
aW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGVtaXRJbnN0KDB4ODAwMDAwMDAgfCAocnQgPDwg
T1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAg
ICAgbG9hZERlbGF5Tm9wKCk7CiAgICAgfQogCiAgICAgdm9pZCBsYnUoUmVnaXN0ZXJJRCBydCwg
UmVnaXN0ZXJJRCBycywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4OTAw
MDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAg
ICAgICB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHg5MDAwMDAwMCB8
IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikp
OwogICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAgICB9CiAKICAgICB2b2lkIGx3KFJlZ2lzdGVy
SUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBlbWl0SW5z
dCgweDhjMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAg
ICAgICAgICAgICAgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4OGMw
MDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAw
eGZmZmYpKTsKICAgICAgICAgbG9hZERlbGF5Tm9wKCk7CiAgICAgfQogCiAgICAgdm9pZCBsd2wo
UmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAg
IGVtaXRJbnN0KDB4ODgwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JT
KQotICAgICAgICAgICAgICAgICB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdElu
c3QoMHg4ODAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9m
ZnNldCAmIDB4ZmZmZikpOwogICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAgICB9CiAKICAgICB2
b2lkIGx3cihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAgIHsK
LSAgICAgICAgZW1pdEluc3QoMHg5ODAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwg
T1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAgICAg
ICBlbWl0SW5zdCgweDk4MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9S
UykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGxvYWREZWxheU5vcCgpOworICAgIH0K
KworICAgIHZvaWQgbGgoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNldCkK
KyAgICB7CisgICAgICAgIGVtaXRJbnN0KDB4ODQwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwg
KHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKICAgICAgICAgbG9hZERlbGF5
Tm9wKCk7CiAgICAgfQogCiAgICAgdm9pZCBsaHUoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBy
cywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4OTQwMDAwMDAgfCAocnQg
PDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChvZmZz
ZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHg5NDAwMDAwMCB8IChydCA8PCBPUF9T
SF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwogICAgICAgICBs
b2FkRGVsYXlOb3AoKTsKICAgICB9CiAKICAgICB2b2lkIHNiKFJlZ2lzdGVySUQgcnQsIFJlZ2lz
dGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweGEwMDAwMDAw
IHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAg
fCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4YTAwMDAwMDAgfCAocnQg
PDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKICAg
ICB9CiAKICAgICB2b2lkIHNoKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZz
ZXQpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweGE0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JU
KSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAob2Zmc2V0ICYgMHhmZmZm
KSk7CisgICAgICAgIGVtaXRJbnN0KDB4YTQwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJz
IDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKICAgICB9CiAKICAgICB2b2lkIHN3
KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewotICAgICAg
ICBlbWl0SW5zdCgweGFjMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9S
UykKLSAgICAgICAgICAgICAgICAgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJ
bnN0KDB4YWMwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChv
ZmZzZXQgJiAweGZmZmYpKTsKICAgICB9CiAKICAgICB2b2lkIGpyKFJlZ2lzdGVySUQgcnMpCkBA
IC00ODEsNTEgKzQ2NSw0MyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZGQoRlBSZWdpc3RlcklE
IGZkLCBGUFJlZ2lzdGVySUQgZnMsIEZQUmVnaXN0ZXJJRCBmdCkKICAgICB7Ci0gICAgICAgIGVt
aXRJbnN0KDB4NDYyMDAwMDAgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKQot
ICAgICAgICAgICAgICAgICB8IChmdCA8PCBPUF9TSF9GVCkpOworICAgICAgICBlbWl0SW5zdCgw
eDQ2MjAwMDAwIHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykgfCAoZnQgPDwg
T1BfU0hfRlQpKTsKICAgICB9CiAKICAgICB2b2lkIHN1YmQoRlBSZWdpc3RlcklEIGZkLCBGUFJl
Z2lzdGVySUQgZnMsIEZQUmVnaXN0ZXJJRCBmdCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4
NDYyMDAwMDEgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKQotICAgICAgICAg
ICAgICAgICB8IChmdCA8PCBPUF9TSF9GVCkpOworICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDAx
IHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykgfCAoZnQgPDwgT1BfU0hfRlQp
KTsKICAgICB9CiAKICAgICB2b2lkIG11bGQoRlBSZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQg
ZnMsIEZQUmVnaXN0ZXJJRCBmdCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMDIg
fCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKQotICAgICAgICAgICAgICAgICB8
IChmdCA8PCBPUF9TSF9GVCkpOworICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDAyIHwgKGZkIDw8
IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykgfCAoZnQgPDwgT1BfU0hfRlQpKTsKICAgICB9
CiAKICAgICB2b2lkIGRpdmQoRlBSZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQgZnMsIEZQUmVn
aXN0ZXJJRCBmdCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMDMgfCAoZmQgPDwg
T1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKQotICAgICAgICAgICAgICAgICB8IChmdCA8PCBP
UF9TSF9GVCkpOworICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDAzIHwgKGZkIDw8IE9QX1NIX0ZE
KSB8IChmcyA8PCBPUF9TSF9GUykgfCAoZnQgPDwgT1BfU0hfRlQpKTsKICAgICB9CiAKICAgICB2
b2lkIGx3YzEoRlBSZWdpc3RlcklEIGZ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAg
IHsKLSAgICAgICAgZW1pdEluc3QoMHhjNDAwMDAwMCB8IChmdCA8PCBPUF9TSF9GVCkgfCAocnMg
PDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAg
ICAgICBlbWl0SW5zdCgweGM0MDAwMDAwIHwgKGZ0IDw8IE9QX1NIX0ZUKSB8IChycyA8PCBPUF9T
SF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CiAgICAgICAgIGNvcERlbGF5Tm9wKCk7CiAgICAg
fQogCiAgICAgdm9pZCBsZGMxKEZQUmVnaXN0ZXJJRCBmdCwgUmVnaXN0ZXJJRCBycywgaW50IG9m
ZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4ZDQwMDAwMDAgfCAoZnQgPDwgT1BfU0hf
RlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChvZmZzZXQgJiAweGZm
ZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHhkNDAwMDAwMCB8IChmdCA8PCBPUF9TSF9GVCkgfCAo
cnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwogICAgIH0KIAogICAgIHZvaWQg
c3djMShGUFJlZ2lzdGVySUQgZnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewot
ICAgICAgICBlbWl0SW5zdCgweGU0MDAwMDAwIHwgKGZ0IDw8IE9QX1NIX0ZUKSB8IChycyA8PCBP
UF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAg
IGVtaXRJbnN0KDB4ZTQwMDAwMDAgfCAoZnQgPDwgT1BfU0hfRlQpIHwgKHJzIDw8IE9QX1NIX1JT
KSB8IChvZmZzZXQgJiAweGZmZmYpKTsKICAgICB9CiAKICAgICB2b2lkIHNkYzEoRlBSZWdpc3Rl
cklEIGZ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgZW1pdElu
c3QoMHhmNDAwMDAwMCB8IChmdCA8PCBPUF9TSF9GVCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAg
ICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAgICAgICBlbWl0SW5zdCgweGY0
MDAwMDAwIHwgKGZ0IDw8IE9QX1NIX0ZUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYg
MHhmZmZmKSk7CiAgICAgfQogCiAgICAgdm9pZCBtdGMxKFJlZ2lzdGVySUQgcnQsIEZQUmVnaXN0
ZXJJRCBmcykKQEAgLTU0Niw2ICs1MjIsMTIgQEAgcHVibGljOgogICAgICAgICBjb3BEZWxheU5v
cCgpOwogICAgIH0KIAorICAgIHZvaWQgbWZoYzEoUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3RlcklE
IGZzKQorICAgIHsKKyAgICAgICAgZW1pdEluc3QoMHg0NDYwMDAwMCB8IChmcyA8PCBPUF9TSF9G
UykgfCAocnQgPDwgT1BfU0hfUlQpKTsKKyAgICAgICAgY29wRGVsYXlOb3AoKTsKKyAgICB9CisK
ICAgICB2b2lkIHNxcnRkKEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQogICAgIHsK
ICAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwNCB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwg
T1BfU0hfRlMpKTsKQEAgLTU2MSwxMSArNTQzLDIxIEBAIHB1YmxpYzoKICAgICAgICAgZW1pdElu
c3QoMHg0NjgwMDAyMSB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKICAg
ICB9CiAKKyAgICB2b2lkIGN2dGRzKEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQor
ICAgIHsKKyAgICAgICAgZW1pdEluc3QoMHg0NjAwMDAyMSB8IChmZCA8PCBPUF9TSF9GRCkgfCAo
ZnMgPDwgT1BfU0hfRlMpKTsKKyAgICB9CisKICAgICB2b2lkIGN2dHdkKEZQUmVnaXN0ZXJJRCBm
ZCwgRlBSZWdpc3RlcklEIGZzKQogICAgIHsKICAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAyNCB8
IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKICAgICB9CiAKKyAgICB2b2lk
IGN2dHNkKEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQorICAgIHsKKyAgICAgICAg
ZW1pdEluc3QoMHg0NjIwMDAyMCB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMp
KTsKKyAgICB9CisKICAgICB2b2lkIGNlcWQoRlBSZWdpc3RlcklEIGZzLCBGUFJlZ2lzdGVySUQg
ZnQpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDMyIHwgKGZzIDw8IE9QX1NIX0ZT
KSB8IChmdCA8PCBPUF9TSF9GVCkpOwpAQCAtNjg0LDcgKzY3Niw3IEBAIHB1YmxpYzoKICAgICAv
LyBMaW5raW5nICYgcGF0Y2hpbmc6CiAgICAgLy8KICAgICAvLyAnbGluaycgYW5kICdwYXRjaCcg
bWV0aG9kcyBhcmUgZm9yIHVzZSBvbiB1bnByb3RlY3RlZCBjb2RlIC0gc3VjaCBhcyB0aGUgY29k
ZQotICAgIC8vIHdpdGhpbiB0aGUgQXNzZW1ibGVyQnVmZmVyLCBhbmQgY29kZSBiZWluZyBwYXRj
aGVkIGJ5IHRoZSBwYXRjaCBidWZmZXIuICBPbmNlCisgICAgLy8gd2l0aGluIHRoZSBBc3NlbWJs
ZXJCdWZmZXIsIGFuZCBjb2RlIGJlaW5nIHBhdGNoZWQgYnkgdGhlIHBhdGNoIGJ1ZmZlci4gT25j
ZQogICAgIC8vIGNvZGUgaGFzIGJlZW4gZmluYWxpemVkIGl0IGlzIChwbGF0Zm9ybSBzdXBwb3J0
IHBlcm1pdHRpbmcpIHdpdGhpbiBhIG5vbi0KICAgICAvLyB3cml0YWJsZSByZWdpb24gb2YgbWVt
b3J5OyB0byBtb2RpZnkgdGhlIGNvZGUgaW4gYW4gZXhlY3V0ZS1vbmx5IGV4ZWN1YWJsZQogICAg
IC8vIHBvb2wgdGhlICdyZXBhdGNoJyBhbmQgJ3JlbGluaycgbWV0aG9kcyBzaG91bGQgYmUgdXNl
ZC4KQEAgLTg1OCw3ICs4NTAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgTUlQU1dvcmQqIGlu
c24gPSByZWludGVycHJldF9jYXN0PE1JUFNXb3JkKj4ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJf
dD4obmV3QmFzZSkgKyBwb3MpOwogICAgICAgICAgICAgaW5zbiA9IGluc24gKyAyOwogICAgICAg
ICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgd2UgaGF2ZSA1IHZhbGlkIGluc3RydWN0aW9ucyBh
ZnRlciBwb3MKLSAgICAgICAgICAgIGlmICgodW5zaWduZWQgaW50KXBvcyA+PSBtX2J1ZmZlci5j
b2RlU2l6ZSgpIC0gNSAqIHNpemVvZihNSVBTV29yZCkpCisgICAgICAgICAgICBpZiAoKHVuc2ln
bmVkKXBvcyA+PSBtX2J1ZmZlci5jb2RlU2l6ZSgpIC0gNSAqIHNpemVvZihNSVBTV29yZCkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGlmICgoKmluc24gJiAweGZj
MDAwMDAwKSA9PSAweDA4MDAwMDAwKSB7IC8vIGoKQEAgLTg5NCwxMSArODg2LDEwIEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIGludCBsaW5rV2l0aE9mZnNldChNSVBTV29yZCogaW5zbiwgdm9pZCog
dG8pCiAgICAgewogICAgICAgICBBU1NFUlQoKCppbnNuICYgMHhmYzAwMDAwMCkgPT0gMHgxMDAw
MDAwMCAvLyBiZXEKLSAgICAgICAgICAgICAgIHx8ICgqaW5zbiAmIDB4ZmMwMDAwMDApID09IDB4
MTQwMDAwMDAgLy8gYm5lCi0gICAgICAgICAgICAgICB8fCAoKmluc24gJiAweGZmZmYwMDAwKSA9
PSAweDQ1MDEwMDAwIC8vIGJjMXQKLSAgICAgICAgICAgICAgIHx8ICgqaW5zbiAmIDB4ZmZmZjAw
MDApID09IDB4NDUwMDAwMDApOyAvLyBiYzFmCi0gICAgICAgIGludHB0cl90IGRpZmYgPSAocmVp
bnRlcnByZXRfY2FzdDxpbnRwdHJfdD4odG8pCi0gICAgICAgICAgICAgICAgICAgICAgICAgLSBy
ZWludGVycHJldF9jYXN0PGludHB0cl90PihpbnNuKSAtIDQpID4+IDI7CisgICAgICAgICAgICB8
fCAoKmluc24gJiAweGZjMDAwMDAwKSA9PSAweDE0MDAwMDAwIC8vIGJuZQorICAgICAgICAgICAg
fHwgKCppbnNuICYgMHhmZmZmMDAwMCkgPT0gMHg0NTAxMDAwMCAvLyBiYzF0CisgICAgICAgICAg
ICB8fCAoKmluc24gJiAweGZmZmYwMDAwKSA9PSAweDQ1MDAwMDAwKTsgLy8gYmMxZgorICAgICAg
ICBpbnRwdHJfdCBkaWZmID0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAtIHJlaW50
ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGluc24pIC0gNCkgPj4gMjsKIAogICAgICAgICBpZiAoZGlm
ZiA8IC0zMjc2OCB8fCBkaWZmID4gMzI3NjcgfHwgKihpbnNuICsgMikgIT0gMHgxMDAwMDAwMykg
ewogICAgICAgICAgICAgLyoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IDIyODMwYTYuLjAxNTRhNzI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
LmgKQEAgLTI5LDggKzI5LDggQEAKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIENQVShNSVBT
KQogCi0jaW5jbHVkZSAiTUlQU0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkFic3RyYWN0TWFjcm9B
c3NlbWJsZXIuaCIKKyNpbmNsdWRlICJNSVBTQXNzZW1ibGVyLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCkBAIC0xNTUsMTIgKzE1NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5sdyhkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKICAg
ICAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAtMzI3NjggJiYgaW1tLm1fdmFsdWUgPD0gMzI3
NjcKICAgICAgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKQotICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tLm1fdmFsdWUpOworICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIs
IGltbS5tX3ZhbHVlKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIG1vdmUo
aW1tLCBpbW1UZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUo
ZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0
ZXIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0gZWxzZSB7
CkBAIC0xNzcsMTIgKzE3NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5s
dyhkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAK
ICAgICAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAtMzI3NjggJiYgaW1tLm1fdmFsdWUgPD0g
MzI3NjcgJiYgIW1fZml4ZWRXaWR0aCkKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRp
dShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGltbS5tX3ZhbHVlKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW0ubV92YWx1ZSk7
CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJl
Z2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGRhdGFUZW1wUmVnaXN0
ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoZGF0YVRl
bXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgfQpAQCAtMjU3LDggKzI1Myw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmICghaW1tLm1fdmFsdWUgJiYgIW1fZml4ZWRX
aWR0aCkKICAgICAgICAgICAgIG1vdmUoTUlQU1JlZ2lzdGVyczo6emVybywgZGVzdCk7Ci0gICAg
ICAgIGVsc2UgaWYgKGltbS5tX3ZhbHVlID4gMCAmJiBpbW0ubV92YWx1ZSA8IDY1NTM1Ci0gICAg
ICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCisgICAgICAgIGVsc2UgaWYgKGltbS5tX3Zh
bHVlID4gMCAmJiBpbW0ubV92YWx1ZSA8IDY1NTM1ICYmICFtX2ZpeGVkV2lkdGgpCiAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hbmRpKGRlc3QsIGRlc3QsIGltbS5tX3ZhbHVlKTsKICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICAvKgpAQCAtNDE5LDE0ICs0MTQsMTEgQEAgcHVibGljOgogICAg
ICAgICAgICAgICBzdyAgICAgICAgZGF0YVRlbXAsIG9mZnNldChiYXNlKQogICAgICAgICAgICAg
Ki8KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mu
YmFzZSwgYWRkcmVzcy5vZmZzZXQpOwotICAgICAgICAgICAgaWYgKGltbS5tX3ZhbHVlID49IC0z
Mjc2NyAmJiBpbW0ubV92YWx1ZSA8PSAzMjc2OAotICAgICAgICAgICAgICAgICYmICFtX2ZpeGVk
V2lkdGgpCi0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkaXUoZGF0YVRlbXBSZWdpc3Rl
ciwgZGF0YVRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
aW1tLm1fdmFsdWUpOworICAgICAgICAgICAgaWYgKGltbS5tX3ZhbHVlID49IC0zMjc2NyAmJiBp
bW0ubV92YWx1ZSA8PSAzMjc2OCAmJiAhbV9maXhlZFdpZHRoKQorICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIC1pbW0u
bV92YWx1ZSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBtb3ZlKGltbSwg
aW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWJ1KGRhdGFU
ZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1
YnUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpOwogICAgICAgICB9IGVsc2UgewpAQCAt
NDQ0LDEyICs0MzYsMTAgQEAgcHVibGljOgogCiAgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUg
Pj0gLTMyNzY3ICYmIGltbS5tX3ZhbHVlIDw9IDMyNzY4CiAgICAgICAgICAgICAgICAgJiYgIW1f
Zml4ZWRXaWR0aCkKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC1pbW0ubV92YWx1ZSk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkaXUoZGF0
YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgLWltbS5tX3ZhbHVlKTsKICAgICAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgICAgIG1vdmUoaW1tLCBpbW1UZW1wUmVnaXN0ZXIpOwot
ICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1YnUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRl
bXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbVRlbXBSZWdp
c3Rlcik7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3VidShkYXRhVGVtcFJlZ2lzdGVy
LCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rl
ciwgYWRkcmVzcy5vZmZzZXQpOwogICAgICAgICB9CkBAIC00NzMsMTEgKzQ2Myw5IEBAIHB1Ymxp
YzoKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MubV9wdHIpLCBhZGRyVGVtcFJl
Z2lzdGVyKTsKICAgICAgICAgbV9hc3NlbWJsZXIubHcoZGF0YVRlbXBSZWdpc3RlciwgYWRkclRl
bXBSZWdpc3RlciwgMCk7CiAKLSAgICAgICAgaWYgKGltbS5tX3ZhbHVlID49IC0zMjc2NyAmJiBp
bW0ubV92YWx1ZSA8PSAzMjc2OAotICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgewotICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkaXUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdp
c3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1pbW0ubV92YWx1ZSk7Ci0gICAg
ICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAtMzI3NjcgJiYgaW1tLm1f
dmFsdWUgPD0gMzI3NjggJiYgIW1fZml4ZWRXaWR0aCkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIC1pbW0ubV92YWx1ZSk7
CisgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7
CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWJ1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1w
UmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAgICAgIH0KQEAgLTUzMSw3ICs1MTksNyBA
QCBwdWJsaWM6CiAgICAgLy8gTWVtb3J5IGFjY2VzcyBvcGVyYXRpb25zOgogICAgIC8vCiAgICAg
Ly8gTG9hZHMgYXJlIG9mIHRoZSBmb3JtIGxvYWQoYWRkcmVzcywgZGVzdGluYXRpb24pIGFuZCBz
dG9yZXMgb2YgdGhlIGZvcm0KLSAgICAvLyBzdG9yZShzb3VyY2UsIGFkZHJlc3MpLiAgVGhlIHNv
dXJjZSBmb3IgYSBzdG9yZSBtYXkgYmUgYW4gVHJ1c3RlZEltbTMyLiAgQWRkcmVzcworICAgIC8v
IHN0b3JlKHNvdXJjZSwgYWRkcmVzcykuIFRoZSBzb3VyY2UgZm9yIGEgc3RvcmUgbWF5IGJlIGFu
IFRydXN0ZWRJbW0zMi4gQWRkcmVzcwogICAgIC8vIG9wZXJhbmQgb2JqZWN0cyB0byBsb2FkcyBh
bmQgc3RvcmUgd2lsbCBiZSBpbXBsaWNpdGx5IGNvbnN0cnVjdGVkIGlmIGEKICAgICAvLyByZWdp
c3RlciBpcyBwYXNzZWQuCiAKQEAgLTU3NiwxMSArNTY0LDM4IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRy
ZXNzLnNjYWxlKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rl
ciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYp
OwotICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVt
cFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVt
cFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIubGJ1
KGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgfQogICAg
IH0KKyAgICAKKyAgICB2b2lkIGxvYWQ4U2lnbmVkKEJhc2VJbmRleCBhZGRyZXNzLCBSZWdpc3Rl
cklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYm
IGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7
CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3Mu
aW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRy
VGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgbGIgICAgIGRlc3QsIGFkZHJlc3Mub2Zm
c2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5z
bGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sYihkZXN0LCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAvKgorICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRk
cmVzcy5iYXNlCisgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQg
KyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAs
IGltbVRlbXAKKyAgICAgICAgICAgICBsYiAgICAgZGVzdCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhm
ZmZmKShhdCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFk
ZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3Rl
ciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdp
c3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sYihkZXN0LCBhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICB2b2lkIGxvYWQzMihJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAgLTYyMiw4
ICs2MzcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mu
YmFzZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRk
cmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsK
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3KGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJl
c3Mub2Zmc2V0KTsKICAgICAgICAgfQogICAgIH0KQEAgLTY3NSw4ICs2ODksNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1t
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCA+PiAxNik7CiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5vcmkoaW1tVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0
KTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRl
bXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRl
bXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKICNpZiBDUFUoQklHX0VORElBTikKICAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx3bChkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCAwKTsKICAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx3cihkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCAzKTsKQEAgLTc2
MywxMiArNzc2LDM5IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5iYXNlKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIs
IChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOwotICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0
ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIubGh1KGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgbG9hZDE2U2ln
bmVkKEJhc2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBp
ZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3Cisg
ICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAg
ICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAg
ICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisg
ICAgICAgICAgICAgICAgbGggICAgIGRlc3QsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxoKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJl
c3Mub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAg
ICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAg
ICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAg
ICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkg
Pj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVt
cAorICAgICAgICAgICAgICAgIGxoICAgICBkZXN0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYp
KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlciwg
YWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0
ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVn
aXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGgoZGVzdCwgYWRkclRlbXBSZWdpc3Rl
ciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQorCiAgICAgRGF0YUxhYmVsMzIg
c3RvcmUzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRk
cmVzcykKICAgICB7CiAgICAgICAgIG1fZml4ZWRXaWR0aCA9IHRydWU7CkBAIC04MDksOCArODQ5
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2Up
OwogICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mu
b2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFk
ZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFk
ZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5zYihzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zm
c2V0KTsKICAgICAgICAgfQogICAgIH0KQEAgLTg1NSw4ICs4OTQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwg
YWRkcmVzcy5zY2FsZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+
IDE2KTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRk
clRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRk
clRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNoKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtOTAxLDggKzkzOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5iYXNlKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1w
UmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOwotICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1U
ZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coc3JjLCBhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CkBAIC05MTIsOCArOTQ5
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFk
ZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CiAg
ICAgICAgICAgICBpZiAoIWltbS5tX3ZhbHVlKQotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnN3KE1JUFNSZWdpc3RlcnM6Onplcm8sIGFkZHJlc3MuYmFzZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuc3coTUlQU1JlZ2lzdGVyczo6emVybywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCk7
CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJl
Z2lzdGVyKTsKICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhpbW1UZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpOwpAQCAtOTI3LDEyICs5NjMsMTAgQEAgcHVi
bGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGFkZHJUZW1wUmVnaXN0ZXIsIChhZGRy
ZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
dShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwogICAg
ICAgICAgICAgaWYgKCFpbW0ubV92YWx1ZSAmJiAhbV9maXhlZFdpZHRoKQotICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnN3KE1JUFNSZWdpc3RlcnM6Onplcm8sIGFkZHJUZW1wUmVnaXN0ZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQpOworICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KE1JUFNSZWdpc3RlcnM6Onplcm8sIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
ICAgIG1vdmUoaW1tLCBpbW1UZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnN3KGltbVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc3coaW1tVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNl
dCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC05OTcsOSArMTAzMSw5IEBA
IHB1YmxpYzoKICAgICAvLyBTdGFjayBtYW5pcHVsYXRpb24gb3BlcmF0aW9uczoKICAgICAvLwog
ICAgIC8vIFRoZSBBQkkgaXMgYXNzdW1lZCB0byBwcm92aWRlIGEgc3RhY2sgYWJzdHJhY3Rpb24g
dG8gbWVtb3J5LAotICAgIC8vIGNvbnRhaW5pbmcgbWFjaGluZSB3b3JkIHNpemVkIHVuaXRzIG9m
IGRhdGEuICBQdXNoIGFuZCBwb3AKKyAgICAvLyBjb250YWluaW5nIG1hY2hpbmUgd29yZCBzaXpl
ZCB1bml0cyBvZiBkYXRhLiBQdXNoIGFuZCBwb3AKICAgICAvLyBvcGVyYXRpb25zIGFkZCBhbmQg
cmVtb3ZlIGEgc2luZ2xlIHJlZ2lzdGVyIHNpemVkIHVuaXQgb2YgZGF0YQotICAgIC8vIHRvIG9y
IGZyb20gdGhlIHN0YWNrLiAgUGVlayBhbmQgcG9rZSBvcGVyYXRpb25zIHJlYWQgb3Igd3JpdGUK
KyAgICAvLyB0byBvciBmcm9tIHRoZSBzdGFjay4gUGVlayBhbmQgcG9rZSBvcGVyYXRpb25zIHJl
YWQgb3Igd3JpdGUKICAgICAvLyB2YWx1ZXMgb24gdGhlIHN0YWNrLCB3aXRob3V0IG1vdmluZyB0
aGUgY3VycmVudCBzdGFjayBwb3NpdGlvbi4KIAogICAgIHZvaWQgcG9wKFJlZ2lzdGVySUQgZGVz
dCkKQEAgLTEyODMsMTAgKzEzMTcsMzMgQEAgcHVibGljOgogICAgICAgICBtX2ZpeGVkV2lkdGgg
PSBmYWxzZTsKICAgICB9CiAKKyAgICB2b2lkIG1vdmVEb3VibGVUb0ludHMoRlBSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkZXN0MSwgUmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisjaWYgV1RG
X01JUFNfSVNBX1JFVigyKSAmJiBXVEZfTUlQU19GUDY0CisgICAgICAgIG1fYXNzZW1ibGVyLm1m
YzEoZGVzdDEsIHNyYyk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGRlc3QyLCBzcmMpOwor
I2Vsc2UKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkZXN0MSwgc3JjKTsKKyAgICAgICAgbV9h
c3NlbWJsZXIubWZjMShkZXN0MiwgRlBSZWdpc3RlcklEKHNyYyArIDEpKTsKKyNlbmRpZgorICAg
IH0KKworICAgIHZvaWQgbW92ZUludHNUb0RvdWJsZShSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVy
SUQgc3JjMiwgRlBSZWdpc3RlcklEIGRlc3QsIEZQUmVnaXN0ZXJJRCBzY3JhdGNoKQorICAgIHsK
KyAgICAgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2gpOworI2lmIFdURl9NSVBTX0lTQV9SRVYoMikg
JiYgV1RGX01JUFNfRlA2NAorICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKHNyYzEsIGRlc3QpOwor
ICAgICAgICBtX2Fzc2VtYmxlci5tdGhjMShzcmMyLCBkZXN0KTsKKyNlbHNlCisgICAgICAgIG1f
YXNzZW1ibGVyLm10YzEoc3JjMSwgZGVzdCk7CisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoc3Jj
MiwgRlBSZWdpc3RlcklEKGRlc3QgKyAxKSk7CisjZW5kaWYKKyAgICB9CisKICAgICAvLyBBcml0
aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCiAgICAgLy8gVGhpcyBzZXQg
b2YgY29uZGl0aW9uYWwgYnJhbmNoIG9wZXJhdGlvbnMgYnJhbmNoIGJhc2VkCi0gICAgLy8gb24g
dGhlIHJlc3VsdCBvZiBhbiBhcml0aG1ldGljIG9wZXJhdGlvbi4gIFRoZSBvcGVyYXRpb24KKyAg
ICAvLyBvbiB0aGUgcmVzdWx0IG9mIGFuIGFyaXRobWV0aWMgb3BlcmF0aW9uLiBUaGUgb3BlcmF0
aW9uCiAgICAgLy8gaXMgcGVyZm9ybWVkIGFzIG5vcm1hbCwgc3RvcmluZyB0aGUgcmVzdWx0Lgog
ICAgIC8vCiAgICAgLy8gKiBqeiBvcGVyYXRpb25zIGJyYW5jaCBpZiB0aGUgcmVzdWx0IGlzIHpl
cm8uCkBAIC0xNDk1LDcgKzE1NTIsNyBAQCBwdWJsaWM6CiAKICAgICBDYWxsIG5lYXJDYWxsKCkK
ICAgICB7Ci0gICAgICAgIC8qIFdlIG5lZWQgdHdvIHdvcmRzIGZvciByZWxheGF0aW9uLiAgKi8K
KyAgICAgICAgLyogV2UgbmVlZCB0d28gd29yZHMgZm9yIHJlbGF4YXRpb24uICovCiAgICAgICAg
IG1fYXNzZW1ibGVyLm5vcCgpOwogICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKICAgICAgICAg
bV9hc3NlbWJsZXIuamFsKCk7CkBAIC0xNTgzLDggKzE2NDAsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuc2x0dShkZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1vdmUobWFzaywg
aW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFuZEluc24oY21wVGVt
cFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYW5kSW5zbihj
bXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAg
ICAgICAgICBpZiAoY29uZCA9PSBaZXJvKQogICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNs
dGl1KGRlc3QsIGNtcFRlbXBSZWdpc3RlciwgMSk7CiAgICAgICAgICAgICBlbHNlCkBAIC0xNjAz
LDggKzE2NTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0dShk
ZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIG1vdmUobWFzaywgaW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFuZEluc24oY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYW5kSW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVn
aXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBpZiAoY29uZCA9PSBaZXJvKQog
ICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsdGl1KGRlc3QsIGNtcFRlbXBSZWdpc3Rlciwg
MSk7CiAgICAgICAgICAgICBlbHNlCkBAIC0xNjgwLDYgKzE3MzUsMzQgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gdGFpbFJlY3Vyc2l2ZUNhbGwoKTsKICAgICB9CiAKKyAgICB2b2lkIGxvYWRG
bG9hdChCYXNlSW5kZXggYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3
CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAg
ICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAg
ICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAg
ICAgICAgICAgbHdjMSAgICBkZXN0LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAg
ICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
dShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
Lm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAg
IHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAg
ICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAg
ICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAg
ICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAg
ICBsd2MxICAgIGRlc3QsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAg
ICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUo
YWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCAr
IDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIubHdjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7
CisgICAgICAgIH0KKyAgICB9CisKICAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkK
QEAgLTE3MTAsNiArMTc5Myw2NSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lk
IGxvYWREb3VibGUoQmFzZUluZGV4IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsK
KyNpZiBXVEZfTUlQU19JU0EoMSkKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2
OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0
aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRy
VGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx3YzEgICAgZGVz
dCwgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAgICAgbHdjMSAgICBkZXN0
KzEsIChhZGRyZXNzLm9mZnNldCs0KShhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRk
cmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5sd2MxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBSZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQgKyA0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwg
YWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1w
LCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNz
Lm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1w
LCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgIGx3YzEgICAgZGVzdCwgKGFkZHJl
c3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICAgICBsd2MxICAgIGRlc3QrNCwg
KGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmICsgNCkoYXQpCisgICAgICAgICAgICAqLworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAx
Nik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5s
d2MxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmx3YzEoRlBSZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdpc3Rl
ciwgYWRkcmVzcy5vZmZzZXQgKyA0KTsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgaWYgKGFk
ZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAg
ICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAg
ICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAg
ICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAg
ICAgICAgICAgIGxkYzEgICAgZGVzdCwgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAg
ICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
dShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIubGRjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
Lm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAg
ICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAg
ICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAg
ICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+
IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAK
KyAgICAgICAgICAgICAgICBsZGMxICAgIGRlc3QsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZiko
YXQpCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
LmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFk
ZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5h
ZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZGMxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBsb2Fk
RG91YmxlKGNvbnN0IHZvaWQqIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICNp
ZiBXVEZfTUlQU19JU0EoMSkKQEAgLTE3MzEsNiArMTg3MywzMyBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICB9CiAKKyAgICB2b2lkIHN0b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4
IGFkZHJlc3MpCisgICAgeworICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYm
IGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7
CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJl
c3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1w
LCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMsIGFk
ZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxl
KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEo
c3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJl
c3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1w
LCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1w
LCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAg
ICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNy
YywgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICovCisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRk
cmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2
KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRl
bXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3
YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAg
ICB9CiAKICAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKQEAgLTE3NjIsMTcgKzE5MzEsOTkgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgfQogCisgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBCYXNl
SW5kZXggYWRkcmVzcykKKyAgICB7CisjaWYgV1RGX01JUFNfSVNBKDEpCisgICAgICAgIGlmIChh
ZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAg
ICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg
ICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAg
ICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAg
ICAgICAgICAgICBzd2MxICAgIHNyYywgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAg
ICAgICAgICAgc3djMSAgICBzcmMrMSwgKGFkZHJlc3Mub2Zmc2V0ICsgNCkoYWRkclRlbXApCisg
ICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2Up
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoRlBSZWdpc3RlcklE
KHNyYyArIDEpLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCArIDQpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJU
ZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAg
ICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAg
ICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAg
ICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAg
c3djMSAgICBzcmMsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAg
ICAgc3djMSAgICBzcmMrMSwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmICsgNCkoYXQpCisgICAg
ICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zm
c2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zd2MxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZz
ZXQpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSks
IGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0ICsgNCk7CisgICAgICAgIH0KKyNlbHNl
CisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQg
PD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8q
CisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRy
ZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBzZGMxICAgIHNyYywgYWRkcmVzcy5vZmZzZXQoYWRk
clRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8q
CisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRy
ZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNl
dCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRy
VGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgIHNkYzEgICAgc3JjLCAoYWRkcmVzcy5vZmZz
ZXQgJiAweGZmZmYpKGF0KQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1w
UmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1U
ZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorCisg
ICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkKiBhZGRyZXNz
KQorICAgIHsKKyNpZiBXVEZfTUlQU19JU0EoMSkKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KGFkZHJlc3MpLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3djMShz
cmMsIGFkZHJUZW1wUmVnaXN0ZXIsIDApOworICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKEZQUmVn
aXN0ZXJJRChzcmMgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgNCk7CisjZWxzZQorICAgICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBt
X2Fzc2VtYmxlci5zZGMxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgMCk7CisjZW5kaWYKKyAgICB9
CisKICAgICB2b2lkIGFkZERvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVz
dCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgc3JjKTsKICAg
ICB9CiAKKyAgICB2b2lkIGFkZERvdWJsZShGUFJlZ2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVySUQg
b3AyLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZGQo
ZGVzdCwgb3AxLCBvcDIpOworICAgIH0KKwogICAgIHZvaWQgYWRkRG91YmxlKEFkZHJlc3Mgc3Jj
LCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGxvYWREb3VibGUoc3JjLCBmcFRl
bXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgZnBUZW1w
UmVnaXN0ZXIpOwogICAgIH0KIAorICAgIHZvaWQgYWRkRG91YmxlKEFic29sdXRlQWRkcmVzcyBh
ZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGxvYWREb3VibGUoYWRk
cmVzcy5tX3B0ciwgZnBUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRl
c3QsIGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIHN1YkRvdWJsZShG
UFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLnN1YmQoZGVzdCwgZGVzdCwgc3JjKTsKQEAgLTE4MjAsNiArMjA3MSwxNiBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmN2dGR3KGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAg
ICB9CiAKKyAgICB2b2lkIGNvbnZlcnRGbG9hdFRvRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQ
UmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5jdnRkcyhkc3QsIHNy
Yyk7CisgICAgfQorCisgICAgdm9pZCBjb252ZXJ0RG91YmxlVG9GbG9hdChGUFJlZ2lzdGVySUQg
c3JjLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuY3Z0c2Qo
ZHN0LCBzcmMpOworICAgIH0KKwogICAgIHZvaWQgaW5zZXJ0UmVsYXhhdGlvbldvcmRzKCkKICAg
ICB7CiAgICAgICAgIC8qIFdlIG5lZWQgZm91ciB3b3JkcyBmb3IgcmVsYXhhdGlvbi4gKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168431</attachid>
            <date>2012-10-12 09:11:35 -0700</date>
            <delta_ts>2012-10-12 09:17:17 -0700</delta_ts>
            <desc>Minor code fix, style fixes, rebased</desc>
            <filename>missing_functions.diff</filename>
            <type>text/plain</type>
            <size>44430</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGIyNTY4YTQuLjBhMmM3ZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTEwLTEyICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgQWRkIG1pc3NpbmcgTUlQUyBm
dW5jdGlvbnMgdG8gYXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbnMgaW4gTWFjcm9Bc3NlbWJs
ZXJNSVBTIGFuZCBNSVBTQXNzZW1ibGVyCisJCWFuZCBzdHlsZSBmaXhlcy4KKworICAgICAgICAq
IGFzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6
OmFkZGl1KToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6YWRkdSk6CisgICAgICAgIChK
U0M6Ok1JUFNBc3NlbWJsZXI6OnN1YnUpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpt
dWwpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjphbmRJbnNuKToKKyAgICAgICAgKEpT
Qzo6TUlQU0Fzc2VtYmxlcjo6YW5kaSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6Om5v
cik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6Om9ySW5zbik6CisgICAgICAgIChKU0M6
Ok1JUFNBc3NlbWJsZXI6Om9yaSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6Onhvcklu
c24pOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjp4b3JpKToKKyAgICAgICAgKEpTQzo6
TUlQU0Fzc2VtYmxlcjo6c2x0KToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6c2x0dSk6
CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnNsdGl1KToKKyAgICAgICAgKEpTQzo6TUlQ
U0Fzc2VtYmxlcjo6c2xsKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6c2xsdik6Cisg
ICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnNyYSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3Nl
bWJsZXI6OnNyYXYpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpzcmwpOgorICAgICAg
ICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpzcmx2KToKKyAgICAgICAgKE1JUFNBc3NlbWJsZXIpOgor
ICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpsYik6CisgICAgICAgIChKU0M6Ok1JUFNBc3Nl
bWJsZXI6OmxidSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6Omx3KToKKyAgICAgICAg
KEpTQzo6TUlQU0Fzc2VtYmxlcjo6bHdsKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6
bHdyKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGgpOgorICAgICAgICAoSlNDOjpN
SVBTQXNzZW1ibGVyOjpsaHUpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpzYik6Cisg
ICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnNoKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2Vt
Ymxlcjo6c3cpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjphZGRkKToKKyAgICAgICAg
KEpTQzo6TUlQU0Fzc2VtYmxlcjo6c3ViZCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6
Om11bGQpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpkaXZkKToKKyAgICAgICAgKEpT
Qzo6TUlQU0Fzc2VtYmxlcjo6bHdjMSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6Omxk
YzEpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpzd2MxKToKKyAgICAgICAgKEpTQzo6
TUlQU0Fzc2VtYmxlcjo6c2RjMSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6Om1maGMx
KToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6Y3Z0ZHMpOgorICAgICAgICAoSlNDOjpN
SVBTQXNzZW1ibGVyOjpjdnRzZCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnZtb3Yp
OgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpyZWxvY2F0ZUp1bXBzKToKKyAgICAgICAg
KEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGlua1dpdGhPZmZzZXQpOgorICAgICAgICAqIGFzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBT
OjphZGQzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YW5kMzIpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN1YjMyKToKKyAgICAgICAgKE1hY3JvQXNz
ZW1ibGVyTUlQUyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZDgpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQ4U2lnbmVkKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlck1JUFM6OmxvYWQzMldpdGhVbmFsaWduZWRIYWxmV29yZHMpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyTUlQUzo6bG9hZDE2U2lnbmVkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBT
OjpzdG9yZTgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlMTYpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlMzIpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlck1JUFM6Om1vdmVEb3VibGVUb0ludHMpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlck1JUFM6Om1vdmVJbnRzVG9Eb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlck1JUFM6Om5lYXJDYWxsKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJN
SVBTOjp0ZXN0OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6dGVzdDMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkRmxvYXQpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlck1JUFM6OnN0b3JlRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ck1JUFM6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjph
ZGREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmNvbnZlcnRGbG9h
dFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpjb252ZXJ0RG91
YmxlVG9GbG9hdCk6CisKIDIwMTItMTAtMTEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJn
QGFwcGxlLmNvbT4KIAogICAgICAgICBCbG9ja0FsbG9jYXRvciBzaG91bGQgdXNlIHJlZ2lvbnMg
YXMgaXRzIFZNIGFsbG9jYXRpb24gYWJzdHJhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgKaW5kZXggZDNmOGFmOS4uZTEzNzM3OCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgKQEAg
LTIyNywyMCArMjI3LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkaXUoUmVnaXN0ZXJJRCBy
dCwgUmVnaXN0ZXJJRCBycywgaW50IGltbSkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MjQw
MDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAg
ICAgICB8IChpbW0gJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHgyNDAwMDAwMCB8IChy
dCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKGltbSAmIDB4ZmZmZikpOwogICAg
IH0KIAogICAgIHZvaWQgYWRkdShSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBSZWdpc3Rl
cklEIHJ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyMSB8IChyZCA8PCBPUF9T
SF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8IE9QX1NI
X1JUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMjEgfCAocmQgPDwgT1BfU0hfUkQpIHwg
KHJzIDw8IE9QX1NIX1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAogICAgIHZvaWQg
c3VidShSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBSZWdpc3RlcklEIHJ0KQogICAgIHsK
LSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyMyB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwg
T1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CisgICAgICAg
IGVtaXRJbnN0KDB4MDAwMDAwMjMgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JT
KSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAogICAgIHZvaWQgbXVsdChSZWdpc3RlcklE
IHJzLCBSZWdpc3RlcklEIHJ0KQpAQCAtMjY2LDggKzI2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG11bChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBSZWdpc3RlcklEIHJ0KQogICAgIHsK
ICNpZiBXVEZfTUlQU19JU0FfQVRfTEVBU1QoMzIpIAotICAgICAgICBlbWl0SW5zdCgweDcwMDAw
MDAyIHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAg
ICAgfCAocnQgPDwgT1BfU0hfUlQpKTsKKyAgICAgICAgZW1pdEluc3QoMHg3MDAwMDAwMiB8IChy
ZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CiAj
ZWxzZQogICAgICAgICBtdWx0KHJzLCBydCk7CiAgICAgICAgIG1mbG8ocmQpOwpAQCAtMjc2LDE1
MSArMjcyLDEzOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFuZEluc24oUmVnaXN0ZXJJRCByZCwg
UmVnaXN0ZXJJRCBycywgUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4
MDAwMDAwMjQgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAg
ICAgICAgICB8IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDI0
IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykgfCAocnQgPDwgT1BfU0hfUlQp
KTsKICAgICB9CiAKICAgICB2b2lkIGFuZGkoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywg
aW50IGltbSkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MzAwMDAwMDAgfCAocnQgPDwgT1Bf
U0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChpbW0gJiAweGZm
ZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHgzMDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAo
cnMgPDwgT1BfU0hfUlMpIHwgKGltbSAmIDB4ZmZmZikpOwogICAgIH0KIAogICAgIHZvaWQgbm9y
KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnMsIFJlZ2lzdGVySUQgcnQpCiAgICAgewotICAg
ICAgICBlbWl0SW5zdCgweDAwMDAwMDI3IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9T
SF9SUykKLSAgICAgICAgICAgICAgICAgfCAocnQgPDwgT1BfU0hfUlQpKTsKKyAgICAgICAgZW1p
dEluc3QoMHgwMDAwMDAyNyB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpIHwg
KHJ0IDw8IE9QX1NIX1JUKSk7CiAgICAgfQogCiAgICAgdm9pZCBvckluc24oUmVnaXN0ZXJJRCBy
ZCwgUmVnaXN0ZXJJRCBycywgUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0
KDB4MDAwMDAwMjUgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAg
ICAgICAgICAgICB8IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAw
MDI1IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykgfCAocnQgPDwgT1BfU0hf
UlQpKTsKICAgICB9CiAKICAgICB2b2lkIG9yaShSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJz
LCBpbnQgaW1tKQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgzNDAwMDAwMCB8IChydCA8PCBP
UF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKGltbSAmIDB4
ZmZmZikpOworICAgICAgICBlbWl0SW5zdCgweDM0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8
IChycyA8PCBPUF9TSF9SUykgfCAoaW1tICYgMHhmZmZmKSk7CiAgICAgfQogCiAgICAgdm9pZCB4
b3JJbnNuKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnMsIFJlZ2lzdGVySUQgcnQpCiAgICAg
ewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDI2IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8
PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAocnQgPDwgT1BfU0hfUlQpKTsKKyAgICAg
ICAgZW1pdEluc3QoMHgwMDAwMDAyNiB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hf
UlMpIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CiAgICAgfQogCiAgICAgdm9pZCB4b3JpKFJlZ2lzdGVy
SUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBpbW0pCiAgICAgewotICAgICAgICBlbWl0SW5zdCgw
eDM4MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAg
ICAgICAgICAgfCAoaW1tICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MzgwMDAwMDAg
fCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChpbW0gJiAweGZmZmYpKTsK
ICAgICB9CiAKICAgICB2b2lkIHNsdChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBSZWdp
c3RlcklEIHJ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyYSB8IChyZCA8PCBP
UF9TSF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8IE9Q
X1NIX1JUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMmEgfCAocmQgPDwgT1BfU0hfUkQp
IHwgKHJzIDw8IE9QX1NIX1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAogICAgIHZv
aWQgc2x0dShSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBSZWdpc3RlcklEIHJ0KQogICAg
IHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyYiB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMg
PDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CisgICAg
ICAgIGVtaXRJbnN0KDB4MDAwMDAwMmIgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NI
X1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAogICAgIHZvaWQgc2x0aXUoUmVnaXN0
ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IGltbSkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0
KDB4MmMwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAg
ICAgICAgICAgICB8IChpbW0gJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHgyYzAwMDAw
MCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKGltbSAmIDB4ZmZmZikp
OwogICAgIH0KIAogICAgIHZvaWQgc2xsKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnQsIGlu
dCBzaGFtdCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDAgfCAocmQgPDwgT1Bf
U0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKQotICAgICAgICAgICAgICAgICB8ICgoc2hhbXQgJiAw
eDFmKSA8PCBPUF9TSF9TSEFNVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDAwIHwgKHJk
IDw8IE9QX1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkgfCAoKHNoYW10ICYgMHgxZikgPDwgT1Bf
U0hfU0hBTVQpKTsKICAgICB9CiAKICAgICB2b2lkIHNsbHYoUmVnaXN0ZXJJRCByZCwgUmVnaXN0
ZXJJRCBydCwgaW50IHJzKQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAwNCB8IChy
ZCA8PCBPUF9TSF9SRCkgfCAocnQgPDwgT1BfU0hfUlQpCi0gICAgICAgICAgICAgICAgIHwgKHJz
IDw8IE9QX1NIX1JTKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDQgfCAocmQgPDwgT1Bf
U0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykpOwogICAgIH0KIAog
ICAgIHZvaWQgc3JhKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnQsIGludCBzaGFtdCkKICAg
ICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDMgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJ0
IDw8IE9QX1NIX1JUKQotICAgICAgICAgICAgICAgICB8ICgoc2hhbXQgJiAweDFmKSA8PCBPUF9T
SF9TSEFNVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDAzIHwgKHJkIDw8IE9QX1NIX1JE
KSB8IChydCA8PCBPUF9TSF9SVCkgfCAoKHNoYW10ICYgMHgxZikgPDwgT1BfU0hfU0hBTVQpKTsK
ICAgICB9CiAKICAgICB2b2lkIHNyYXYoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBydCwgUmVn
aXN0ZXJJRCBycykKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDcgfCAocmQgPDwg
T1BfU0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKQotICAgICAgICAgICAgICAgICB8IChycyA8PCBP
UF9TSF9SUykpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDA3IHwgKHJkIDw8IE9QX1NIX1JE
KSB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpKTsKICAgICB9CiAKICAgICB2
b2lkIHNybChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJ0LCBpbnQgc2hhbXQpCiAgICAgewot
ICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDAyIHwgKHJkIDw8IE9QX1NIX1JEKSB8IChydCA8PCBP
UF9TSF9SVCkKLSAgICAgICAgICAgICAgICAgfCAoKHNoYW10ICYgMHgxZikgPDwgT1BfU0hfU0hB
TVQpKTsKKyAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAwMiB8IChyZCA8PCBPUF9TSF9SRCkgfCAo
cnQgPDwgT1BfU0hfUlQpIHwgKChzaGFtdCAmIDB4MWYpIDw8IE9QX1NIX1NIQU1UKSk7CiAgICAg
fQogCiAgICAgdm9pZCBzcmx2KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVy
SUQgcnMpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDA2IHwgKHJkIDw8IE9QX1NI
X1JEKSB8IChydCA8PCBPUF9TSF9SVCkKLSAgICAgICAgICAgICAgICAgfCAocnMgPDwgT1BfU0hf
UlMpKTsKKyAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAwNiB8IChyZCA8PCBPUF9TSF9SRCkgfCAo
cnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSk7CisgICAgfQorCisgICAgdm9pZCBs
YihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAg
ICAgZW1pdEluc3QoMHg4MDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hf
UlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAgICB9
CiAKICAgICB2b2lkIGxidShSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0
KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg5MDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkg
fCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4ZmZmZikp
OworICAgICAgICBlbWl0SW5zdCgweDkwMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8
PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CiAgICAgICAgIGxvYWREZWxheU5vcCgp
OwogICAgIH0KIAogICAgIHZvaWQgbHcoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50
IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4OGMwMDAwMDAgfCAocnQgPDwgT1Bf
U0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChvZmZzZXQgJiAw
eGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHg4YzAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkg
fCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwogICAgICAgICBsb2FkRGVs
YXlOb3AoKTsKICAgICB9CiAKICAgICB2b2lkIGx3bChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklE
IHJzLCBpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg4ODAwMDAwMCB8IChy
dCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKG9m
ZnNldCAmIDB4ZmZmZikpOworICAgICAgICBlbWl0SW5zdCgweDg4MDAwMDAwIHwgKHJ0IDw8IE9Q
X1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CiAgICAgICAg
IGxvYWREZWxheU5vcCgpOwogICAgIH0KIAogICAgIHZvaWQgbHdyKFJlZ2lzdGVySUQgcnQsIFJl
Z2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweDk4MDAw
MDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAg
ICAgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4OTgwMDAwMDAgfCAo
cnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsK
KyAgICAgICAgbG9hZERlbGF5Tm9wKCk7CisgICAgfQorCisgICAgdm9pZCBsaChSZWdpc3RlcklE
IHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgZW1pdEluc3Qo
MHg4NDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNl
dCAmIDB4ZmZmZikpOwogICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAgICB9CiAKICAgICB2b2lk
IGxodShSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAgIHsKLSAg
ICAgICAgZW1pdEluc3QoMHg5NDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1Bf
U0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAgICAgICBl
bWl0SW5zdCgweDk0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykg
fCAob2Zmc2V0ICYgMHhmZmZmKSk7CiAgICAgICAgIGxvYWREZWxheU5vcCgpOwogICAgIH0KIAog
ICAgIHZvaWQgc2IoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNldCkKICAg
ICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4YTAwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJz
IDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAg
ICAgICAgZW1pdEluc3QoMHhhMDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1Bf
U0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwogICAgIH0KIAogICAgIHZvaWQgc2goUmVnaXN0
ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJ
bnN0KDB4YTQwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAg
ICAgICAgICAgICAgICB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHhh
NDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAm
IDB4ZmZmZikpOwogICAgIH0KIAogICAgIHZvaWQgc3coUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJ
RCBycywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4YWMwMDAwMDAgfCAo
cnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChv
ZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHhhYzAwMDAwMCB8IChydCA8PCBP
UF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwogICAgIH0K
IAogICAgIHZvaWQganIoUmVnaXN0ZXJJRCBycykKQEAgLTQ4MSw1MSArNDY1LDQzIEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgYWRkZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBS
ZWdpc3RlcklEIGZ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMCB8IChmZCA8
PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpCi0gICAgICAgICAgICAgICAgIHwgKGZ0IDw8
IE9QX1NIX0ZUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMDAgfCAoZmQgPDwgT1BfU0hf
RkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAogICAg
IHZvaWQgc3ViZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklE
IGZ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMSB8IChmZCA8PCBPUF9TSF9G
RCkgfCAoZnMgPDwgT1BfU0hfRlMpCi0gICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9QX1NIX0ZU
KSk7CisgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMDEgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZz
IDw8IE9QX1NIX0ZTKSB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAogICAgIHZvaWQgbXVs
ZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQogICAg
IHsKLSAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMiB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMg
PDwgT1BfU0hfRlMpCi0gICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9QX1NIX0ZUKSk7CisgICAg
ICAgIGVtaXRJbnN0KDB4NDYyMDAwMDIgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NI
X0ZTKSB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAogICAgIHZvaWQgZGl2ZChGUFJlZ2lz
dGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQogICAgIHsKLSAgICAg
ICAgZW1pdEluc3QoMHg0NjIwMDAwMyB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hf
RlMpCi0gICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9QX1NIX0ZUKSk7CisgICAgICAgIGVtaXRJ
bnN0KDB4NDYyMDAwMDMgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChm
dCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAogICAgIHZvaWQgbHdjMShGUFJlZ2lzdGVySUQgZnQs
IFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweGM0
MDAwMDAwIHwgKGZ0IDw8IE9QX1NIX0ZUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAg
ICAgICAgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4YzQwMDAwMDAg
fCAoZnQgPDwgT1BfU0hfRlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYp
KTsKICAgICAgICAgY29wRGVsYXlOb3AoKTsKICAgICB9CiAKICAgICB2b2lkIGxkYzEoRlBSZWdp
c3RlcklEIGZ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgZW1p
dEluc3QoMHhkNDAwMDAwMCB8IChmdCA8PCBPUF9TSF9GVCkgfCAocnMgPDwgT1BfU0hfUlMpCi0g
ICAgICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAgICAgICBlbWl0SW5zdCgw
eGQ0MDAwMDAwIHwgKGZ0IDw8IE9QX1NIX0ZUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0
ICYgMHhmZmZmKSk7CiAgICAgfQogCiAgICAgdm9pZCBzd2MxKEZQUmVnaXN0ZXJJRCBmdCwgUmVn
aXN0ZXJJRCBycywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4ZTQwMDAw
MDAgfCAoZnQgPDwgT1BfU0hfRlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAg
ICB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHhlNDAwMDAwMCB8IChm
dCA8PCBPUF9TSF9GVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwog
ICAgIH0KIAogICAgIHZvaWQgc2RjMShGUFJlZ2lzdGVySUQgZnQsIFJlZ2lzdGVySUQgcnMsIGlu
dCBvZmZzZXQpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweGY0MDAwMDAwIHwgKGZ0IDw8IE9Q
X1NIX0ZUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAob2Zmc2V0ICYg
MHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4ZjQwMDAwMDAgfCAoZnQgPDwgT1BfU0hfRlQp
IHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKICAgICB9CiAKICAgICB2
b2lkIG10YzEoUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3RlcklEIGZzKQpAQCAtNTQ2LDYgKzUyMiwx
MiBAQCBwdWJsaWM6CiAgICAgICAgIGNvcERlbGF5Tm9wKCk7CiAgICAgfQogCisgICAgdm9pZCBt
ZmhjMShSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAgICBlbWl0
SW5zdCgweDQ0NjAwMDAwIHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChydCA8PCBPUF9TSF9SVCkpOwor
ICAgICAgICBjb3BEZWxheU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgc3FydGQoRlBSZWdpc3Rl
cklEIGZkLCBGUFJlZ2lzdGVySUQgZnMpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDQ2MjAw
MDA0IHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOwpAQCAtNTYxLDExICs1
NDMsMjEgQEAgcHVibGljOgogICAgICAgICBlbWl0SW5zdCgweDQ2ODAwMDIxIHwgKGZkIDw8IE9Q
X1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOwogICAgIH0KIAorICAgIHZvaWQgY3Z0ZHMoRlBS
ZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAgICBlbWl0SW5zdCgw
eDQ2MDAwMDIxIHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOworICAgIH0K
KwogICAgIHZvaWQgY3Z0d2QoRlBSZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQgZnMpCiAgICAg
ewogICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDI0IHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8
PCBPUF9TSF9GUykpOwogICAgIH0KIAorICAgIHZvaWQgY3Z0c2QoRlBSZWdpc3RlcklEIGZkLCBG
UFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDIwIHwgKGZk
IDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOworICAgIH0KKwogICAgIHZvaWQgY2Vx
ZChGUFJlZ2lzdGVySUQgZnMsIEZQUmVnaXN0ZXJJRCBmdCkKICAgICB7CiAgICAgICAgIGVtaXRJ
bnN0KDB4NDYyMDAwMzIgfCAoZnMgPDwgT1BfU0hfRlMpIHwgKGZ0IDw8IE9QX1NIX0ZUKSk7CkBA
IC02NzUsNiArNjY3LDE5IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkg
eyByZXR1cm4gbV9idWZmZXIuZGVidWdPZmZzZXQoKTsgfQogCisgICAgLy8gQXNzZW1ibHkgaGVs
cGVycyBmb3IgbW92aW5nIGRhdGEgYmV0d2VlbiBmcCBhbmQgcmVnaXN0ZXJzLgorICAgIHZvaWQg
dm1vdihSZWdpc3RlcklEIHJkMSwgUmVnaXN0ZXJJRCByZDIsIEZQUmVnaXN0ZXJJRCBybikKKyAg
ICB7CisgICAgICAgIG1mYzEocmQxLCBybik7CisgICAgICAgIG1mYzEocmQyLCBGUFJlZ2lzdGVy
SUQocm4gKyAxKSk7CisgICAgfQorCisgICAgdm9pZCB2bW92KEZQUmVnaXN0ZXJJRCByZCwgUmVn
aXN0ZXJJRCBybjEsIFJlZ2lzdGVySUQgcm4yKQorICAgIHsKKyAgICAgICAgbXRjMShybjEsIHJk
KTsKKyAgICAgICAgbXRjMShybjIsIEZQUmVnaXN0ZXJJRChyZCArIDEpKTsKKyAgICB9CisKICAg
ICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2FsbFJldHVybk9mZnNldChBc3NlbWJsZXJMYWJlbCBjYWxs
KQogICAgIHsKICAgICAgICAgLy8gVGhlIHJldHVybiBhZGRyZXNzIGlzIGFmdGVyIGEgY2FsbCBh
bmQgYSBkZWxheSBzbG90IGluc3RydWN0aW9uCkBAIC02ODQsNyArNjg5LDcgQEAgcHVibGljOgog
ICAgIC8vIExpbmtpbmcgJiBwYXRjaGluZzoKICAgICAvLwogICAgIC8vICdsaW5rJyBhbmQgJ3Bh
dGNoJyBtZXRob2RzIGFyZSBmb3IgdXNlIG9uIHVucHJvdGVjdGVkIGNvZGUgLSBzdWNoIGFzIHRo
ZSBjb2RlCi0gICAgLy8gd2l0aGluIHRoZSBBc3NlbWJsZXJCdWZmZXIsIGFuZCBjb2RlIGJlaW5n
IHBhdGNoZWQgYnkgdGhlIHBhdGNoIGJ1ZmZlci4gIE9uY2UKKyAgICAvLyB3aXRoaW4gdGhlIEFz
c2VtYmxlckJ1ZmZlciwgYW5kIGNvZGUgYmVpbmcgcGF0Y2hlZCBieSB0aGUgcGF0Y2ggYnVmZmVy
LiBPbmNlCiAgICAgLy8gY29kZSBoYXMgYmVlbiBmaW5hbGl6ZWQgaXQgaXMgKHBsYXRmb3JtIHN1
cHBvcnQgcGVybWl0dGluZykgd2l0aGluIGEgbm9uLQogICAgIC8vIHdyaXRhYmxlIHJlZ2lvbiBv
ZiBtZW1vcnk7IHRvIG1vZGlmeSB0aGUgY29kZSBpbiBhbiBleGVjdXRlLW9ubHkgZXhlY3VhYmxl
CiAgICAgLy8gcG9vbCB0aGUgJ3JlcGF0Y2gnIGFuZCAncmVsaW5rJyBtZXRob2RzIHNob3VsZCBi
ZSB1c2VkLgpAQCAtODU4LDcgKzg2Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBNSVBTV29y
ZCogaW5zbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8TUlQU1dvcmQqPihyZWludGVycHJldF9jYXN0PGlu
dHB0cl90PihuZXdCYXNlKSArIHBvcyk7CiAgICAgICAgICAgICBpbnNuID0gaW5zbiArIDI7CiAg
ICAgICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIDUgdmFsaWQgaW5zdHJ1Y3Rp
b25zIGFmdGVyIHBvcwotICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBpbnQpcG9zID49IG1fYnVm
ZmVyLmNvZGVTaXplKCkgLSA1ICogc2l6ZW9mKE1JUFNXb3JkKSkKKyAgICAgICAgICAgIGlmICgo
dW5zaWduZWQpcG9zID49IG1fYnVmZmVyLmNvZGVTaXplKCkgLSA1ICogc2l6ZW9mKE1JUFNXb3Jk
KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgaWYgKCgqaW5zbiAm
IDB4ZmMwMDAwMDApID09IDB4MDgwMDAwMDApIHsgLy8gagpAQCAtODk0LDExICs4OTksMTAgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgaW50IGxpbmtXaXRoT2Zmc2V0KE1JUFNXb3JkKiBpbnNuLCB2
b2lkKiB0bykKICAgICB7CiAgICAgICAgIEFTU0VSVCgoKmluc24gJiAweGZjMDAwMDAwKSA9PSAw
eDEwMDAwMDAwIC8vIGJlcQotICAgICAgICAgICAgICAgfHwgKCppbnNuICYgMHhmYzAwMDAwMCkg
PT0gMHgxNDAwMDAwMCAvLyBibmUKLSAgICAgICAgICAgICAgIHx8ICgqaW5zbiAmIDB4ZmZmZjAw
MDApID09IDB4NDUwMTAwMDAgLy8gYmMxdAotICAgICAgICAgICAgICAgfHwgKCppbnNuICYgMHhm
ZmZmMDAwMCkgPT0gMHg0NTAwMDAwMCk7IC8vIGJjMWYKLSAgICAgICAgaW50cHRyX3QgZGlmZiA9
IChyZWludGVycHJldF9jYXN0PGludHB0cl90Pih0bykKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGluc24pIC0gNCkgPj4gMjsKKyAgICAgICAg
ICAgIHx8ICgqaW5zbiAmIDB4ZmMwMDAwMDApID09IDB4MTQwMDAwMDAgLy8gYm5lCisgICAgICAg
ICAgICB8fCAoKmluc24gJiAweGZmZmYwMDAwKSA9PSAweDQ1MDEwMDAwIC8vIGJjMXQKKyAgICAg
ICAgICAgIHx8ICgqaW5zbiAmIDB4ZmZmZjAwMDApID09IDB4NDUwMDAwMDApOyAvLyBiYzFmCisg
ICAgICAgIGludHB0cl90IGRpZmYgPSAocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4odG8pIC0g
cmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaW5zbikgLSA0KSA+PiAyOwogCiAgICAgICAgIGlm
IChkaWZmIDwgLTMyNzY4IHx8IGRpZmYgPiAzMjc2NyB8fCAqKGluc24gKyAyKSAhPSAweDEwMDAw
MDAzKSB7CiAgICAgICAgICAgICAvKgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggMjI4MzBhNi4uYjAzYWJlZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1J
UFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oCkBAIC0yOSw4ICsyOSw4IEBACiAKICNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUo
TUlQUykKIAotI2luY2x1ZGUgIk1JUFNBc3NlbWJsZXIuaCIKICNpbmNsdWRlICJBYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmgiCisjaW5jbHVkZSAiTUlQU0Fzc2VtYmxlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtMTU1LDEyICsxNTUsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3Nl
bWJsZXIubHcoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCk7
CiAgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY4ICYmIGltbS5tX3ZhbHVlIDw9
IDMyNzY3CiAgICAgICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkKLSAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbS5tX3ZhbHVlKTsKKyAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyLCBpbW0ubV92YWx1ZSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBt
b3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5h
ZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJl
Z2lzdGVyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpOwogICAgICAgICB9IGVs
c2UgewpAQCAtMTc3LDEyICsxNzUsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3NlbWJs
ZXIubHcoZGF0YVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQp
OwogCiAgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY4ICYmIGltbS5tX3ZhbHVl
IDw9IDMyNzY3ICYmICFtX2ZpeGVkV2lkdGgpCi0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkaXUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbW0ubV92YWx1ZSk7CisgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkaXUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tLm1fdmFs
dWUpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgbW92ZShpbW0sIGltbVRl
bXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShkYXRhVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGRh
dGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lzdGVyLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KQEAgLTI1Nyw4ICsy
NTMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoIWltbS5tX3ZhbHVlICYmICFtX2Zp
eGVkV2lkdGgpCiAgICAgICAgICAgICBtb3ZlKE1JUFNSZWdpc3RlcnM6Onplcm8sIGRlc3QpOwot
ICAgICAgICBlbHNlIGlmIChpbW0ubV92YWx1ZSA+IDAgJiYgaW1tLm1fdmFsdWUgPCA2NTUzNQot
ICAgICAgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKQorICAgICAgICBlbHNlIGlmIChpbW0u
bV92YWx1ZSA+IDAgJiYgaW1tLm1fdmFsdWUgPCA2NTUzNSAmJiAhbV9maXhlZFdpZHRoKQogICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYW5kaShkZXN0LCBkZXN0LCBpbW0ubV92YWx1ZSk7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgLyoKQEAgLTQxOSwxNCArNDE0LDExIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgc3cgICAgICAgIGRhdGFUZW1wLCBvZmZzZXQoYmFzZSkKICAgICAgICAg
ICAgICovCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdyhkYXRhVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKLSAgICAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA+
PSAtMzI3NjcgJiYgaW1tLm1fdmFsdWUgPD0gMzI3NjgKLSAgICAgICAgICAgICAgICAmJiAhbV9m
aXhlZFdpZHRoKQotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGl1KGRhdGFUZW1wUmVn
aXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLWltbS5tX3ZhbHVlKTsKKyAgICAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAtMzI3Njcg
JiYgaW1tLm1fdmFsdWUgPD0gMzI3NjggJiYgIW1fZml4ZWRXaWR0aCkKKyAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCAt
aW1tLm1fdmFsdWUpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgbW92ZShp
bW0sIGltbVRlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3VidShk
YXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5zdWJ1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rl
cik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgfSBlbHNlIHsK
QEAgLTQ0NCwxMiArNDM2LDEwIEBAIHB1YmxpYzoKIAogICAgICAgICAgICAgaWYgKGltbS5tX3Zh
bHVlID49IC0zMjc2NyAmJiBpbW0ubV92YWx1ZSA8PSAzMjc2OAogICAgICAgICAgICAgICAgICYm
ICFtX2ZpeGVkV2lkdGgpCi0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkaXUoZGF0YVRl
bXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtaW1tLm1fdmFsdWUpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGl1
KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIC1pbW0ubV92YWx1ZSk7CiAgICAg
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVy
KTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWJ1KGRhdGFUZW1wUmVnaXN0ZXIsIGRh
dGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1YnUoZGF0YVRlbXBSZWdp
c3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgfQpAQCAtNDczLDExICs0NjMsOSBAQCBw
dWJsaWM6CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgYWRkclRl
bXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsIDApOwogCi0gICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAtMzI3Njcg
JiYgaW1tLm1fdmFsdWUgPD0gMzI3NjgKLSAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsK
LSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1w
UmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtaW1tLm1fdmFsdWUpOwot
ICAgICAgICB9IGVsc2UgeworICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY3ICYmIGlt
bS5tX3ZhbHVlIDw9IDMyNzY4ICYmICFtX2ZpeGVkV2lkdGgpCisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCAtaW1tLm1fdmFs
dWUpOworICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIG1vdmUoaW1tLCBpbW1UZW1wUmVnaXN0
ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3VidShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRh
VGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOwogICAgICAgICB9CkBAIC01MzEsNyArNTE5
LDcgQEAgcHVibGljOgogICAgIC8vIE1lbW9yeSBhY2Nlc3Mgb3BlcmF0aW9uczoKICAgICAvLwog
ICAgIC8vIExvYWRzIGFyZSBvZiB0aGUgZm9ybSBsb2FkKGFkZHJlc3MsIGRlc3RpbmF0aW9uKSBh
bmQgc3RvcmVzIG9mIHRoZSBmb3JtCi0gICAgLy8gc3RvcmUoc291cmNlLCBhZGRyZXNzKS4gIFRo
ZSBzb3VyY2UgZm9yIGEgc3RvcmUgbWF5IGJlIGFuIFRydXN0ZWRJbW0zMi4gIEFkZHJlc3MKKyAg
ICAvLyBzdG9yZShzb3VyY2UsIGFkZHJlc3MpLiBUaGUgc291cmNlIGZvciBhIHN0b3JlIG1heSBi
ZSBhbiBUcnVzdGVkSW1tMzIuIEFkZHJlc3MKICAgICAvLyBvcGVyYW5kIG9iamVjdHMgdG8gbG9h
ZHMgYW5kIHN0b3JlIHdpbGwgYmUgaW1wbGljaXRseSBjb25zdHJ1Y3RlZCBpZiBhCiAgICAgLy8g
cmVnaXN0ZXIgaXMgcGFzc2VkLgogCkBAIC01NzYsMTEgKzU2NCwzOCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwg
YWRkcmVzcy5zY2FsZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+
IDE2KTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRk
clRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRk
clRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmxidShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0K
ICAgICB9CisgICAgCisgICAgdm9pZCBsb2FkOFNpZ25lZChCYXNlSW5kZXggYWRkcmVzcywgUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2
OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0
aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwg
YWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGxiICAgICBkZXN0LCBhZGRyZXNz
Lm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwg
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4
LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAs
IGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zm
c2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJU
ZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgbGIgICAgIGRlc3QsIChhZGRyZXNzLm9mZnNldCAm
IDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNs
bChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rl
ciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVn
aXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQogCiAgICAgdm9pZCBsb2Fk
MzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC02
MjIsOCArNjM3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmJhc2UpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3Rlciwg
KGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxl
ci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rl
cik7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdyhkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CkBAIC02NzUsOCArNjg5LDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVp
KGltbVRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQgPj4gMTYpOwogICAgICAgICAgICAgbV9h
c3NlbWJsZXIub3JpKGltbVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9m
ZnNldCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbVRlbXBSZWdp
c3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAjaWYgQ1BVKEJJR19FTkRJQU4pCiAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2woZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgMCk7CiAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5sd3IoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgMyk7CkBA
IC03NjMsMTIgKzc3NiwzOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwo
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lz
dGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKLSAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJl
Z2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxodShkZXN0LCBhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIGxvYWQx
NlNpZ25lZChCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAg
ICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2
NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAg
ICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxl
CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFz
ZQorICAgICAgICAgICAgICAgIGxoICAgICBkZXN0LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkK
KyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFz
ZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5saChkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAg
ICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUK
KyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNl
CisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgw
MDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGlt
bVRlbXAKKyAgICAgICAgICAgICAgICBsaCAgICAgZGVzdCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhm
ZmZmKShhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5z
bGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJl
Z2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxoKGRlc3QsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIERhdGFMYWJl
bDMyIHN0b3JlMzJXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2ZpeGVkV2lkdGggPSB0cnVlOwpAQCAtODA5LDgg
Kzg0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5i
YXNlKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRy
ZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOwotICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
dShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
dShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOwog
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2Ioc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
Lm9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CkBAIC04NTUsOCArODk0LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5k
ZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwogICAgICAgICAgICAg
bV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAw
KSA+PiAxNik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbVRlbXBS
ZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zaChzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAg
fQogICAgIH0KQEAgLTkwMSw4ICs5MzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7
CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1t
VGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKLSAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlciwg
aW1tVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KHNyYywgYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOwogICAgICAgICB9CiAgICAgfQpAQCAtOTEyLDgg
Kzk0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAm
JiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkg
ewogICAgICAgICAgICAgaWYgKCFpbW0ubV92YWx1ZSkKLSAgICAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zdyhNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBhZGRyZXNzLmJhc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLnN3KE1JUFNSZWdpc3RlcnM6Onplcm8sIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZz
ZXQpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgbW92ZShpbW0sIGltbVRl
bXBSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coaW1tVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKQEAgLTkyNywxMiArOTYzLDEwIEBA
IHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShhZGRyVGVtcFJlZ2lzdGVyLCAo
YWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsK
ICAgICAgICAgICAgIGlmICghaW1tLm1fdmFsdWUgJiYgIW1fZml4ZWRXaWR0aCkKLSAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5zdyhNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBhZGRyVGVtcFJlZ2lz
dGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0KTsKKyAg
ICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5zdyhpbW1UZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnN3KGltbVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5v
ZmZzZXQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtOTk3LDkgKzEwMzEs
OSBAQCBwdWJsaWM6CiAgICAgLy8gU3RhY2sgbWFuaXB1bGF0aW9uIG9wZXJhdGlvbnM6CiAgICAg
Ly8KICAgICAvLyBUaGUgQUJJIGlzIGFzc3VtZWQgdG8gcHJvdmlkZSBhIHN0YWNrIGFic3RyYWN0
aW9uIHRvIG1lbW9yeSwKLSAgICAvLyBjb250YWluaW5nIG1hY2hpbmUgd29yZCBzaXplZCB1bml0
cyBvZiBkYXRhLiAgUHVzaCBhbmQgcG9wCisgICAgLy8gY29udGFpbmluZyBtYWNoaW5lIHdvcmQg
c2l6ZWQgdW5pdHMgb2YgZGF0YS4gUHVzaCBhbmQgcG9wCiAgICAgLy8gb3BlcmF0aW9ucyBhZGQg
YW5kIHJlbW92ZSBhIHNpbmdsZSByZWdpc3RlciBzaXplZCB1bml0IG9mIGRhdGEKLSAgICAvLyB0
byBvciBmcm9tIHRoZSBzdGFjay4gIFBlZWsgYW5kIHBva2Ugb3BlcmF0aW9ucyByZWFkIG9yIHdy
aXRlCisgICAgLy8gdG8gb3IgZnJvbSB0aGUgc3RhY2suIFBlZWsgYW5kIHBva2Ugb3BlcmF0aW9u
cyByZWFkIG9yIHdyaXRlCiAgICAgLy8gdmFsdWVzIG9uIHRoZSBzdGFjaywgd2l0aG91dCBtb3Zp
bmcgdGhlIGN1cnJlbnQgc3RhY2sgcG9zaXRpb24uCiAKICAgICB2b2lkIHBvcChSZWdpc3RlcklE
IGRlc3QpCkBAIC0xMjgzLDEwICsxMzE3LDIxIEBAIHB1YmxpYzoKICAgICAgICAgbV9maXhlZFdp
ZHRoID0gZmFsc2U7CiAgICAgfQogCisgICAgdm9pZCBtb3ZlRG91YmxlVG9JbnRzKEZQUmVnaXN0
ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdDEsIFJlZ2lzdGVySUQgZGVzdDIpCisgICAgeworICAg
ICAgICBtX2Fzc2VtYmxlci52bW92KGRlc3QxLCBkZXN0Miwgc3JjKTsKKyAgICB9CisKKyAgICB2
b2lkIG1vdmVJbnRzVG9Eb3VibGUoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIEZQ
UmVnaXN0ZXJJRCBkZXN0LCBGUFJlZ2lzdGVySUQgc2NyYXRjaCkKKyAgICB7CisgICAgICAgIFVO
VVNFRF9QQVJBTShzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihkZXN0LCBzcmMx
LCBzcmMyKTsKKyAgICB9CisKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVyYXRp
b25zOgogICAgIC8vCiAgICAgLy8gVGhpcyBzZXQgb2YgY29uZGl0aW9uYWwgYnJhbmNoIG9wZXJh
dGlvbnMgYnJhbmNoIGJhc2VkCi0gICAgLy8gb24gdGhlIHJlc3VsdCBvZiBhbiBhcml0aG1ldGlj
IG9wZXJhdGlvbi4gIFRoZSBvcGVyYXRpb24KKyAgICAvLyBvbiB0aGUgcmVzdWx0IG9mIGFuIGFy
aXRobWV0aWMgb3BlcmF0aW9uLiBUaGUgb3BlcmF0aW9uCiAgICAgLy8gaXMgcGVyZm9ybWVkIGFz
IG5vcm1hbCwgc3RvcmluZyB0aGUgcmVzdWx0LgogICAgIC8vCiAgICAgLy8gKiBqeiBvcGVyYXRp
b25zIGJyYW5jaCBpZiB0aGUgcmVzdWx0IGlzIHplcm8uCkBAIC0xNDk1LDcgKzE1NDAsNyBAQCBw
dWJsaWM6CiAKICAgICBDYWxsIG5lYXJDYWxsKCkKICAgICB7Ci0gICAgICAgIC8qIFdlIG5lZWQg
dHdvIHdvcmRzIGZvciByZWxheGF0aW9uLiAgKi8KKyAgICAgICAgLyogV2UgbmVlZCB0d28gd29y
ZHMgZm9yIHJlbGF4YXRpb24uICovCiAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOwogICAgICAg
ICBtX2Fzc2VtYmxlci5ub3AoKTsKICAgICAgICAgbV9hc3NlbWJsZXIuamFsKCk7CkBAIC0xNTgz
LDggKzE2MjgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0dShk
ZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIG1vdmUobWFzaywgaW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFuZEluc24oY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYW5kSW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVn
aXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBpZiAoY29uZCA9PSBaZXJvKQog
ICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsdGl1KGRlc3QsIGNtcFRlbXBSZWdpc3Rlciwg
MSk7CiAgICAgICAgICAgICBlbHNlCkBAIC0xNjAzLDggKzE2NDcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0dShkZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBk
YXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1vdmUobWFz
aywgaW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFuZEluc24oY21w
VGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYW5kSW5z
bihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAg
ICAgICAgICAgICBpZiAoY29uZCA9PSBaZXJvKQogICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNsdGl1KGRlc3QsIGNtcFRlbXBSZWdpc3RlciwgMSk7CiAgICAgICAgICAgICBlbHNlCkBAIC0x
NjgwLDYgKzE3MjMsMzQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdGFpbFJlY3Vyc2l2ZUNh
bGwoKTsKICAgICB9CiAKKyAgICB2b2lkIGxvYWRGbG9hdChCYXNlSW5kZXggYWRkcmVzcywgRlBS
ZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMy
NzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdp
ZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFk
ZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1w
LCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgbHdjMSAgICBkZXN0LCBhZGRy
ZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShk
ZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3Mu
aW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRy
VGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVz
cy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwg
YWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICBsd2MxICAgIGRlc3QsIChhZGRyZXNzLm9m
ZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1U
ZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBp
bW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShkZXN0LCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisKICAgICB2
b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKQEAgLTE3MTAsNiArMTc4MSw2NSBAQCBwdWJs
aWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lkIGxvYWREb3VibGUoQmFzZUluZGV4IGFkZHJl
c3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyNpZiBXVEZfTUlQU19JU0EoMSkKKyAgICAg
ICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2
NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAg
ICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxl
CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFz
ZQorICAgICAgICAgICAgICAgIGx3YzEgICAgZGVzdCwgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXAp
CisgICAgICAgICAgICAgICAgbHdjMSAgICBkZXN0KzEsIChhZGRyZXNzLm9mZnNldCs0KShhZGRy
VGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJl
c3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKGRlc3QsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBS
ZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQgKyA0
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xs
ICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAg
ICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAg
ICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAg
ICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAg
ICAgICAgICAgIGx3YzEgICAgZGVzdCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAg
ICAgICAgICAgICAgICBsd2MxICAgIGRlc3QrNCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmICsg
NCkoYXQpCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3Rlciwg
KGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rl
cik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBSZWdpc3Rl
cklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQgKyA0KTsKKyAg
ICAgICAgfQorI2Vsc2UKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBh
ZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgewor
ICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNz
LmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwg
YWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGxkYzEgICAgZGVzdCwgYWRk
cmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGRjMShk
ZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJl
c3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1w
LCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1w
LCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAg
ICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBsZGMxICAgIGRl
c3QsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAqLworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAx
Nik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5s
ZGMxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQor
I2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBsb2FkRG91YmxlKGNvbnN0IHZvaWQqIGFkZHJlc3Ms
IEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKQEAgLTE3MzEs
NiArMTg2MSwzMyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlRmxv
YXQoRlBSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBp
ZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3Cisg
ICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAg
ICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAg
ICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisg
ICAgICAgICAgICAgICAgc3djMSAgICBzcmMsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAg
ICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAg
ICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisg
ICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDAp
ID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRl
bXAKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYywgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZm
KShhdCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJl
c3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAo
YWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICB2b2lkIHN0b3JlRG91Ymxl
KEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKQEAgLTE3
NjIsMTcgKzE5MTksOTkgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgdm9pZCBzdG9y
ZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7CisjaWYg
V1RGX01JUFNfSVNBKDEpCisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYg
YWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsK
KyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVz
cy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAs
IGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYywgYWRk
cmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMrMSwgKGFk
ZHJlc3Mub2Zmc2V0ICsgNCkoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
c3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnN3YzEoRlBSZWdpc3RlcklEKHNyYyArIDEpLCBhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLm9mZnNldCArIDQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoK
KyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNz
LnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJl
c3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0
ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJU
ZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMsIChhZGRyZXNzLm9mZnNl
dCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMrMSwgKGFkZHJlc3Mu
b2Zmc2V0ICYgMHhmZmZmICsgNCkoYXQpCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVp
KGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0
ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKHNyYywg
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mu
b2Zmc2V0ICsgNCk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNl
dCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFt
X2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBh
ZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFk
ZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBz
ZGMxICAgIHNyYywgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgs
IGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBh
ZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFk
ZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBs
dWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAg
ICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAgICAgICAg
ICAgIHNkYzEgICAgc3JjLCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0KQorICAgICAgICAg
ICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUo
YWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCAr
IDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsK
KyAgICAgICAgfQorI2VuZGlmCisgICAgfQorCisgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lz
dGVySUQgc3JjLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyNpZiBXVEZfTUlQU19JU0Eo
MSkKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIDApOwor
ICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKEZQUmVnaXN0ZXJJRChzcmMgKyAxKSwgYWRkclRlbXBS
ZWdpc3RlciwgNCk7CisjZWxzZQorICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyks
IGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zZGMxKHNyYywgYWRkclRl
bXBSZWdpc3RlciwgMCk7CisjZW5kaWYKKyAgICB9CisKICAgICB2b2lkIGFkZERvdWJsZShGUFJl
Z2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLmFkZGQoZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKKyAgICB2b2lkIGFkZERvdWJsZShG
UFJlZ2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZGQoZGVzdCwgb3AxLCBvcDIpOworICAgIH0KKwog
ICAgIHZvaWQgYWRkRG91YmxlKEFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
CiAgICAgICAgIGxvYWREb3VibGUoc3JjLCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgZnBUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAorICAgIHZv
aWQgYWRkRG91YmxlKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB7CisgICAgICAgIGxvYWREb3VibGUoYWRkcmVzcy5tX3B0ciwgZnBUZW1wUmVnaXN0ZXIp
OworICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRlc3QsIGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsK
KyAgICB9CisKICAgICB2b2lkIHN1YkRvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVy
SUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YmQoZGVzdCwgZGVzdCwgc3Jj
KTsKQEAgLTE4MjAsNiArMjA1OSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmN2
dGR3KGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKKyAgICB2b2lkIGNvbnZlcnRGbG9h
dFRvRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAg
ICAgICBtX2Fzc2VtYmxlci5jdnRkcyhkc3QsIHNyYyk7CisgICAgfQorCisgICAgdm9pZCBjb252
ZXJ0RG91YmxlVG9GbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0KQorICAg
IHsKKyAgICAgICAgbV9hc3NlbWJsZXIuY3Z0c2QoZHN0LCBzcmMpOworICAgIH0KKwogICAgIHZv
aWQgaW5zZXJ0UmVsYXhhdGlvbldvcmRzKCkKICAgICB7CiAgICAgICAgIC8qIFdlIG5lZWQgZm91
ciB3b3JkcyBmb3IgcmVsYXhhdGlvbi4gKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168436</attachid>
            <date>2012-10-12 09:22:34 -0700</date>
            <delta_ts>2012-10-15 14:26:16 -0700</delta_ts>
            <desc>Many missing MIPS functions and style fixes.</desc>
            <filename>missing_functions.diff</filename>
            <type>text/plain</type>
            <size>44436</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGIyNTY4YTQuLjdjYjQ2NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTEwLTEyICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgQWRkIG1pc3NpbmcgTUlQUyBm
dW5jdGlvbnMgdG8gYXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbnMgaW4gTWFjcm9Bc3NlbWJs
ZXJNSVBTIGFuZCBNSVBTQXNzZW1ibGVyCisgICAgICAgIGFuZCBzdHlsZSBmaXhlcy4KKworICAg
ICAgICAqIGFzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1JUFNBc3Nl
bWJsZXI6OmFkZGl1KToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6YWRkdSk6CisgICAg
ICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnN1YnUpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1i
bGVyOjptdWwpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjphbmRJbnNuKToKKyAgICAg
ICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6YW5kaSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJs
ZXI6Om5vcik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6Om9ySW5zbik6CisgICAgICAg
IChKU0M6Ok1JUFNBc3NlbWJsZXI6Om9yaSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6
Onhvckluc24pOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjp4b3JpKToKKyAgICAgICAg
KEpTQzo6TUlQU0Fzc2VtYmxlcjo6c2x0KToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6
c2x0dSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnNsdGl1KToKKyAgICAgICAgKEpT
Qzo6TUlQU0Fzc2VtYmxlcjo6c2xsKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6c2xs
dik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnNyYSk6CisgICAgICAgIChKU0M6Ok1J
UFNBc3NlbWJsZXI6OnNyYXYpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpzcmwpOgor
ICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpzcmx2KToKKyAgICAgICAgKE1JUFNBc3NlbWJs
ZXIpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpsYik6CisgICAgICAgIChKU0M6Ok1J
UFNBc3NlbWJsZXI6OmxidSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6Omx3KToKKyAg
ICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bHdsKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2Vt
Ymxlcjo6bHdyKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGgpOgorICAgICAgICAo
SlNDOjpNSVBTQXNzZW1ibGVyOjpsaHUpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpz
Yik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnNoKToKKyAgICAgICAgKEpTQzo6TUlQ
U0Fzc2VtYmxlcjo6c3cpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjphZGRkKToKKyAg
ICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6c3ViZCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3Nl
bWJsZXI6Om11bGQpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpkaXZkKToKKyAgICAg
ICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bHdjMSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJs
ZXI6OmxkYzEpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpzd2MxKToKKyAgICAgICAg
KEpTQzo6TUlQU0Fzc2VtYmxlcjo6c2RjMSk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6
Om1maGMxKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6Y3Z0ZHMpOgorICAgICAgICAo
SlNDOjpNSVBTQXNzZW1ibGVyOjpjdnRzZCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6
OnZtb3YpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpyZWxvY2F0ZUp1bXBzKToKKyAg
ICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGlua1dpdGhPZmZzZXQpOgorICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJNSVBTOjphZGQzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YW5kMzIp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN1YjMyKToKKyAgICAgICAgKE1h
Y3JvQXNzZW1ibGVyTUlQUyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9h
ZDgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQ4U2lnbmVkKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkMzIpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQzMldpdGhVbmFsaWduZWRIYWxmV29yZHMpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQxNik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyTUlQUzo6bG9hZDE2U2lnbmVkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJNSVBTOjpzdG9yZTgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3Jl
MTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlMzIpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om1vdmVEb3VibGVUb0ludHMpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om1vdmVJbnRzVG9Eb3VibGUpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlck1JUFM6Om5lYXJDYWxsKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJNSVBTOjp0ZXN0OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6dGVz
dDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkRmxvYXQpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWREb3VibGUpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlck1JUFM6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJN
SVBTOjphZGREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmNvbnZl
cnRGbG9hdFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpjb252
ZXJ0RG91YmxlVG9GbG9hdCk6CisKIDIwMTItMTAtMTEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBCbG9ja0FsbG9jYXRvciBzaG91bGQgdXNlIHJl
Z2lvbnMgYXMgaXRzIFZNIGFsbG9jYXRpb24gYWJzdHJhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgKaW5kZXggZDNmOGFmOS4uZTEzNzM3
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1i
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVy
LmgKQEAgLTIyNywyMCArMjI3LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkaXUoUmVnaXN0
ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IGltbSkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0
KDB4MjQwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAg
ICAgICAgICAgICB8IChpbW0gJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHgyNDAwMDAw
MCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKGltbSAmIDB4ZmZmZikp
OwogICAgIH0KIAogICAgIHZvaWQgYWRkdShSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBS
ZWdpc3RlcklEIHJ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyMSB8IChyZCA8
PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8
IE9QX1NIX1JUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMjEgfCAocmQgPDwgT1BfU0hf
UkQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAogICAg
IHZvaWQgc3VidShSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBSZWdpc3RlcklEIHJ0KQog
ICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyMyB8IChyZCA8PCBPUF9TSF9SRCkgfCAo
cnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8IE9QX1NIX1JUKSk7Cisg
ICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMjMgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9Q
X1NIX1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAogICAgIHZvaWQgbXVsdChSZWdp
c3RlcklEIHJzLCBSZWdpc3RlcklEIHJ0KQpAQCAtMjY2LDggKzI2Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG11bChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBSZWdpc3RlcklEIHJ0KQog
ICAgIHsKICNpZiBXVEZfTUlQU19JU0FfQVRfTEVBU1QoMzIpIAotICAgICAgICBlbWl0SW5zdCgw
eDcwMDAwMDAyIHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAg
ICAgICAgICAgfCAocnQgPDwgT1BfU0hfUlQpKTsKKyAgICAgICAgZW1pdEluc3QoMHg3MDAwMDAw
MiB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKHJ0IDw8IE9QX1NIX1JU
KSk7CiAjZWxzZQogICAgICAgICBtdWx0KHJzLCBydCk7CiAgICAgICAgIG1mbG8ocmQpOwpAQCAt
Mjc2LDE1MSArMjcyLDEzOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFuZEluc24oUmVnaXN0ZXJJ
RCByZCwgUmVnaXN0ZXJJRCBycywgUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAgIGVtaXRJ
bnN0KDB4MDAwMDAwMjQgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAg
ICAgICAgICAgICAgICB8IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBlbWl0SW5zdCgweDAw
MDAwMDI0IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykgfCAocnQgPDwgT1Bf
U0hfUlQpKTsKICAgICB9CiAKICAgICB2b2lkIGFuZGkoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJ
RCBycywgaW50IGltbSkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MzAwMDAwMDAgfCAocnQg
PDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChpbW0g
JiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHgzMDAwMDAwMCB8IChydCA8PCBPUF9TSF9S
VCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKGltbSAmIDB4ZmZmZikpOwogICAgIH0KIAogICAgIHZv
aWQgbm9yKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnMsIFJlZ2lzdGVySUQgcnQpCiAgICAg
ewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDI3IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8
PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAocnQgPDwgT1BfU0hfUlQpKTsKKyAgICAg
ICAgZW1pdEluc3QoMHgwMDAwMDAyNyB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hf
UlMpIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CiAgICAgfQogCiAgICAgdm9pZCBvckluc24oUmVnaXN0
ZXJJRCByZCwgUmVnaXN0ZXJJRCBycywgUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAgIGVt
aXRJbnN0KDB4MDAwMDAwMjUgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKQot
ICAgICAgICAgICAgICAgICB8IChydCA8PCBPUF9TSF9SVCkpOworICAgICAgICBlbWl0SW5zdCgw
eDAwMDAwMDI1IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChycyA8PCBPUF9TSF9SUykgfCAocnQgPDwg
T1BfU0hfUlQpKTsKICAgICB9CiAKICAgICB2b2lkIG9yaShSZWdpc3RlcklEIHJ0LCBSZWdpc3Rl
cklEIHJzLCBpbnQgaW1tKQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgzNDAwMDAwMCB8IChy
dCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKGlt
bSAmIDB4ZmZmZikpOworICAgICAgICBlbWl0SW5zdCgweDM0MDAwMDAwIHwgKHJ0IDw8IE9QX1NI
X1JUKSB8IChycyA8PCBPUF9TSF9SUykgfCAoaW1tICYgMHhmZmZmKSk7CiAgICAgfQogCiAgICAg
dm9pZCB4b3JJbnNuKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnMsIFJlZ2lzdGVySUQgcnQp
CiAgICAgewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDI2IHwgKHJkIDw8IE9QX1NIX1JEKSB8
IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAocnQgPDwgT1BfU0hfUlQpKTsK
KyAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyNiB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwg
T1BfU0hfUlMpIHwgKHJ0IDw8IE9QX1NIX1JUKSk7CiAgICAgfQogCiAgICAgdm9pZCB4b3JpKFJl
Z2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBpbW0pCiAgICAgewotICAgICAgICBlbWl0
SW5zdCgweDM4MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKLSAg
ICAgICAgICAgICAgICAgfCAoaW1tICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4Mzgw
MDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChpbW0gJiAweGZm
ZmYpKTsKICAgICB9CiAKICAgICB2b2lkIHNsdChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJz
LCBSZWdpc3RlcklEIHJ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyYSB8IChy
ZCA8PCBPUF9TSF9SRCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0
IDw8IE9QX1NIX1JUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMmEgfCAocmQgPDwgT1Bf
U0hfUkQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAog
ICAgIHZvaWQgc2x0dShSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJzLCBSZWdpc3RlcklEIHJ0
KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAyYiB8IChyZCA8PCBPUF9TSF9SRCkg
fCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKHJ0IDw8IE9QX1NIX1JUKSk7
CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMmIgfCAocmQgPDwgT1BfU0hfUkQpIHwgKHJzIDw8
IE9QX1NIX1JTKSB8IChydCA8PCBPUF9TSF9SVCkpOwogICAgIH0KIAogICAgIHZvaWQgc2x0aXUo
UmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IGltbSkKICAgICB7Ci0gICAgICAgIGVt
aXRJbnN0KDB4MmMwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQot
ICAgICAgICAgICAgICAgICB8IChpbW0gJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHgy
YzAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKGltbSAmIDB4
ZmZmZikpOwogICAgIH0KIAogICAgIHZvaWQgc2xsKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQg
cnQsIGludCBzaGFtdCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDAgfCAocmQg
PDwgT1BfU0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKQotICAgICAgICAgICAgICAgICB8ICgoc2hh
bXQgJiAweDFmKSA8PCBPUF9TSF9TSEFNVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDAw
IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkgfCAoKHNoYW10ICYgMHgxZikg
PDwgT1BfU0hfU0hBTVQpKTsKICAgICB9CiAKICAgICB2b2lkIHNsbHYoUmVnaXN0ZXJJRCByZCwg
UmVnaXN0ZXJJRCBydCwgaW50IHJzKQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAw
NCB8IChyZCA8PCBPUF9TSF9SRCkgfCAocnQgPDwgT1BfU0hfUlQpCi0gICAgICAgICAgICAgICAg
IHwgKHJzIDw8IE9QX1NIX1JTKSk7CisgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDQgfCAocmQg
PDwgT1BfU0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykpOwogICAg
IH0KIAogICAgIHZvaWQgc3JhKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnQsIGludCBzaGFt
dCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDMgfCAocmQgPDwgT1BfU0hfUkQp
IHwgKHJ0IDw8IE9QX1NIX1JUKQotICAgICAgICAgICAgICAgICB8ICgoc2hhbXQgJiAweDFmKSA8
PCBPUF9TSF9TSEFNVCkpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDAzIHwgKHJkIDw8IE9Q
X1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkgfCAoKHNoYW10ICYgMHgxZikgPDwgT1BfU0hfU0hB
TVQpKTsKICAgICB9CiAKICAgICB2b2lkIHNyYXYoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBy
dCwgUmVnaXN0ZXJJRCBycykKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDcgfCAo
cmQgPDwgT1BfU0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKQotICAgICAgICAgICAgICAgICB8IChy
cyA8PCBPUF9TSF9SUykpOworICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDA3IHwgKHJkIDw8IE9Q
X1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpKTsKICAgICB9CiAK
ICAgICB2b2lkIHNybChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJ0LCBpbnQgc2hhbXQpCiAg
ICAgewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDAyIHwgKHJkIDw8IE9QX1NIX1JEKSB8IChy
dCA8PCBPUF9TSF9SVCkKLSAgICAgICAgICAgICAgICAgfCAoKHNoYW10ICYgMHgxZikgPDwgT1Bf
U0hfU0hBTVQpKTsKKyAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAwMiB8IChyZCA8PCBPUF9TSF9S
RCkgfCAocnQgPDwgT1BfU0hfUlQpIHwgKChzaGFtdCAmIDB4MWYpIDw8IE9QX1NIX1NIQU1UKSk7
CiAgICAgfQogCiAgICAgdm9pZCBzcmx2KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcnQsIFJl
Z2lzdGVySUQgcnMpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweDAwMDAwMDA2IHwgKHJkIDw8
IE9QX1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkKLSAgICAgICAgICAgICAgICAgfCAocnMgPDwg
T1BfU0hfUlMpKTsKKyAgICAgICAgZW1pdEluc3QoMHgwMDAwMDAwNiB8IChyZCA8PCBPUF9TSF9S
RCkgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSk7CisgICAgfQorCisgICAg
dm9pZCBsYihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQorICAgIHsK
KyAgICAgICAgZW1pdEluc3QoMHg4MDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwg
T1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAgICAgICBsb2FkRGVsYXlOb3AoKTsK
ICAgICB9CiAKICAgICB2b2lkIGxidShSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQg
b2Zmc2V0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg5MDAwMDAwMCB8IChydCA8PCBPUF9T
SF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4
ZmZmZikpOworICAgICAgICBlbWl0SW5zdCgweDkwMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8
IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CiAgICAgICAgIGxvYWREZWxh
eU5vcCgpOwogICAgIH0KIAogICAgIHZvaWQgbHcoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBy
cywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4OGMwMDAwMDAgfCAocnQg
PDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChvZmZz
ZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHg4YzAwMDAwMCB8IChydCA8PCBPUF9T
SF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwogICAgICAgICBs
b2FkRGVsYXlOb3AoKTsKICAgICB9CiAKICAgICB2b2lkIGx3bChSZWdpc3RlcklEIHJ0LCBSZWdp
c3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg4ODAwMDAw
MCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAg
IHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAgICAgICBlbWl0SW5zdCgweDg4MDAwMDAwIHwgKHJ0
IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CiAg
ICAgICAgIGxvYWREZWxheU5vcCgpOwogICAgIH0KIAogICAgIHZvaWQgbHdyKFJlZ2lzdGVySUQg
cnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgw
eDk4MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAg
ICAgICAgICAgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4OTgwMDAw
MDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZm
ZmYpKTsKKyAgICAgICAgbG9hZERlbGF5Tm9wKCk7CisgICAgfQorCisgICAgdm9pZCBsaChSZWdp
c3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgZW1p
dEluc3QoMHg4NDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwg
KG9mZnNldCAmIDB4ZmZmZikpOwogICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAgICB9CiAKICAg
ICB2b2lkIGxodShSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAg
IHsKLSAgICAgICAgZW1pdEluc3QoMHg5NDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMg
PDwgT1BfU0hfUlMpCi0gICAgICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAg
ICAgICBlbWl0SW5zdCgweDk0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9T
SF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CiAgICAgICAgIGxvYWREZWxheU5vcCgpOwogICAg
IH0KIAogICAgIHZvaWQgc2IoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNl
dCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4YTAwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQp
IHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAgICB8IChvZmZzZXQgJiAweGZmZmYp
KTsKKyAgICAgICAgZW1pdEluc3QoMHhhMDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMg
PDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwogICAgIH0KIAogICAgIHZvaWQgc2go
UmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAg
IGVtaXRJbnN0KDB4YTQwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JT
KQotICAgICAgICAgICAgICAgICB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdElu
c3QoMHhhNDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9m
ZnNldCAmIDB4ZmZmZikpOwogICAgIH0KIAogICAgIHZvaWQgc3coUmVnaXN0ZXJJRCBydCwgUmVn
aXN0ZXJJRCBycywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4YWMwMDAw
MDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAgICAgICAg
ICB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHhhYzAwMDAwMCB8IChy
dCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwog
ICAgIH0KIAogICAgIHZvaWQganIoUmVnaXN0ZXJJRCBycykKQEAgLTQ4MSw1MSArNDY1LDQzIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgYWRkZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBm
cywgRlBSZWdpc3RlcklEIGZ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMCB8
IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpCi0gICAgICAgICAgICAgICAgIHwg
KGZ0IDw8IE9QX1NIX0ZUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMDAgfCAoZmQgPDwg
T1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0K
IAogICAgIHZvaWQgc3ViZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdp
c3RlcklEIGZ0KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMSB8IChmZCA8PCBP
UF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpCi0gICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9Q
X1NIX0ZUKSk7CisgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMDEgfCAoZmQgPDwgT1BfU0hfRkQp
IHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAogICAgIHZv
aWQgbXVsZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0
KQogICAgIHsKLSAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMiB8IChmZCA8PCBPUF9TSF9GRCkg
fCAoZnMgPDwgT1BfU0hfRlMpCi0gICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9QX1NIX0ZUKSk7
CisgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMDIgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8
IE9QX1NIX0ZTKSB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAogICAgIHZvaWQgZGl2ZChG
UFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQogICAgIHsK
LSAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAwMyB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwg
T1BfU0hfRlMpCi0gICAgICAgICAgICAgICAgIHwgKGZ0IDw8IE9QX1NIX0ZUKSk7CisgICAgICAg
IGVtaXRJbnN0KDB4NDYyMDAwMDMgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZT
KSB8IChmdCA8PCBPUF9TSF9GVCkpOwogICAgIH0KIAogICAgIHZvaWQgbHdjMShGUFJlZ2lzdGVy
SUQgZnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBlbWl0SW5z
dCgweGM0MDAwMDAwIHwgKGZ0IDw8IE9QX1NIX0ZUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAg
ICAgICAgICAgICAgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4YzQw
MDAwMDAgfCAoZnQgPDwgT1BfU0hfRlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAw
eGZmZmYpKTsKICAgICAgICAgY29wRGVsYXlOb3AoKTsKICAgICB9CiAKICAgICB2b2lkIGxkYzEo
RlBSZWdpc3RlcklEIGZ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAg
ICAgZW1pdEluc3QoMHhkNDAwMDAwMCB8IChmdCA8PCBPUF9TSF9GVCkgfCAocnMgPDwgT1BfU0hf
UlMpCi0gICAgICAgICAgICAgICAgIHwgKG9mZnNldCAmIDB4ZmZmZikpOworICAgICAgICBlbWl0
SW5zdCgweGQ0MDAwMDAwIHwgKGZ0IDw8IE9QX1NIX0ZUKSB8IChycyA8PCBPUF9TSF9SUykgfCAo
b2Zmc2V0ICYgMHhmZmZmKSk7CiAgICAgfQogCiAgICAgdm9pZCBzd2MxKEZQUmVnaXN0ZXJJRCBm
dCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGVtaXRJbnN0KDB4
ZTQwMDAwMDAgfCAoZnQgPDwgT1BfU0hfRlQpIHwgKHJzIDw8IE9QX1NIX1JTKQotICAgICAgICAg
ICAgICAgICB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgZW1pdEluc3QoMHhlNDAwMDAw
MCB8IChmdCA8PCBPUF9TSF9GVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZm
ZikpOwogICAgIH0KIAogICAgIHZvaWQgc2RjMShGUFJlZ2lzdGVySUQgZnQsIFJlZ2lzdGVySUQg
cnMsIGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBlbWl0SW5zdCgweGY0MDAwMDAwIHwgKGZ0
IDw8IE9QX1NIX0ZUKSB8IChycyA8PCBPUF9TSF9SUykKLSAgICAgICAgICAgICAgICAgfCAob2Zm
c2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGVtaXRJbnN0KDB4ZjQwMDAwMDAgfCAoZnQgPDwgT1Bf
U0hfRlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKICAgICB9CiAK
ICAgICB2b2lkIG10YzEoUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3RlcklEIGZzKQpAQCAtNTQ2LDYg
KzUyMiwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGNvcERlbGF5Tm9wKCk7CiAgICAgfQogCisgICAg
dm9pZCBtZmhjMShSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAg
ICBlbWl0SW5zdCgweDQ0NjAwMDAwIHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChydCA8PCBPUF9TSF9S
VCkpOworICAgICAgICBjb3BEZWxheU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgc3FydGQoRlBS
ZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQgZnMpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgw
eDQ2MjAwMDA0IHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOwpAQCAtNTYx
LDExICs1NDMsMjEgQEAgcHVibGljOgogICAgICAgICBlbWl0SW5zdCgweDQ2ODAwMDIxIHwgKGZk
IDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOwogICAgIH0KIAorICAgIHZvaWQgY3Z0
ZHMoRlBSZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAgICBlbWl0
SW5zdCgweDQ2MDAwMDIxIHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOwor
ICAgIH0KKwogICAgIHZvaWQgY3Z0d2QoRlBSZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQgZnMp
CiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDI0IHwgKGZkIDw8IE9QX1NIX0ZEKSB8
IChmcyA8PCBPUF9TSF9GUykpOwogICAgIH0KIAorICAgIHZvaWQgY3Z0c2QoRlBSZWdpc3RlcklE
IGZkLCBGUFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDIw
IHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOworICAgIH0KKwogICAgIHZv
aWQgY2VxZChGUFJlZ2lzdGVySUQgZnMsIEZQUmVnaXN0ZXJJRCBmdCkKICAgICB7CiAgICAgICAg
IGVtaXRJbnN0KDB4NDYyMDAwMzIgfCAoZnMgPDwgT1BfU0hfRlMpIHwgKGZ0IDw8IE9QX1NIX0ZU
KSk7CkBAIC02NzUsNiArNjY3LDE5IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGRlYnVnT2Zm
c2V0KCkgeyByZXR1cm4gbV9idWZmZXIuZGVidWdPZmZzZXQoKTsgfQogCisgICAgLy8gQXNzZW1i
bHkgaGVscGVycyBmb3IgbW92aW5nIGRhdGEgYmV0d2VlbiBmcCBhbmQgcmVnaXN0ZXJzLgorICAg
IHZvaWQgdm1vdihSZWdpc3RlcklEIHJkMSwgUmVnaXN0ZXJJRCByZDIsIEZQUmVnaXN0ZXJJRCBy
bikKKyAgICB7CisgICAgICAgIG1mYzEocmQxLCBybik7CisgICAgICAgIG1mYzEocmQyLCBGUFJl
Z2lzdGVySUQocm4gKyAxKSk7CisgICAgfQorCisgICAgdm9pZCB2bW92KEZQUmVnaXN0ZXJJRCBy
ZCwgUmVnaXN0ZXJJRCBybjEsIFJlZ2lzdGVySUQgcm4yKQorICAgIHsKKyAgICAgICAgbXRjMShy
bjEsIHJkKTsKKyAgICAgICAgbXRjMShybjIsIEZQUmVnaXN0ZXJJRChyZCArIDEpKTsKKyAgICB9
CisKICAgICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2FsbFJldHVybk9mZnNldChBc3NlbWJsZXJMYWJl
bCBjYWxsKQogICAgIHsKICAgICAgICAgLy8gVGhlIHJldHVybiBhZGRyZXNzIGlzIGFmdGVyIGEg
Y2FsbCBhbmQgYSBkZWxheSBzbG90IGluc3RydWN0aW9uCkBAIC02ODQsNyArNjg5LDcgQEAgcHVi
bGljOgogICAgIC8vIExpbmtpbmcgJiBwYXRjaGluZzoKICAgICAvLwogICAgIC8vICdsaW5rJyBh
bmQgJ3BhdGNoJyBtZXRob2RzIGFyZSBmb3IgdXNlIG9uIHVucHJvdGVjdGVkIGNvZGUgLSBzdWNo
IGFzIHRoZSBjb2RlCi0gICAgLy8gd2l0aGluIHRoZSBBc3NlbWJsZXJCdWZmZXIsIGFuZCBjb2Rl
IGJlaW5nIHBhdGNoZWQgYnkgdGhlIHBhdGNoIGJ1ZmZlci4gIE9uY2UKKyAgICAvLyB3aXRoaW4g
dGhlIEFzc2VtYmxlckJ1ZmZlciwgYW5kIGNvZGUgYmVpbmcgcGF0Y2hlZCBieSB0aGUgcGF0Y2gg
YnVmZmVyLiBPbmNlCiAgICAgLy8gY29kZSBoYXMgYmVlbiBmaW5hbGl6ZWQgaXQgaXMgKHBsYXRm
b3JtIHN1cHBvcnQgcGVybWl0dGluZykgd2l0aGluIGEgbm9uLQogICAgIC8vIHdyaXRhYmxlIHJl
Z2lvbiBvZiBtZW1vcnk7IHRvIG1vZGlmeSB0aGUgY29kZSBpbiBhbiBleGVjdXRlLW9ubHkgZXhl
Y3VhYmxlCiAgICAgLy8gcG9vbCB0aGUgJ3JlcGF0Y2gnIGFuZCAncmVsaW5rJyBtZXRob2RzIHNo
b3VsZCBiZSB1c2VkLgpAQCAtODU4LDcgKzg2Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBN
SVBTV29yZCogaW5zbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8TUlQU1dvcmQqPihyZWludGVycHJldF9j
YXN0PGludHB0cl90PihuZXdCYXNlKSArIHBvcyk7CiAgICAgICAgICAgICBpbnNuID0gaW5zbiAr
IDI7CiAgICAgICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIDUgdmFsaWQgaW5z
dHJ1Y3Rpb25zIGFmdGVyIHBvcwotICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBpbnQpcG9zID49
IG1fYnVmZmVyLmNvZGVTaXplKCkgLSA1ICogc2l6ZW9mKE1JUFNXb3JkKSkKKyAgICAgICAgICAg
IGlmICgodW5zaWduZWQpcG9zID49IG1fYnVmZmVyLmNvZGVTaXplKCkgLSA1ICogc2l6ZW9mKE1J
UFNXb3JkKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgaWYgKCgq
aW5zbiAmIDB4ZmMwMDAwMDApID09IDB4MDgwMDAwMDApIHsgLy8gagpAQCAtODk0LDExICs4OTks
MTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgaW50IGxpbmtXaXRoT2Zmc2V0KE1JUFNXb3JkKiBp
bnNuLCB2b2lkKiB0bykKICAgICB7CiAgICAgICAgIEFTU0VSVCgoKmluc24gJiAweGZjMDAwMDAw
KSA9PSAweDEwMDAwMDAwIC8vIGJlcQotICAgICAgICAgICAgICAgfHwgKCppbnNuICYgMHhmYzAw
MDAwMCkgPT0gMHgxNDAwMDAwMCAvLyBibmUKLSAgICAgICAgICAgICAgIHx8ICgqaW5zbiAmIDB4
ZmZmZjAwMDApID09IDB4NDUwMTAwMDAgLy8gYmMxdAotICAgICAgICAgICAgICAgfHwgKCppbnNu
ICYgMHhmZmZmMDAwMCkgPT0gMHg0NTAwMDAwMCk7IC8vIGJjMWYKLSAgICAgICAgaW50cHRyX3Qg
ZGlmZiA9IChyZWludGVycHJldF9jYXN0PGludHB0cl90Pih0bykKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGluc24pIC0gNCkgPj4gMjsKKyAg
ICAgICAgICAgIHx8ICgqaW5zbiAmIDB4ZmMwMDAwMDApID09IDB4MTQwMDAwMDAgLy8gYm5lCisg
ICAgICAgICAgICB8fCAoKmluc24gJiAweGZmZmYwMDAwKSA9PSAweDQ1MDEwMDAwIC8vIGJjMXQK
KyAgICAgICAgICAgIHx8ICgqaW5zbiAmIDB4ZmZmZjAwMDApID09IDB4NDUwMDAwMDApOyAvLyBi
YzFmCisgICAgICAgIGludHB0cl90IGRpZmYgPSAocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4o
dG8pIC0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaW5zbikgLSA0KSA+PiAyOwogCiAgICAg
ICAgIGlmIChkaWZmIDwgLTMyNzY4IHx8IGRpZmYgPiAzMjc2NyB8fCAqKGluc24gKyAyKSAhPSAw
eDEwMDAwMDAzKSB7CiAgICAgICAgICAgICAvKgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggMjI4MzBhNi4uYjAzYWJl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oCkBAIC0yOSw4ICsyOSw4IEBACiAKICNpZiBFTkFCTEUoQVNTRU1CTEVSKSAm
JiBDUFUoTUlQUykKIAotI2luY2x1ZGUgIk1JUFNBc3NlbWJsZXIuaCIKICNpbmNsdWRlICJBYnN0
cmFjdE1hY3JvQXNzZW1ibGVyLmgiCisjaW5jbHVkZSAiTUlQU0Fzc2VtYmxlci5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApAQCAtMTU1LDEyICsxNTUsMTAgQEAgcHVibGljOgogICAgICAgICAgICAg
bV9hc3NlbWJsZXIubHcoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9m
ZnNldCk7CiAgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY4ICYmIGltbS5tX3Zh
bHVlIDw9IDMyNzY3CiAgICAgICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkKLSAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbS5tX3ZhbHVlKTsKKyAg
ICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVt
cFJlZ2lzdGVyLCBpbW0ubV92YWx1ZSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgICBtb3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1t
VGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3
KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpOwogICAgICAg
ICB9IGVsc2UgewpAQCAtMTc3LDEyICsxNzUsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgbV9h
c3NlbWJsZXIubHcoZGF0YVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5v
ZmZzZXQpOwogCiAgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY4ICYmIGltbS5t
X3ZhbHVlIDw9IDMyNzY3ICYmICFtX2ZpeGVkV2lkdGgpCi0gICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkaXUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbW0ubV92YWx1ZSk7CisgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkaXUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1t
Lm1fdmFsdWUpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgbW92ZShpbW0s
IGltbVRlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShkYXRh
VGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5h
ZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lz
dGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KQEAgLTI1
Nyw4ICsyNTMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoIWltbS5tX3ZhbHVlICYm
ICFtX2ZpeGVkV2lkdGgpCiAgICAgICAgICAgICBtb3ZlKE1JUFNSZWdpc3RlcnM6Onplcm8sIGRl
c3QpOwotICAgICAgICBlbHNlIGlmIChpbW0ubV92YWx1ZSA+IDAgJiYgaW1tLm1fdmFsdWUgPCA2
NTUzNQotICAgICAgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKQorICAgICAgICBlbHNlIGlm
IChpbW0ubV92YWx1ZSA+IDAgJiYgaW1tLm1fdmFsdWUgPCA2NTUzNSAmJiAhbV9maXhlZFdpZHRo
KQogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYW5kaShkZXN0LCBkZXN0LCBpbW0ubV92YWx1ZSk7
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLyoKQEAgLTQxOSwxNCArNDE0LDExIEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgc3cgICAgICAgIGRhdGFUZW1wLCBvZmZzZXQoYmFzZSkKICAg
ICAgICAgICAgICovCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdyhkYXRhVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKLSAgICAgICAgICAgIGlmIChpbW0ubV92
YWx1ZSA+PSAtMzI3NjcgJiYgaW1tLm1fdmFsdWUgPD0gMzI3NjgKLSAgICAgICAgICAgICAgICAm
JiAhbV9maXhlZFdpZHRoKQotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGl1KGRhdGFU
ZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLWltbS5tX3ZhbHVlKTsKKyAgICAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAt
MzI3NjcgJiYgaW1tLm1fdmFsdWUgPD0gMzI3NjggJiYgIW1fZml4ZWRXaWR0aCkKKyAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyLCAtaW1tLm1fdmFsdWUpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
bW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
c3VidShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5zdWJ1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBS
ZWdpc3Rlcik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRh
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgfSBl
bHNlIHsKQEAgLTQ0NCwxMiArNDM2LDEwIEBAIHB1YmxpYzoKIAogICAgICAgICAgICAgaWYgKGlt
bS5tX3ZhbHVlID49IC0zMjc2NyAmJiBpbW0ubV92YWx1ZSA8PSAzMjc2OAogICAgICAgICAgICAg
ICAgICYmICFtX2ZpeGVkV2lkdGgpCi0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkaXUo
ZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtaW1tLm1fdmFsdWUpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIC1pbW0ubV92YWx1ZSk7
CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJl
Z2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWJ1KGRhdGFUZW1wUmVnaXN0
ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1YnUoZGF0YVRl
bXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgfQpAQCAtNDczLDExICs0NjMs
OSBAQCBwdWJsaWM6CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwg
YWRkclRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIDApOwogCi0gICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAt
MzI3NjcgJiYgaW1tLm1fdmFsdWUgPD0gMzI3NjgKLSAgICAgICAgICAgICYmICFtX2ZpeGVkV2lk
dGgpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRh
dGFUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtaW1tLm1fdmFs
dWUpOwotICAgICAgICB9IGVsc2UgeworICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY3
ICYmIGltbS5tX3ZhbHVlIDw9IDMyNzY4ICYmICFtX2ZpeGVkV2lkdGgpCisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCAtaW1t
Lm1fdmFsdWUpOworICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIG1vdmUoaW1tLCBpbW1UZW1w
UmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3VidShkYXRhVGVtcFJlZ2lzdGVy
LCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOwogICAgICAgICB9CkBAIC01MzEs
NyArNTE5LDcgQEAgcHVibGljOgogICAgIC8vIE1lbW9yeSBhY2Nlc3Mgb3BlcmF0aW9uczoKICAg
ICAvLwogICAgIC8vIExvYWRzIGFyZSBvZiB0aGUgZm9ybSBsb2FkKGFkZHJlc3MsIGRlc3RpbmF0
aW9uKSBhbmQgc3RvcmVzIG9mIHRoZSBmb3JtCi0gICAgLy8gc3RvcmUoc291cmNlLCBhZGRyZXNz
KS4gIFRoZSBzb3VyY2UgZm9yIGEgc3RvcmUgbWF5IGJlIGFuIFRydXN0ZWRJbW0zMi4gIEFkZHJl
c3MKKyAgICAvLyBzdG9yZShzb3VyY2UsIGFkZHJlc3MpLiBUaGUgc291cmNlIGZvciBhIHN0b3Jl
IG1heSBiZSBhbiBUcnVzdGVkSW1tMzIuIEFkZHJlc3MKICAgICAvLyBvcGVyYW5kIG9iamVjdHMg
dG8gbG9hZHMgYW5kIHN0b3JlIHdpbGwgYmUgaW1wbGljaXRseSBjb25zdHJ1Y3RlZCBpZiBhCiAg
ICAgLy8gcmVnaXN0ZXIgaXMgcGFzc2VkLgogCkBAIC01NzYsMTEgKzU2NCwzOCBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgw
MDApID4+IDE2KTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rl
ciwgYWRkclRlbXBSZWdpc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rl
ciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmxidShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAg
ICAgIH0KICAgICB9CisgICAgCisgICAgdm9pZCBsb2FkOFNpZ25lZChCYXNlSW5kZXggYWRkcmVz
cywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49
IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4
ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1w
LCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRy
VGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGxiICAgICBkZXN0LCBh
ZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIo
ZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNz
LmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRk
clRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJl
c3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAs
IGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgbGIgICAgIGRlc3QsIChhZGRyZXNzLm9m
ZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1U
ZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBp
bW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwgYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQogCiAgICAgdm9p
ZCBsb2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
CkBAIC02MjIsOCArNjM3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xs
KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmJhc2UpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdp
c3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7Ci0gICAgICAgICAgICBtX2Fz
c2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBS
ZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdyhkZXN0LCBhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CkBAIC02NzUsOCArNjg5LDcg
QEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwogICAgICAgICAgICAgbV9hc3NlbWJs
ZXIubHVpKGltbVRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQgPj4gMTYpOwogICAgICAgICAg
ICAgbV9hc3NlbWJsZXIub3JpKGltbVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLm9mZnNldCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbVRl
bXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAjaWYgQ1BVKEJJR19FTkRJ
QU4pCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2woZGVzdCwgYWRkclRlbXBSZWdpc3Rlciwg
MCk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd3IoZGVzdCwgYWRkclRlbXBSZWdpc3Rlciwg
Myk7CkBAIC03NjMsMTIgKzc3NiwzOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVt
cFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKLSAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1t
VGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxodShkZXN0LCBhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lk
IGxvYWQxNlNpZ25lZChCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsK
KyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8
PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoK
KyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNz
LnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJl
c3MuYmFzZQorICAgICAgICAgICAgICAgIGxoICAgICBkZXN0LCBhZGRyZXNzLm9mZnNldChhZGRy
VGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJl
c3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5saChkZXN0LCBhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgor
ICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVz
cy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQg
KyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRl
bXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBsaCAgICAgZGVzdCwgKGFkZHJlc3Mub2Zmc2V0
ICYgMHhmZmZmKShhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1t
VGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlciwg
aW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxoKGRlc3QsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIERh
dGFMYWJlbDMyIHN0b3JlMzJXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVySUQgc3JjLCBB
ZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2ZpeGVkV2lkdGggPSB0cnVlOwpAQCAt
ODA5LDggKzg0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5iYXNlKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIs
IChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOwotICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0
ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2Ioc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CkBAIC04NTUsOCArODk0LDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJl
c3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwogICAgICAg
ICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsg
MHg4MDAwKSA+PiAxNik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlt
bVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5zaChzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTkwMSw4ICs5MzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5z
Y2FsZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5s
dWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKLSAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tVGVtcFJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KHNyYywg
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOwogICAgICAgICB9CiAgICAgfQpAQCAt
OTEyLDggKzk0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0z
Mjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRX
aWR0aCkgewogICAgICAgICAgICAgaWYgKCFpbW0ubV92YWx1ZSkKLSAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5zdyhNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBhZGRyZXNzLmJhc2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnN3KE1JUFNSZWdpc3RlcnM6Onplcm8sIGFkZHJlc3MuYmFzZSwgYWRkcmVz
cy5vZmZzZXQpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgbW92ZShpbW0s
IGltbVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coaW1tVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKQEAgLTkyNywxMiArOTYz
LDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShhZGRyVGVtcFJlZ2lz
dGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5i
YXNlKTsKICAgICAgICAgICAgIGlmICghaW1tLm1fdmFsdWUgJiYgIW1fZml4ZWRXaWR0aCkKLSAg
ICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBhZGRyVGVt
cFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0
KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5zdyhpbW1UZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnN3KGltbVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5vZmZzZXQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtOTk3LDkg
KzEwMzEsOSBAQCBwdWJsaWM6CiAgICAgLy8gU3RhY2sgbWFuaXB1bGF0aW9uIG9wZXJhdGlvbnM6
CiAgICAgLy8KICAgICAvLyBUaGUgQUJJIGlzIGFzc3VtZWQgdG8gcHJvdmlkZSBhIHN0YWNrIGFi
c3RyYWN0aW9uIHRvIG1lbW9yeSwKLSAgICAvLyBjb250YWluaW5nIG1hY2hpbmUgd29yZCBzaXpl
ZCB1bml0cyBvZiBkYXRhLiAgUHVzaCBhbmQgcG9wCisgICAgLy8gY29udGFpbmluZyBtYWNoaW5l
IHdvcmQgc2l6ZWQgdW5pdHMgb2YgZGF0YS4gUHVzaCBhbmQgcG9wCiAgICAgLy8gb3BlcmF0aW9u
cyBhZGQgYW5kIHJlbW92ZSBhIHNpbmdsZSByZWdpc3RlciBzaXplZCB1bml0IG9mIGRhdGEKLSAg
ICAvLyB0byBvciBmcm9tIHRoZSBzdGFjay4gIFBlZWsgYW5kIHBva2Ugb3BlcmF0aW9ucyByZWFk
IG9yIHdyaXRlCisgICAgLy8gdG8gb3IgZnJvbSB0aGUgc3RhY2suIFBlZWsgYW5kIHBva2Ugb3Bl
cmF0aW9ucyByZWFkIG9yIHdyaXRlCiAgICAgLy8gdmFsdWVzIG9uIHRoZSBzdGFjaywgd2l0aG91
dCBtb3ZpbmcgdGhlIGN1cnJlbnQgc3RhY2sgcG9zaXRpb24uCiAKICAgICB2b2lkIHBvcChSZWdp
c3RlcklEIGRlc3QpCkBAIC0xMjgzLDEwICsxMzE3LDIxIEBAIHB1YmxpYzoKICAgICAgICAgbV9m
aXhlZFdpZHRoID0gZmFsc2U7CiAgICAgfQogCisgICAgdm9pZCBtb3ZlRG91YmxlVG9JbnRzKEZQ
UmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdDEsIFJlZ2lzdGVySUQgZGVzdDIpCisgICAg
eworICAgICAgICBtX2Fzc2VtYmxlci52bW92KGRlc3QxLCBkZXN0Miwgc3JjKTsKKyAgICB9CisK
KyAgICB2b2lkIG1vdmVJbnRzVG9Eb3VibGUoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNy
YzIsIEZQUmVnaXN0ZXJJRCBkZXN0LCBGUFJlZ2lzdGVySUQgc2NyYXRjaCkKKyAgICB7CisgICAg
ICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihkZXN0
LCBzcmMxLCBzcmMyKTsKKyAgICB9CisKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBv
cGVyYXRpb25zOgogICAgIC8vCiAgICAgLy8gVGhpcyBzZXQgb2YgY29uZGl0aW9uYWwgYnJhbmNo
IG9wZXJhdGlvbnMgYnJhbmNoIGJhc2VkCi0gICAgLy8gb24gdGhlIHJlc3VsdCBvZiBhbiBhcml0
aG1ldGljIG9wZXJhdGlvbi4gIFRoZSBvcGVyYXRpb24KKyAgICAvLyBvbiB0aGUgcmVzdWx0IG9m
IGFuIGFyaXRobWV0aWMgb3BlcmF0aW9uLiBUaGUgb3BlcmF0aW9uCiAgICAgLy8gaXMgcGVyZm9y
bWVkIGFzIG5vcm1hbCwgc3RvcmluZyB0aGUgcmVzdWx0LgogICAgIC8vCiAgICAgLy8gKiBqeiBv
cGVyYXRpb25zIGJyYW5jaCBpZiB0aGUgcmVzdWx0IGlzIHplcm8uCkBAIC0xNDk1LDcgKzE1NDAs
NyBAQCBwdWJsaWM6CiAKICAgICBDYWxsIG5lYXJDYWxsKCkKICAgICB7Ci0gICAgICAgIC8qIFdl
IG5lZWQgdHdvIHdvcmRzIGZvciByZWxheGF0aW9uLiAgKi8KKyAgICAgICAgLyogV2UgbmVlZCB0
d28gd29yZHMgZm9yIHJlbGF4YXRpb24uICovCiAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOwog
ICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKICAgICAgICAgbV9hc3NlbWJsZXIuamFsKCk7CkBA
IC0xNTgzLDggKzE2MjgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
c2x0dShkZXN0LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1vdmUobWFzaywgaW1tVGVtcFJlZ2lzdGVyKTsKLSAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFuZEluc24oY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJl
Z2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYW5kSW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFU
ZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBpZiAoY29uZCA9PSBa
ZXJvKQogICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsdGl1KGRlc3QsIGNtcFRlbXBSZWdp
c3RlciwgMSk7CiAgICAgICAgICAgICBlbHNlCkBAIC0xNjAzLDggKzE2NDcsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0dShkZXN0LCBNSVBTUmVnaXN0ZXJzOjp6
ZXJvLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1v
dmUobWFzaywgaW1tVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFuZElu
c24oY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YW5kSW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rl
cik7CiAgICAgICAgICAgICBpZiAoY29uZCA9PSBaZXJvKQogICAgICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLnNsdGl1KGRlc3QsIGNtcFRlbXBSZWdpc3RlciwgMSk7CiAgICAgICAgICAgICBlbHNl
CkBAIC0xNjgwLDYgKzE3MjMsMzQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdGFpbFJlY3Vy
c2l2ZUNhbGwoKTsKICAgICB9CiAKKyAgICB2b2lkIGxvYWRGbG9hdChCYXNlSW5kZXggYWRkcmVz
cywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQg
Pj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9m
aXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgIHNsbCAgICAgYWRkclRl
bXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICBhZGR1ICAgIGFk
ZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgbHdjMSAgICBkZXN0
LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
bHdjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFk
ZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1w
LCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAo
YWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgYWRkdSAgICBhZGRy
VGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICBsd2MxICAgIGRlc3QsIChhZGRy
ZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNj
YWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRk
clRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1
aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lz
dGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShkZXN0
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKQEAgLTE3MTAsNiArMTc4MSw2NSBA
QCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lkIGxvYWREb3VibGUoQmFzZUluZGV4
IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyNpZiBXVEZfTUlQU19JU0EoMSkK
KyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8
PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoK
KyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNz
LnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJl
c3MuYmFzZQorICAgICAgICAgICAgICAgIGx3YzEgICAgZGVzdCwgYWRkcmVzcy5vZmZzZXQoYWRk
clRlbXApCisgICAgICAgICAgICAgICAgbHdjMSAgICBkZXN0KzEsIChhZGRyZXNzLm9mZnNldCs0
KShhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwo
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKGRlc3QsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3
YzEoRlBSZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZz
ZXQgKyA0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg
ICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAg
ICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAg
ICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4g
MTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAor
ICAgICAgICAgICAgICAgIGx3YzEgICAgZGVzdCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShh
dCkKKyAgICAgICAgICAgICAgICBsd2MxICAgIGRlc3QrNCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhm
ZmZmICsgNCkoYXQpCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xs
KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdp
c3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBS
ZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKGRlc3QsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoRlBS
ZWdpc3RlcklEKGRlc3QgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQgKyA0
KTsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2
OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0
aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRy
VGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGxkYzEgICAgZGVz
dCwgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
bGRjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFk
ZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBp
bW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAg
YWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBsZGMx
ICAgIGRlc3QsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAqLwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5k
ZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAw
KSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5sZGMxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAg
ICAgfQorI2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBsb2FkRG91YmxlKGNvbnN0IHZvaWQqIGFk
ZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKQEAg
LTE3MzEsNiArMTg2MSwzMyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lkIHN0
b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAg
ICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMy
NzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAg
ICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5i
YXNlCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1w
KQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5i
YXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAg
ICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5i
YXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAw
eDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAs
IGltbVRlbXAKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYywgKGFkZHJlc3Mub2Zmc2V0ICYg
MHhmZmZmKShhdCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwo
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lz
dGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICB2b2lkIHN0b3Jl
RG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
QEAgLTE3NjIsMTcgKzE5MTksOTkgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgdm9p
ZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7
CisjaWYgV1RGX01JUFNfSVNBKDEpCisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3
NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lk
dGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwg
YWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRk
clRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNy
YywgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMr
MSwgKGFkZHJlc3Mub2Zmc2V0ICsgNCkoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoRlBSZWdpc3RlcklEKHNyYyArIDEpLCBhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzLm9mZnNldCArIDQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBh
ZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAs
IGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mu
b2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAs
IGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMsIChhZGRyZXNz
Lm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMrMSwgKGFk
ZHJlc3Mub2Zmc2V0ICYgMHhmZmZmICsgNCkoYXQpCisgICAgICAgICAgICAqLworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJl
c3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1w
UmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zd2Mx
KHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3Mub2Zmc2V0ICsgNCk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIGlmIChhZGRyZXNz
Lm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAg
ICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xs
ICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAg
ICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAg
ICAgICBzZGMxICAgIHNyYywgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAq
LworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mu
aW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xs
ICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAg
ICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAg
ICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAg
ICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAg
ICAgICAgICAgIHNkYzEgICAgc3JjLCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0KQorICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9m
ZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zm
c2V0KTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorCisgICAgdm9pZCBzdG9yZURvdWJsZShG
UFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyNpZiBXVEZfTUlQ
U19JU0EoMSkKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIs
IDApOworICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKEZQUmVnaXN0ZXJJRChzcmMgKyAxKSwgYWRk
clRlbXBSZWdpc3RlciwgNCk7CisjZWxzZQorICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRk
cmVzcyksIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zZGMxKHNyYywg
YWRkclRlbXBSZWdpc3RlciwgMCk7CisjZW5kaWYKKyAgICB9CisKICAgICB2b2lkIGFkZERvdWJs
ZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKKyAgICB2b2lkIGFkZERv
dWJsZShGUFJlZ2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZGQoZGVzdCwgb3AxLCBvcDIpOworICAg
IH0KKwogICAgIHZvaWQgYWRkRG91YmxlKEFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIGxvYWREb3VibGUoc3JjLCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgZnBUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAor
ICAgIHZvaWQgYWRkRG91YmxlKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB7CisgICAgICAgIGxvYWREb3VibGUoYWRkcmVzcy5tX3B0ciwgZnBUZW1wUmVn
aXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRlc3QsIGRlc3QsIGZwVGVtcFJlZ2lz
dGVyKTsKKyAgICB9CisKICAgICB2b2lkIHN1YkRvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YmQoZGVzdCwgZGVz
dCwgc3JjKTsKQEAgLTE4MjAsNiArMjA1OSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1i
bGVyLmN2dGR3KGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKKyAgICB2b2lkIGNvbnZl
cnRGbG9hdFRvRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCisgICAg
eworICAgICAgICBtX2Fzc2VtYmxlci5jdnRkcyhkc3QsIHNyYyk7CisgICAgfQorCisgICAgdm9p
ZCBjb252ZXJ0RG91YmxlVG9GbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0
KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuY3Z0c2QoZHN0LCBzcmMpOworICAgIH0KKwog
ICAgIHZvaWQgaW5zZXJ0UmVsYXhhdGlvbldvcmRzKCkKICAgICB7CiAgICAgICAgIC8qIFdlIG5l
ZWQgZm91ciB3b3JkcyBmb3IgcmVsYXhhdGlvbi4gKi8K
</data>
<flag name="review"
          id="181407"
          type_id="1"
          status="-"
          setter="oliver"
    />
    <flag name="commit-queue"
          id="181408"
          type_id="3"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168785</attachid>
            <date>2012-10-15 14:26:16 -0700</date>
            <delta_ts>2012-10-16 01:14:12 -0700</delta_ts>
            <desc>Many missing MIPS functions.</desc>
            <filename>functions.diff</filename>
            <type>text/plain</type>
            <size>18877</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDgzN2M1ZWMuLjYxMDdiY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEyLTEwLTE1ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CiAKKyAgICAgICAgQWRkIG1pc3NpbmcgTUlQUyBm
dW5jdGlvbnMgdG8gYXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4K
KworICAgICAgICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbnMgaW4gTWFjcm9Bc3NlbWJsZXJN
SVBTIGFuZCBNSVBTQXNzZW1ibGVyLgorCisgICAgICAgICogYXNzZW1ibGVyL01JUFNBc3NlbWJs
ZXIuaDoKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGIpOgorICAgICAgICAoTUlQU0Fz
c2VtYmxlcik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmxoKToKKyAgICAgICAgKEpT
Qzo6TUlQU0Fzc2VtYmxlcjo6bWZoYzEpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpj
dnRkcyk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmN2dHNkKToKKyAgICAgICAgKEpT
Qzo6TUlQU0Fzc2VtYmxlcjo6dm1vdik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQ4U2lnbmVk
KToKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyTUlQUyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyTUlQUzo6bG9hZDE2U2lnbmVkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJN
SVBTOjptb3ZlRG91YmxlVG9JbnRzKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBT
Ojptb3ZlSW50c1RvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjps
b2FkRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWREb3VibGUp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlRmxvYXQpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJNSVBTOjphZGREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlck1JUFM6OmNvbnZlcnRGbG9hdFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJNSVBTOjpjb252ZXJ0RG91YmxlVG9GbG9hdCk6CisKKzIwMTItMTAtMTUgIEJhbGF6cyBL
aWx2YWR5ICA8a2lsdmFkeWJAaG9tZWppbm5pLmNvbT4KKwogICAgICAgICBNSVBTIGFzc2VtYmxl
ciBjb2Rpbmctc3R5bGUgZml4LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTkzNTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NSVBTQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01JUFNBc3NlbWJsZXIuaAppbmRleCBmOTA2NDdhLi5lMTM3Mzc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaApAQCAtMzUwLDYgKzM1MCwx
MiBAQCBwdWJsaWM6CiAgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDYgfCAocmQgPDwgT1BfU0hf
UkQpIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykpOwogICAgIH0KIAorICAg
IHZvaWQgbGIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNldCkKKyAgICB7
CisgICAgICAgIGVtaXRJbnN0KDB4ODAwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8
IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgbG9hZERlbGF5Tm9wKCk7
CisgICAgfQorCiAgICAgdm9pZCBsYnUoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50
IG9mZnNldCkKICAgICB7CiAgICAgICAgIGVtaXRJbnN0KDB4OTAwMDAwMDAgfCAocnQgPDwgT1Bf
U0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKQEAgLTM3NCw2
ICszODAsMTIgQEAgcHVibGljOgogICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAgICB9CiAKKyAg
ICB2b2lkIGxoKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCisgICAg
eworICAgICAgICBlbWl0SW5zdCgweDg0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8
PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGxvYWREZWxheU5vcCgp
OworICAgIH0KKwogICAgIHZvaWQgbGh1KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGlu
dCBvZmZzZXQpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDk0MDAwMDAwIHwgKHJ0IDw8IE9Q
X1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CkBAIC01MTAs
NiArNTIyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgY29wRGVsYXlOb3AoKTsKICAgICB9CiAKKyAg
ICB2b2lkIG1maGMxKFJlZ2lzdGVySUQgcnQsIEZQUmVnaXN0ZXJJRCBmcykKKyAgICB7CisgICAg
ICAgIGVtaXRJbnN0KDB4NDQ2MDAwMDAgfCAoZnMgPDwgT1BfU0hfRlMpIHwgKHJ0IDw8IE9QX1NI
X1JUKSk7CisgICAgICAgIGNvcERlbGF5Tm9wKCk7CisgICAgfQorCiAgICAgdm9pZCBzcXJ0ZChG
UFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcykKICAgICB7CiAgICAgICAgIGVtaXRJbnN0
KDB4NDYyMDAwMDQgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7CkBAIC01
MjUsMTEgKzU0MywyMSBAQCBwdWJsaWM6CiAgICAgICAgIGVtaXRJbnN0KDB4NDY4MDAwMjEgfCAo
ZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7CiAgICAgfQogCisgICAgdm9pZCBj
dnRkcyhGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcykKKyAgICB7CisgICAgICAgIGVt
aXRJbnN0KDB4NDYwMDAwMjEgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7
CisgICAgfQorCiAgICAgdm9pZCBjdnR3ZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBm
cykKICAgICB7CiAgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMjQgfCAoZmQgPDwgT1BfU0hfRkQp
IHwgKGZzIDw8IE9QX1NIX0ZTKSk7CiAgICAgfQogCisgICAgdm9pZCBjdnRzZChGUFJlZ2lzdGVy
SUQgZmQsIEZQUmVnaXN0ZXJJRCBmcykKKyAgICB7CisgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAw
MjAgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7CisgICAgfQorCiAgICAg
dm9pZCBjZXFkKEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQogICAgIHsKICAgICAg
ICAgZW1pdEluc3QoMHg0NjIwMDAzMiB8IChmcyA8PCBPUF9TSF9GUykgfCAoZnQgPDwgT1BfU0hf
RlQpKTsKQEAgLTYzOSw2ICs2NjcsMTkgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgZGVidWdP
ZmZzZXQoKSB7IHJldHVybiBtX2J1ZmZlci5kZWJ1Z09mZnNldCgpOyB9CiAKKyAgICAvLyBBc3Nl
bWJseSBoZWxwZXJzIGZvciBtb3ZpbmcgZGF0YSBiZXR3ZWVuIGZwIGFuZCByZWdpc3RlcnMuCisg
ICAgdm9pZCB2bW92KFJlZ2lzdGVySUQgcmQxLCBSZWdpc3RlcklEIHJkMiwgRlBSZWdpc3RlcklE
IHJuKQorICAgIHsKKyAgICAgICAgbWZjMShyZDEsIHJuKTsKKyAgICAgICAgbWZjMShyZDIsIEZQ
UmVnaXN0ZXJJRChybiArIDEpKTsKKyAgICB9CisKKyAgICB2b2lkIHZtb3YoRlBSZWdpc3RlcklE
IHJkLCBSZWdpc3RlcklEIHJuMSwgUmVnaXN0ZXJJRCBybjIpCisgICAgeworICAgICAgICBtdGMx
KHJuMSwgcmQpOworICAgICAgICBtdGMxKHJuMiwgRlBSZWdpc3RlcklEKHJkICsgMSkpOworICAg
IH0KKwogICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDYWxsUmV0dXJuT2Zmc2V0KEFzc2VtYmxlckxh
YmVsIGNhbGwpCiAgICAgewogICAgICAgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgYWZ0ZXIg
YSBjYWxsIGFuZCBhIGRlbGF5IHNsb3QgaW5zdHJ1Y3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IGY5YjJlM2Qu
LmIwM2FiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtNTY5LDYgKzU2OSwzNCBAQCBwdWJsaWM6CiAgICAgICAg
IH0KICAgICB9CiAgICAgCisgICAgdm9pZCBsb2FkOFNpZ25lZChCYXNlSW5kZXggYWRkcmVzcywg
UmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0z
Mjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRX
aWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVt
cCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGxiICAgICBkZXN0LCBhZGRy
ZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVz
dCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmlu
ZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRl
bXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mu
b2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFk
ZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgbGIgICAgIGRlc3QsIChhZGRyZXNzLm9mZnNl
dCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1w
UmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1U
ZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBs
b2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0g
MzI3NjcKQEAgLTc1Myw2ICs3ODEsMzQgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisg
ICAgdm9pZCBsb2FkMTZTaWduZWQoQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB7CisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5v
ZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAg
ICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwg
YWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1w
LCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsaCAgICAgZGVzdCwgYWRkcmVzcy5vZmZz
ZXQoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xs
KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGgoZGVzdCwgYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBh
ZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAs
IGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mu
b2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAs
IGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgbGggICAgIGRlc3QsIChhZGRyZXNz
Lm9mZnNldCAmIDB4ZmZmZikoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
bHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7Cisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVn
aXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5saChkZXN0
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICBEYXRhTGFiZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklE
IHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9maXhlZFdpZHRoID0gdHJ1
ZTsKQEAgLTEyNjEsNiArMTMxNywxNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fZml4ZWRXaWR0aCA9
IGZhbHNlOwogICAgIH0KIAorICAgIHZvaWQgbW92ZURvdWJsZVRvSW50cyhGUFJlZ2lzdGVySUQg
c3JjLCBSZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAgICAg
bV9hc3NlbWJsZXIudm1vdihkZXN0MSwgZGVzdDIsIHNyYyk7CisgICAgfQorCisgICAgdm9pZCBt
b3ZlSW50c1RvRG91YmxlKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBGUFJlZ2lz
dGVySUQgZGVzdCwgRlBSZWdpc3RlcklEIHNjcmF0Y2gpCisgICAgeworICAgICAgICBVTlVTRURf
UEFSQU0oc2NyYXRjaCk7CisgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZGVzdCwgc3JjMSwgc3Jj
Mik7CisgICAgfQorCiAgICAgLy8gQXJpdGhtZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoK
ICAgICAvLwogICAgIC8vIFRoaXMgc2V0IG9mIGNvbmRpdGlvbmFsIGJyYW5jaCBvcGVyYXRpb25z
IGJyYW5jaCBiYXNlZApAQCAtMTY1Niw2ICsxNzIzLDM0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIHRhaWxSZWN1cnNpdmVDYWxsKCk7CiAgICAgfQogCisgICAgdm9pZCBsb2FkRmxvYXQoQmFz
ZUluZGV4IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGFk
ZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAg
ICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBz
bGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAg
ICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAg
IGx3YzEgICAgZGVzdCwgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAgKi8K
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmlu
ZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRl
bXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAg
IGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRk
dSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGx1aSAg
ICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAg
IGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgbHdjMSAg
ICBkZXN0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0KQorICAgICAgICAgICAgICovCisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRl
eCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDAp
ID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rlciwg
YWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAg
ICB9CisgICAgfQorCiAgICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAjaWYgV1RGX01JUFNfSVNBKDEpCkBAIC0xNjg2
LDYgKzE3ODEsNjUgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgdm9pZCBsb2FkRG91
YmxlKEJhc2VJbmRleCBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisjaWYgV1RG
X01JUFNfSVNBKDEpCisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRk
cmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAg
ICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFk
ZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsd2MxICAgIGRlc3QsIGFkZHJl
c3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgICAgIGx3YzEgICAgZGVzdCsxLCAoYWRk
cmVzcy5vZmZzZXQrNCkoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdj
MShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5sd2MxKEZQUmVnaXN0ZXJJRChkZXN0ICsgMSksIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3Mub2Zmc2V0ICsgNCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgor
ICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVz
cy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQg
KyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRl
bXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBsd2MxICAgIGRlc3QsIChhZGRyZXNzLm9mZnNl
dCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgICAgbHdjMSAgICBkZXN0KzQsIChhZGRyZXNz
Lm9mZnNldCAmIDB4ZmZmZiArIDQpKGF0KQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNj
YWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRk
clRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1
aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lz
dGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShkZXN0
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5sd2MxKEZQUmVnaXN0ZXJJRChkZXN0ICsgMSksIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJl
c3Mub2Zmc2V0ICsgNCk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIGlmIChhZGRyZXNzLm9m
ZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYm
ICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAg
ICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAg
IGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAg
ICBsZGMxICAgIGRlc3QsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8K
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmlu
ZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRl
bXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmxkYzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwg
ICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAg
ICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAg
ICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAg
ICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAg
ICAgICAgICAgbGRjMSAgICBkZXN0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0KQorICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9m
ZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIubGRjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9m
ZnNldCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgbG9hZERvdWJsZShj
b25zdCB2b2lkKiBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAjaWYgV1RGX01J
UFNfSVNBKDEpCkBAIC0xNzA3LDYgKzE4NjEsMzQgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQog
CisgICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEJhc2VJbmRleCBhZGRyZXNz
KQorICAgIHsKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNz
Lm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAg
ICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4
LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRl
bXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjLCBhZGRyZXNzLm9m
ZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5z
bGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKHNyYywgYWRk
clRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4
LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRl
bXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJl
c3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRl
bXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMsIChhZGRy
ZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVp
KGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0
ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKHNyYywg
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQorCiAg
ICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcykKICAgICB7CiAjaWYgV1RGX01JUFNfSVNBKDEpCkBAIC0xNzM3LDE3ICsxOTE5LDk5IEBA
IHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAorICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3Rl
cklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworI2lmIFdURl9NSVBTX0lTQSgxKQor
ICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9
IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgor
ICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVz
cy5iYXNlCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMsIGFkZHJlc3Mub2Zmc2V0KGFkZHJU
ZW1wKQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjKzEsIChhZGRyZXNzLm9mZnNldCArIDQp
KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlciwg
YWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zd2Mx
KEZQUmVnaXN0ZXJJRChzcmMgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQg
KyA0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAg
c2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAg
ICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAg
ICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYK
KyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAg
ICAgICAgICAgICAgIHN3YzEgICAgc3JjLCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0KQor
ICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjKzEsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZiAr
IDQpKGF0KQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIs
IChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0
ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoRlBSZWdpc3Rl
cklEKHNyYyArIDEpLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCArIDQpOworICAg
ICAgICB9CisjZWxzZQorICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFk
ZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7Cisg
ICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3Mu
aW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBh
ZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgc2RjMSAgICBzcmMsIGFkZHJl
c3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNkYzEoc3Jj
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3Mu
aW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBh
ZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAo
YWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBh
ZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBzZGMxICAgIHNyYywg
KGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICovCisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBS
ZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNkYzEo
c3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyNlbmRp
ZgorICAgIH0KKworICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgY29uc3Qg
dm9pZCogYWRkcmVzcykKKyAgICB7CisjaWYgV1RGX01JUFNfSVNBKDEpCisgICAgICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1fYXNz
ZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCAwKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1wUmVnaXN0ZXIsIDQpOworI2Vs
c2UKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIDApOwor
I2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBhZGREb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBS
ZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRlc3QsIGRl
c3QsIHNyYyk7CiAgICAgfQogCisgICAgdm9pZCBhZGREb3VibGUoRlBSZWdpc3RlcklEIG9wMSwg
RlBSZWdpc3RlcklEIG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fz
c2VtYmxlci5hZGRkKGRlc3QsIG9wMSwgb3AyKTsKKyAgICB9CisKICAgICB2b2lkIGFkZERvdWJs
ZShBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBsb2FkRG91
YmxlKHNyYywgZnBUZW1wUmVnaXN0ZXIpOwogICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRlc3Qs
IGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKKyAgICB2b2lkIGFkZERvdWJsZShBYnNv
bHV0ZUFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBs
b2FkRG91YmxlKGFkZHJlc3MubV9wdHIsIGZwVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkZChkZXN0LCBkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CisgICAgfQorCiAgICAgdm9p
ZCBzdWJEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBtX2Fzc2VtYmxlci5zdWJkKGRlc3QsIGRlc3QsIHNyYyk7CkBAIC0xNzk1LDYgKzIw
NTksMTYgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5jdnRkdyhkZXN0LCBmcFRlbXBS
ZWdpc3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBjb252ZXJ0RmxvYXRUb0RvdWJsZShGUFJlZ2lz
dGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIu
Y3Z0ZHMoZHN0LCBzcmMpOworICAgIH0KKworICAgIHZvaWQgY29udmVydERvdWJsZVRvRmxvYXQo
RlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fYXNz
ZW1ibGVyLmN2dHNkKGRzdCwgc3JjKTsKKyAgICB9CisKICAgICB2b2lkIGluc2VydFJlbGF4YXRp
b25Xb3JkcygpCiAgICAgewogICAgICAgICAvKiBXZSBuZWVkIGZvdXIgd29yZHMgZm9yIHJlbGF4
YXRpb24uICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168883</attachid>
            <date>2012-10-16 01:14:12 -0700</date>
            <delta_ts>2012-10-16 01:19:19 -0700</delta_ts>
            <desc>Many missing MIPS functions, rebased</desc>
            <filename>functions.diff</filename>
            <type>text/plain</type>
            <size>18886</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL29yaWdpbi9tYXN0ZXI6U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZyBiL2xlbnktdG1wOlNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMWJjYjBi
NC4uMWU0OTIwNiAxMDA2NDQKLS0tIGEvb3JpZ2luL21hc3RlcjpTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL2xlbnktdG1wOlNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0xMC0xNSAgQmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5
YkBob21lamlubmkuY29tPgorCisgICAgICAgIEFkZCBtaXNzaW5nIE1JUFMgZnVuY3Rpb25zIHRv
IGFzc2VtYmxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk4ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCisKKyAgICAgICAg
SW1wbGVtZW50IG1pc3NpbmcgZnVuY3Rpb25zIGluIE1hY3JvQXNzZW1ibGVyTUlQUyBhbmQgTUlQ
U0Fzc2VtYmxlci4KKworICAgICAgICAqIGFzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmg6CisgICAg
ICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmxiKToKKyAgICAgICAgKE1JUFNBc3NlbWJsZXIpOgor
ICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpsaCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3Nl
bWJsZXI6Om1maGMxKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6Y3Z0ZHMpOgorICAg
ICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpjdnRzZCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3Nl
bWJsZXI6OnZtb3YpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkOFNpZ25lZCk6CisgICAgICAg
IChNYWNyb0Fzc2VtYmxlck1JUFMpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6
OmxvYWQxNlNpZ25lZCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bW92ZURv
dWJsZVRvSW50cyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bW92ZUludHNU
b0RvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZEZsb2F0KToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkRG91YmxlKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJNSVBTOjpzdG9yZURvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyTUlQUzo6YWRkRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpj
b252ZXJ0RmxvYXRUb0RvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6
Y29udmVydERvdWJsZVRvRmxvYXQpOgorCiAyMDEyLTEwLTE1ICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBDb3BpZWRTcGFjZSBhbmQgTWFy
a2VkU3BhY2UgcmVnaW9ucyBpbmRlcGVuZGVudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaAppbmRleCBmOTA2NDdhLi5lMTM3Mzc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaApAQCAtMzUw
LDYgKzM1MCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGVtaXRJbnN0KDB4MDAwMDAwMDYgfCAocmQg
PDwgT1BfU0hfUkQpIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykpOwogICAg
IH0KIAorICAgIHZvaWQgbGIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBycywgaW50IG9mZnNl
dCkKKyAgICB7CisgICAgICAgIGVtaXRJbnN0KDB4ODAwMDAwMDAgfCAocnQgPDwgT1BfU0hfUlQp
IHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsKKyAgICAgICAgbG9hZERl
bGF5Tm9wKCk7CisgICAgfQorCiAgICAgdm9pZCBsYnUoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJ
RCBycywgaW50IG9mZnNldCkKICAgICB7CiAgICAgICAgIGVtaXRJbnN0KDB4OTAwMDAwMDAgfCAo
cnQgPDwgT1BfU0hfUlQpIHwgKHJzIDw8IE9QX1NIX1JTKSB8IChvZmZzZXQgJiAweGZmZmYpKTsK
QEAgLTM3NCw2ICszODAsMTIgQEAgcHVibGljOgogICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAg
ICB9CiAKKyAgICB2b2lkIGxoKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZz
ZXQpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDg0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JU
KSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGxvYWRE
ZWxheU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgbGh1KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVy
SUQgcnMsIGludCBvZmZzZXQpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDk0MDAwMDAwIHwg
KHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7
CkBAIC01MTAsNiArNTIyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgY29wRGVsYXlOb3AoKTsKICAg
ICB9CiAKKyAgICB2b2lkIG1maGMxKFJlZ2lzdGVySUQgcnQsIEZQUmVnaXN0ZXJJRCBmcykKKyAg
ICB7CisgICAgICAgIGVtaXRJbnN0KDB4NDQ2MDAwMDAgfCAoZnMgPDwgT1BfU0hfRlMpIHwgKHJ0
IDw8IE9QX1NIX1JUKSk7CisgICAgICAgIGNvcERlbGF5Tm9wKCk7CisgICAgfQorCiAgICAgdm9p
ZCBzcXJ0ZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcykKICAgICB7CiAgICAgICAg
IGVtaXRJbnN0KDB4NDYyMDAwMDQgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZT
KSk7CkBAIC01MjUsMTEgKzU0MywyMSBAQCBwdWJsaWM6CiAgICAgICAgIGVtaXRJbnN0KDB4NDY4
MDAwMjEgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7CiAgICAgfQogCisg
ICAgdm9pZCBjdnRkcyhGUFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcykKKyAgICB7Cisg
ICAgICAgIGVtaXRJbnN0KDB4NDYwMDAwMjEgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9Q
X1NIX0ZTKSk7CisgICAgfQorCiAgICAgdm9pZCBjdnR3ZChGUFJlZ2lzdGVySUQgZmQsIEZQUmVn
aXN0ZXJJRCBmcykKICAgICB7CiAgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMjQgfCAoZmQgPDwg
T1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7CiAgICAgfQogCisgICAgdm9pZCBjdnRzZChG
UFJlZ2lzdGVySUQgZmQsIEZQUmVnaXN0ZXJJRCBmcykKKyAgICB7CisgICAgICAgIGVtaXRJbnN0
KDB4NDYyMDAwMjAgfCAoZmQgPDwgT1BfU0hfRkQpIHwgKGZzIDw8IE9QX1NIX0ZTKSk7CisgICAg
fQorCiAgICAgdm9pZCBjZXFkKEZQUmVnaXN0ZXJJRCBmcywgRlBSZWdpc3RlcklEIGZ0KQogICAg
IHsKICAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAzMiB8IChmcyA8PCBPUF9TSF9GUykgfCAoZnQg
PDwgT1BfU0hfRlQpKTsKQEAgLTYzOSw2ICs2NjcsMTkgQEAgcHVibGljOgogCiAgICAgdW5zaWdu
ZWQgZGVidWdPZmZzZXQoKSB7IHJldHVybiBtX2J1ZmZlci5kZWJ1Z09mZnNldCgpOyB9CiAKKyAg
ICAvLyBBc3NlbWJseSBoZWxwZXJzIGZvciBtb3ZpbmcgZGF0YSBiZXR3ZWVuIGZwIGFuZCByZWdp
c3RlcnMuCisgICAgdm9pZCB2bW92KFJlZ2lzdGVySUQgcmQxLCBSZWdpc3RlcklEIHJkMiwgRlBS
ZWdpc3RlcklEIHJuKQorICAgIHsKKyAgICAgICAgbWZjMShyZDEsIHJuKTsKKyAgICAgICAgbWZj
MShyZDIsIEZQUmVnaXN0ZXJJRChybiArIDEpKTsKKyAgICB9CisKKyAgICB2b2lkIHZtb3YoRlBS
ZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuMSwgUmVnaXN0ZXJJRCBybjIpCisgICAgeworICAg
ICAgICBtdGMxKHJuMSwgcmQpOworICAgICAgICBtdGMxKHJuMiwgRlBSZWdpc3RlcklEKHJkICsg
MSkpOworICAgIH0KKwogICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDYWxsUmV0dXJuT2Zmc2V0KEFz
c2VtYmxlckxhYmVsIGNhbGwpCiAgICAgewogICAgICAgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3Mg
aXMgYWZ0ZXIgYSBjYWxsIGFuZCBhIGRlbGF5IHNsb3QgaW5zdHJ1Y3Rpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4
IGY5YjJlM2QuLmIwM2FiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtNTY5LDYgKzU2OSwzNCBAQCBwdWJsaWM6
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdm9pZCBsb2FkOFNpZ25lZChCYXNlSW5kZXgg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zm
c2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYg
IW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFk
ZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAg
ICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGxiICAgICBk
ZXN0LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAqLworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJl
c3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIubGIoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVt
cCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwg
KGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgIGFkZHUgICAgYWRk
clRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgbGIgICAgIGRlc3QsIChhZGRy
ZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNj
YWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRk
clRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1
aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lz
dGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwg
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQorCiAg
ICAgdm9pZCBsb2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5v
ZmZzZXQgPD0gMzI3NjcKQEAgLTc1Myw2ICs3ODEsMzQgQEAgcHVibGljOgogICAgICAgICB9CiAg
ICAgfQogCisgICAgdm9pZCBsb2FkMTZTaWduZWQoQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVy
SUQgZGVzdCkKKyAgICB7CisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYg
YWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsK
KyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVz
cy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAs
IGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsaCAgICAgZGVzdCwgYWRk
cmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGgoZGVz
dCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNz
LmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwg
YWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwg
KGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICAgIGFkZHUgICAg
YWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgbGggICAgIGRlc3Qs
IChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgs
IGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+
PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5saChkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0K
KyAgICB9CisKICAgICBEYXRhTGFiZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChS
ZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9maXhlZFdp
ZHRoID0gdHJ1ZTsKQEAgLTEyNjEsNiArMTMxNywxNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fZml4
ZWRXaWR0aCA9IGZhbHNlOwogICAgIH0KIAorICAgIHZvaWQgbW92ZURvdWJsZVRvSW50cyhGUFJl
Z2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsK
KyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihkZXN0MSwgZGVzdDIsIHNyYyk7CisgICAgfQorCisg
ICAgdm9pZCBtb3ZlSW50c1RvRG91YmxlKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMy
LCBGUFJlZ2lzdGVySUQgZGVzdCwgRlBSZWdpc3RlcklEIHNjcmF0Y2gpCisgICAgeworICAgICAg
ICBVTlVTRURfUEFSQU0oc2NyYXRjaCk7CisgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZGVzdCwg
c3JjMSwgc3JjMik7CisgICAgfQorCiAgICAgLy8gQXJpdGhtZXRpYyBjb250cm9sIGZsb3cgb3Bl
cmF0aW9uczoKICAgICAvLwogICAgIC8vIFRoaXMgc2V0IG9mIGNvbmRpdGlvbmFsIGJyYW5jaCBv
cGVyYXRpb25zIGJyYW5jaCBiYXNlZApAQCAtMTY1Niw2ICsxNzIzLDM0IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHRhaWxSZWN1cnNpdmVDYWxsKCk7CiAgICAgfQogCisgICAgdm9pZCBsb2Fk
RmxvYXQoQmFzZUluZGV4IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAg
ICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2
NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAg
ICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisg
ICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAg
ICAgICAgICAgIGx3YzEgICAgZGVzdCwgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVz
cy5vZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAg
ICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAg
ICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAg
ICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAg
ICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAg
ICAgbHdjMSAgICBkZXN0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0KQorICAgICAgICAg
ICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1
KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQg
KyAweDgwMDApID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBS
ZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQp
OworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAjaWYgV1RGX01JUFNfSVNBKDEp
CkBAIC0xNjg2LDYgKzE3ODEsNjUgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgdm9p
ZCBsb2FkRG91YmxlKEJhc2VJbmRleCBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7
CisjaWYgV1RGX01JUFNfSVNBKDEpCisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3
NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lk
dGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwg
YWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRk
clRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsd2MxICAgIGRl
c3QsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgICAgIGx3YzEgICAgZGVz
dCsxLCAoYWRkcmVzcy5vZmZzZXQrNCkoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIubHdjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKEZQUmVnaXN0ZXJJRChkZXN0ICsgMSksIGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0ICsgNCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgs
IGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVt
cCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVz
cy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVt
cCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBsd2MxICAgIGRlc3QsIChhZGRy
ZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAgICAgbHdjMSAgICBkZXN0KzQs
IChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZiArIDQpKGF0KQorICAgICAgICAgICAgKi8KKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBh
ZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdp
c3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4g
MTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
bHdjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5sd2MxKEZQUmVnaXN0ZXJJRChkZXN0ICsgMSksIGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3Mub2Zmc2V0ICsgNCk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIGlmIChh
ZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAg
ICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg
ICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAg
ICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAg
ICAgICAgICAgICBsZGMxICAgIGRlc3QsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmxkYzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVz
cy5vZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAg
ICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAg
ICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAg
ICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+
PiAxNgorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1w
CisgICAgICAgICAgICAgICAgbGRjMSAgICBkZXN0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYp
KGF0KQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVz
cy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChh
ZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGRjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgbG9h
ZERvdWJsZShjb25zdCB2b2lkKiBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAj
aWYgV1RGX01JUFNfSVNBKDEpCkBAIC0xNzA3LDYgKzE4NjEsMzQgQEAgcHVibGljOgogI2VuZGlm
CiAgICAgfQogCisgICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEJhc2VJbmRl
eCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAm
JiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkg
eworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVt
cCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjLCBh
ZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2Fs
ZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zd2Mx
KHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVt
cCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVt
cCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICAgIGFkZHUg
ICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgc3djMSAgICBz
cmMsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAgICAgICAgICAqLworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAx
Nik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5z
d2MxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9Cisg
ICAgfQorCiAgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcykKICAgICB7CiAjaWYgV1RGX01JUFNfSVNBKDEpCkBAIC0xNzM3LDE3ICsx
OTE5LDk5IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAorICAgIHZvaWQgc3RvcmVEb3VibGUo
RlBSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworI2lmIFdURl9NSVBT
X0lTQSgxKQorICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mu
b2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAg
ICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgs
IGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVt
cCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgc3djMSAgICBzcmMsIGFkZHJlc3Mub2Zm
c2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjKzEsIChhZGRyZXNzLm9m
ZnNldCArIDQpKGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoc3Jj
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zd2MxKEZQUmVnaXN0ZXJJRChzcmMgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVz
cy5vZmZzZXQgKyA0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAg
ICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQor
ICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UK
KyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAw
MCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1t
VGVtcAorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjLCAoYWRkcmVzcy5vZmZzZXQgJiAweGZm
ZmYpKGF0KQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjKzEsIChhZGRyZXNzLm9mZnNldCAm
IDB4ZmZmZiArIDQpKGF0KQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1w
UmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1U
ZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEo
RlBSZWdpc3RlcklEKHNyYyArIDEpLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCAr
IDQpOworICAgICAgICB9CisjZWxzZQorICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMy
NzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdp
ZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFk
ZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgc2RjMSAgICBz
cmMsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNz
LnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rlciwg
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNkYzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFk
ZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBp
bW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAg
YWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBzZGMx
ICAgIHNyYywgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICovCisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRl
eCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDAp
ID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rlciwg
YWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNkYzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAg
IH0KKyNlbmRpZgorICAgIH0KKworICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNy
YywgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB7CisjaWYgV1RGX01JUFNfSVNBKDEpCisgICAg
ICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAg
ICAgIG1fYXNzZW1ibGVyLnN3YzEoc3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCAwKTsKKyAgICAgICAg
bV9hc3NlbWJsZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1wUmVnaXN0ZXIs
IDQpOworI2Vsc2UKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc2RjMShzcmMsIGFkZHJUZW1wUmVnaXN0
ZXIsIDApOworI2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBhZGREb3VibGUoRlBSZWdpc3RlcklE
IHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5hZGRk
KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCisgICAgdm9pZCBhZGREb3VibGUoRlBSZWdpc3Rl
cklEIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAg
ICAgICBtX2Fzc2VtYmxlci5hZGRkKGRlc3QsIG9wMSwgb3AyKTsKKyAgICB9CisKICAgICB2b2lk
IGFkZERvdWJsZShBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAg
ICBsb2FkRG91YmxlKHNyYywgZnBUZW1wUmVnaXN0ZXIpOwogICAgICAgICBtX2Fzc2VtYmxlci5h
ZGRkKGRlc3QsIGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKKyAgICB2b2lkIGFkZERv
dWJsZShBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgewor
ICAgICAgICBsb2FkRG91YmxlKGFkZHJlc3MubV9wdHIsIGZwVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgbV9hc3NlbWJsZXIuYWRkZChkZXN0LCBkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CisgICAgfQor
CiAgICAgdm9pZCBzdWJEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zdWJkKGRlc3QsIGRlc3QsIHNyYyk7CkBAIC0x
Nzk1LDYgKzIwNTksMTYgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5jdnRkdyhkZXN0
LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBjb252ZXJ0RmxvYXRUb0RvdWJs
ZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9h
c3NlbWJsZXIuY3Z0ZHMoZHN0LCBzcmMpOworICAgIH0KKworICAgIHZvaWQgY29udmVydERvdWJs
ZVRvRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmN2dHNkKGRzdCwgc3JjKTsKKyAgICB9CisKICAgICB2b2lkIGluc2Vy
dFJlbGF4YXRpb25Xb3JkcygpCiAgICAgewogICAgICAgICAvKiBXZSBuZWVkIGZvdXIgd29yZHMg
Zm9yIHJlbGF4YXRpb24uICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168894</attachid>
            <date>2012-10-16 01:59:47 -0700</date>
            <delta_ts>2012-10-16 02:08:35 -0700</delta_ts>
            <desc>Many missing MIPS functions, rebased #2</desc>
            <filename>functions.diff</filename>
            <type>text/plain</type>
            <size>18386</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFiY2IwYjQuLjFlNDkyMDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTEwLTE1ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgQWRkIG1pc3NpbmcgTUlQUyBm
dW5jdGlvbnMgdG8gYXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4K
KworICAgICAgICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbnMgaW4gTWFjcm9Bc3NlbWJsZXJN
SVBTIGFuZCBNSVBTQXNzZW1ibGVyLgorCisgICAgICAgICogYXNzZW1ibGVyL01JUFNBc3NlbWJs
ZXIuaDoKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGIpOgorICAgICAgICAoTUlQU0Fz
c2VtYmxlcik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmxoKToKKyAgICAgICAgKEpT
Qzo6TUlQU0Fzc2VtYmxlcjo6bWZoYzEpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVyOjpj
dnRkcyk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmN2dHNkKToKKyAgICAgICAgKEpT
Qzo6TUlQU0Fzc2VtYmxlcjo6dm1vdik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQ4U2lnbmVk
KToKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyTUlQUyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyTUlQUzo6bG9hZDE2U2lnbmVkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJN
SVBTOjptb3ZlRG91YmxlVG9JbnRzKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBT
Ojptb3ZlSW50c1RvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjps
b2FkRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWREb3VibGUp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlRmxvYXQpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJNSVBTOjphZGREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlck1JUFM6OmNvbnZlcnRGbG9hdFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJNSVBTOjpjb252ZXJ0RG91YmxlVG9GbG9hdCk6CisKIDIwMTItMTAtMTUgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIENvcGllZFNw
YWNlIGFuZCBNYXJrZWRTcGFjZSByZWdpb25zIGluZGVwZW5kZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oCmluZGV4IGQzZjhhZjkuLjhlOWQx
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2Vt
Ymxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxl
ci5oCkBAIC0zNzAsNiArMzcwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgfCAocnMg
PDwgT1BfU0hfUlMpKTsKICAgICB9CiAKKyAgICB2b2lkIGxiKFJlZ2lzdGVySUQgcnQsIFJlZ2lz
dGVySUQgcnMsIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDgwMDAwMDAw
IHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZm
KSk7CisgICAgICAgIGxvYWREZWxheU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgbGJ1KFJlZ2lz
dGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewogICAgICAgICBlbWl0
SW5zdCgweDkwMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKQEAg
LTM5OCw2ICs0MDQsMTIgQEAgcHVibGljOgogICAgICAgICBsb2FkRGVsYXlOb3AoKTsKICAgICB9
CiAKKyAgICB2b2lkIGxoKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQp
CisgICAgeworICAgICAgICBlbWl0SW5zdCgweDg0MDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8
IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7CisgICAgICAgIGxvYWREZWxh
eU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgbGh1KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQg
cnMsIGludCBvZmZzZXQpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDk0MDAwMDAwIHwgKHJ0
IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykKQEAgLTU2MSwxMSArNTczLDIxIEBAIHB1
YmxpYzoKICAgICAgICAgZW1pdEluc3QoMHg0NjgwMDAyMSB8IChmZCA8PCBPUF9TSF9GRCkgfCAo
ZnMgPDwgT1BfU0hfRlMpKTsKICAgICB9CiAKKyAgICB2b2lkIGN2dGRzKEZQUmVnaXN0ZXJJRCBm
ZCwgRlBSZWdpc3RlcklEIGZzKQorICAgIHsKKyAgICAgICAgZW1pdEluc3QoMHg0NjAwMDAyMSB8
IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKKyAgICB9CisKICAgICB2b2lk
IGN2dHdkKEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklEIGZzKQogICAgIHsKICAgICAgICAg
ZW1pdEluc3QoMHg0NjIwMDAyNCB8IChmZCA8PCBPUF9TSF9GRCkgfCAoZnMgPDwgT1BfU0hfRlMp
KTsKICAgICB9CiAKKyAgICB2b2lkIGN2dHNkKEZQUmVnaXN0ZXJJRCBmZCwgRlBSZWdpc3RlcklE
IGZzKQorICAgIHsKKyAgICAgICAgZW1pdEluc3QoMHg0NjIwMDAyMCB8IChmZCA8PCBPUF9TSF9G
RCkgfCAoZnMgPDwgT1BfU0hfRlMpKTsKKyAgICB9CisKICAgICB2b2lkIGNlcWQoRlBSZWdpc3Rl
cklEIGZzLCBGUFJlZ2lzdGVySUQgZnQpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDQ2MjAw
MDMyIHwgKGZzIDw8IE9QX1NIX0ZTKSB8IChmdCA8PCBPUF9TSF9GVCkpOwpAQCAtNjc1LDYgKzY5
NywxOSBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBkZWJ1Z09mZnNldCgpIHsgcmV0dXJuIG1f
YnVmZmVyLmRlYnVnT2Zmc2V0KCk7IH0KIAorICAgIC8vIEFzc2VtYmx5IGhlbHBlcnMgZm9yIG1v
dmluZyBkYXRhIGJldHdlZW4gZnAgYW5kIHJlZ2lzdGVycy4KKyAgICB2b2lkIHZtb3YoUmVnaXN0
ZXJJRCByZDEsIFJlZ2lzdGVySUQgcmQyLCBGUFJlZ2lzdGVySUQgcm4pCisgICAgeworICAgICAg
ICBtZmMxKHJkMSwgcm4pOworICAgICAgICBtZmMxKHJkMiwgRlBSZWdpc3RlcklEKHJuICsgMSkp
OworICAgIH0KKworICAgIHZvaWQgdm1vdihGUFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4x
LCBSZWdpc3RlcklEIHJuMikKKyAgICB7CisgICAgICAgIG10YzEocm4xLCByZCk7CisgICAgICAg
IG10YzEocm4yLCBGUFJlZ2lzdGVySUQocmQgKyAxKSk7CisgICAgfQorCiAgICAgc3RhdGljIHVu
c2lnbmVkIGdldENhbGxSZXR1cm5PZmZzZXQoQXNzZW1ibGVyTGFiZWwgY2FsbCkKICAgICB7CiAg
ICAgICAgIC8vIFRoZSByZXR1cm4gYWRkcmVzcyBpcyBhZnRlciBhIGNhbGwgYW5kIGEgZGVsYXkg
c2xvdCBpbnN0cnVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggMjI4MzBhNi4uNzk4NzFkNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5o
CkBAIC01ODEsNiArNTgxLDM0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxi
dShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIH0KICAg
ICB9CisgICAgCisgICAgdm9pZCBsb2FkOFNpZ25lZChCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAm
JiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkg
eworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNz
LmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRk
clRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgIGxiICAgICBkZXN0LCBhZGRyZXNzLm9m
ZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
c2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwgYWRk
clRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgLyoKKyAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBh
ZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFk
ZHJlc3MuYmFzZQorICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0
ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1w
LCBpbW1UZW1wCisgICAgICAgICAgICAgbGIgICAgIGRlc3QsIChhZGRyZXNzLm9mZnNldCAmIDB4
ZmZmZikoYXQpCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlciwg
YWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0
ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVn
aXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwgYWRkclRlbXBSZWdpc3Rl
ciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQogCiAgICAgdm9pZCBsb2FkMzIo
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC03Njks
NiArNzk3LDM0IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgbG9hZDE2
U2lnbmVkKEJhc2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3
CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAg
ICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUK
KyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNl
CisgICAgICAgICAgICAgICAgbGggICAgIGRlc3QsIGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQor
ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNl
KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxoKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAg
ICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQor
ICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UK
KyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAw
MCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1t
VGVtcAorICAgICAgICAgICAgICAgIGxoICAgICBkZXN0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZm
ZmYpKGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNs
bChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rl
ciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVn
aXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGgoZGVzdCwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQorCiAgICAgRGF0YUxhYmVs
MzIgc3RvcmUzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fZml4ZWRXaWR0aCA9IHRydWU7CkBAIC0xMjgzLDYg
KzEzMzksMTcgQEAgcHVibGljOgogICAgICAgICBtX2ZpeGVkV2lkdGggPSBmYWxzZTsKICAgICB9
CiAKKyAgICB2b2lkIG1vdmVEb3VibGVUb0ludHMoRlBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJ
RCBkZXN0MSwgUmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnZt
b3YoZGVzdDEsIGRlc3QyLCBzcmMpOworICAgIH0KKworICAgIHZvaWQgbW92ZUludHNUb0RvdWJs
ZShSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgRlBSZWdpc3RlcklEIGRlc3QsIEZQ
UmVnaXN0ZXJJRCBzY3JhdGNoKQorICAgIHsKKyAgICAgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2gp
OworICAgICAgICBtX2Fzc2VtYmxlci52bW92KGRlc3QsIHNyYzEsIHNyYzIpOworICAgIH0KKwog
ICAgIC8vIEFyaXRobWV0aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6CiAgICAgLy8KICAgICAv
LyBUaGlzIHNldCBvZiBjb25kaXRpb25hbCBicmFuY2ggb3BlcmF0aW9ucyBicmFuY2ggYmFzZWQK
QEAgLTE2ODAsNiArMTc0NywzNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0YWlsUmVjdXJz
aXZlQ2FsbCgpOwogICAgIH0KIAorICAgIHZvaWQgbG9hZEZsb2F0KEJhc2VJbmRleCBhZGRyZXNz
LCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+
PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2Zp
eGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVt
cCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgIGFkZHUgICAgYWRk
clRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICBsd2MxICAgIGRlc3Qs
IGFkZHJlc3Mub2Zmc2V0KGFkZHJUZW1wKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5z
Y2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5s
d2MxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAs
IGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChh
ZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICBhZGR1ICAgIGFkZHJU
ZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgIGx3YzEgICAgZGVzdCwgKGFkZHJl
c3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVp
KGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0
ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKGRlc3Qs
IGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIHZvaWQgbG9hZERvdWJsZShJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogI2lmIFdURl9NSVBTX0lTQSgxKQpAQCAtMTcxMCw2ICsxODA1LDY1IEBA
IHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAorICAgIHZvaWQgbG9hZERvdWJsZShCYXNlSW5kZXgg
YWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworI2lmIFdURl9NSVBTX0lTQSgxKQor
ICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9
IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgor
ICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVz
cy5iYXNlCisgICAgICAgICAgICAgICAgbHdjMSAgICBkZXN0LCBhZGRyZXNzLm9mZnNldChhZGRy
VGVtcCkKKyAgICAgICAgICAgICAgICBsd2MxICAgIGRlc3QrMSwgKGFkZHJlc3Mub2Zmc2V0KzQp
KGFkZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlciwg
YWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdj
MShGUFJlZ2lzdGVySUQoZGVzdCArIDEpLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNl
dCArIDQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAg
ICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAg
ICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAg
ICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAx
NgorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisg
ICAgICAgICAgICAgICAgbHdjMSAgICBkZXN0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0
KQorICAgICAgICAgICAgICAgIGx3YzEgICAgZGVzdCs0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZm
ZmYgKyA0KShhdCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwo
YWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lz
dGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShGUFJl
Z2lzdGVySUQoZGVzdCArIDEpLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCArIDQp
OworICAgICAgICB9CisjZWxzZQorICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4
ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRo
KSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFk
ZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJU
ZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbGRjMSAgICBkZXN0
LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5z
Y2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5s
ZGMxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwg
YWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRk
clRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsdWkgICAgIGlt
bVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICAgICBh
ZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgIGxkYzEg
ICAgZGVzdCwgKGFkZHJlc3Mub2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICovCisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRl
eCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDAp
ID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3Rlciwg
YWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmxkYzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAg
ICB9CisjZW5kaWYKKyAgICB9CisKICAgICB2b2lkIGxvYWREb3VibGUoY29uc3Qgdm9pZCogYWRk
cmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogI2lmIFdURl9NSVBTX0lTQSgxKQpAQCAt
MTczMSw2ICsxODg1LDMzIEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAorICAgIHZvaWQgc3Rv
cmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7CisgICAg
ICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3
NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAg
ICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2Fs
ZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJh
c2UKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYywgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXAp
CisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJh
c2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAg
ICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2Fs
ZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJh
c2UKKyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4
ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwg
aW1tVGVtcAorICAgICAgICAgICAgICAgIHN3YzEgICAgc3JjLCAoYWRkcmVzcy5vZmZzZXQgJiAw
eGZmZmYpKGF0KQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlciwg
YWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0
ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVn
aXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHZvaWQgc3RvcmVE
b3VibGUoRlBSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCiAgICAgewpA
QCAtMTc2MiwxNyArMTk0Myw5OSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lk
IHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsK
KyNpZiBXVEZfTUlQU19JU0EoMSkKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2
OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0
aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRy
VGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3Jj
LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYysx
LCAoYWRkcmVzcy5vZmZzZXQgKyA0KShhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRk
cmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zd2MxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0ICsgNCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwg
YWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5v
ZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwg
YWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYywgKGFkZHJlc3Mu
b2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYysxLCAoYWRk
cmVzcy5vZmZzZXQgJiAweGZmZmYgKyA0KShhdCkKKyAgICAgICAgICAgICovCisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBS
ZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEo
c3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5zd2MxKEZQUmVnaXN0ZXJJRChzcmMgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5vZmZzZXQgKyA0KTsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgaWYgKGFkZHJlc3Mu
b2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAg
JiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwg
ICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAg
ICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAg
ICAgIHNkYzEgICAgc3JjLCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICov
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5zZGMxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwg
ICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAg
ICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAg
ICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAg
ICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAg
ICAgICAgICAgc2RjMSAgICBzcmMsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAg
ICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zm
c2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zZGMxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZz
ZXQpOworICAgICAgICB9CisjZW5kaWYKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlRG91YmxlKEZQ
UmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCisgICAgeworI2lmIFdURl9NSVBT
X0lTQSgxKQorICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJUZW1wUmVn
aXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKHNyYywgYWRkclRlbXBSZWdpc3Rlciwg
MCk7CisgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoRlBSZWdpc3RlcklEKHNyYyArIDEpLCBhZGRy
VGVtcFJlZ2lzdGVyLCA0KTsKKyNlbHNlCisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRy
ZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLnNkYzEoc3JjLCBh
ZGRyVGVtcFJlZ2lzdGVyLCAwKTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgYWRkRG91Ymxl
KEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkZChkZXN0LCBkZXN0LCBzcmMpOwogICAgIH0KIAorICAgIHZvaWQgYWRkRG91
YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuYWRkZChkZXN0LCBvcDEsIG9wMik7CisgICAg
fQorCiAgICAgdm9pZCBhZGREb3VibGUoQWRkcmVzcyBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICAgICAgICAgbG9hZERvdWJsZShzcmMsIGZwVGVtcFJlZ2lzdGVyKTsKICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkZChkZXN0LCBkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisg
ICAgdm9pZCBhZGREb3VibGUoQWJzb2x1dGVBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgbG9hZERvdWJsZShhZGRyZXNzLm1fcHRyLCBmcFRlbXBSZWdp
c3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgZnBUZW1wUmVnaXN0
ZXIpOworICAgIH0KKwogICAgIHZvaWQgc3ViRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3ViZChkZXN0LCBkZXN0
LCBzcmMpOwpAQCAtMTgyMCw2ICsyMDgzLDE2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJs
ZXIuY3Z0ZHcoZGVzdCwgZnBUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAorICAgIHZvaWQgY29udmVy
dEZsb2F0VG9Eb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7
CisgICAgICAgIG1fYXNzZW1ibGVyLmN2dGRzKGRzdCwgc3JjKTsKKyAgICB9CisKKyAgICB2b2lk
IGNvbnZlcnREb3VibGVUb0Zsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3Qp
CisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5jdnRzZChkc3QsIHNyYyk7CisgICAgfQorCiAg
ICAgdm9pZCBpbnNlcnRSZWxheGF0aW9uV29yZHMoKQogICAgIHsKICAgICAgICAgLyogV2UgbmVl
ZCBmb3VyIHdvcmRzIGZvciByZWxheGF0aW9uLiAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168910</attachid>
            <date>2012-10-16 03:44:07 -0700</date>
            <delta_ts>2012-10-16 10:51:26 -0700</delta_ts>
            <desc>Many missing MIPS functions, rebased #3</desc>
            <filename>functions.diff</filename>
            <type>text/plain</type>
            <size>18614</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGFkOGViYjcuLmViZDYyYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDEyLTEwLTE2ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CiAKKyAgICAgICAgQWRkIG1pc3NpbmcgTUlQUyBm
dW5jdGlvbnMgdG8gYXNzZW1ibGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTg4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbnMgaW4gTWFjcm9Bc3NlbWJs
ZXJNSVBTIGFuZCBNSVBTQXNzZW1ibGVyLgorCisgICAgICAgICogYXNzZW1ibGVyL01JUFNBc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxlcjo6bGIpOgorICAgICAgICAoTUlQ
U0Fzc2VtYmxlcik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmxoKToKKyAgICAgICAg
KEpTQzo6TUlQU0Fzc2VtYmxlcjo6Y3Z0ZHMpOgorICAgICAgICAoSlNDOjpNSVBTQXNzZW1ibGVy
OjpjdnRzZCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnZtb3YpOgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVy
TUlQUyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZDhTaWduZWQpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQxNlNpZ25lZCk6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bW92ZURvdWJsZVRvSW50cyk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bW92ZUludHNUb0RvdWJsZSk6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZEZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJNSVBTOjpsb2FkRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBT
OjpzdG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdG9yZURv
dWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YWRkRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpjb252ZXJ0RmxvYXRUb0RvdWJsZSk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6Y29udmVydERvdWJsZVRvRmxvYXQpOgor
CisyMDEyLTEwLTE2ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisK
ICAgICAgICAgTUlQUyBhc3NlbWJsZXIgY29kaW5nLXN0eWxlIGZpeC4KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MzU5CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgKaW5kZXggZjkwNjQ3YS4uMzBm
MTcyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNz
ZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1i
bGVyLmgKQEAgLTM1MCw2ICszNTAsMTIgQEAgcHVibGljOgogICAgICAgICBlbWl0SW5zdCgweDAw
MDAwMDA2IHwgKHJkIDw8IE9QX1NIX1JEKSB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1Bf
U0hfUlMpKTsKICAgICB9CiAKKyAgICB2b2lkIGxiKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQg
cnMsIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBlbWl0SW5zdCgweDgwMDAwMDAwIHwgKHJ0
IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0ICYgMHhmZmZmKSk7Cisg
ICAgICAgIGxvYWREZWxheU5vcCgpOworICAgIH0KKwogICAgIHZvaWQgbGJ1KFJlZ2lzdGVySUQg
cnQsIFJlZ2lzdGVySUQgcnMsIGludCBvZmZzZXQpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgw
eDkwMDAwMDAwIHwgKHJ0IDw8IE9QX1NIX1JUKSB8IChycyA8PCBPUF9TSF9SUykgfCAob2Zmc2V0
ICYgMHhmZmZmKSk7CkBAIC0zNzQsNiArMzgwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbG9hZERl
bGF5Tm9wKCk7CiAgICAgfQogCisgICAgdm9pZCBsaChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklE
IHJzLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgZW1pdEluc3QoMHg4NDAwMDAwMCB8IChy
dCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNldCAmIDB4ZmZmZikpOwor
ICAgICAgICBsb2FkRGVsYXlOb3AoKTsKKyAgICB9CisKICAgICB2b2lkIGxodShSZWdpc3RlcklE
IHJ0LCBSZWdpc3RlcklEIHJzLCBpbnQgb2Zmc2V0KQogICAgIHsKICAgICAgICAgZW1pdEluc3Qo
MHg5NDAwMDAwMCB8IChydCA8PCBPUF9TSF9SVCkgfCAocnMgPDwgT1BfU0hfUlMpIHwgKG9mZnNl
dCAmIDB4ZmZmZikpOwpAQCAtNTI1LDExICs1MzcsMjEgQEAgcHVibGljOgogICAgICAgICBlbWl0
SW5zdCgweDQ2ODAwMDIxIHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOwog
ICAgIH0KIAorICAgIHZvaWQgY3Z0ZHMoRlBSZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQgZnMp
CisgICAgeworICAgICAgICBlbWl0SW5zdCgweDQ2MDAwMDIxIHwgKGZkIDw8IE9QX1NIX0ZEKSB8
IChmcyA8PCBPUF9TSF9GUykpOworICAgIH0KKwogICAgIHZvaWQgY3Z0d2QoRlBSZWdpc3RlcklE
IGZkLCBGUFJlZ2lzdGVySUQgZnMpCiAgICAgewogICAgICAgICBlbWl0SW5zdCgweDQ2MjAwMDI0
IHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9GUykpOwogICAgIH0KIAorICAgIHZv
aWQgY3Z0c2QoRlBSZWdpc3RlcklEIGZkLCBGUFJlZ2lzdGVySUQgZnMpCisgICAgeworICAgICAg
ICBlbWl0SW5zdCgweDQ2MjAwMDIwIHwgKGZkIDw8IE9QX1NIX0ZEKSB8IChmcyA8PCBPUF9TSF9G
UykpOworICAgIH0KKwogICAgIHZvaWQgY2VxZChGUFJlZ2lzdGVySUQgZnMsIEZQUmVnaXN0ZXJJ
RCBmdCkKICAgICB7CiAgICAgICAgIGVtaXRJbnN0KDB4NDYyMDAwMzIgfCAoZnMgPDwgT1BfU0hf
RlMpIHwgKGZ0IDw8IE9QX1NIX0ZUKSk7CkBAIC02MzksNiArNjYxLDE5IEBAIHB1YmxpYzoKIAog
ICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyByZXR1cm4gbV9idWZmZXIuZGVidWdPZmZzZXQo
KTsgfQogCisgICAgLy8gQXNzZW1ibHkgaGVscGVycyBmb3IgbW92aW5nIGRhdGEgYmV0d2VlbiBm
cCBhbmQgcmVnaXN0ZXJzLgorICAgIHZvaWQgdm1vdihSZWdpc3RlcklEIHJkMSwgUmVnaXN0ZXJJ
RCByZDIsIEZQUmVnaXN0ZXJJRCBybikKKyAgICB7CisgICAgICAgIG1mYzEocmQxLCBybik7Cisg
ICAgICAgIG1mYzEocmQyLCBGUFJlZ2lzdGVySUQocm4gKyAxKSk7CisgICAgfQorCisgICAgdm9p
ZCB2bW92KEZQUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybjEsIFJlZ2lzdGVySUQgcm4yKQor
ICAgIHsKKyAgICAgICAgbXRjMShybjEsIHJkKTsKKyAgICAgICAgbXRjMShybjIsIEZQUmVnaXN0
ZXJJRChyZCArIDEpKTsKKyAgICB9CisKICAgICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2FsbFJldHVy
bk9mZnNldChBc3NlbWJsZXJMYWJlbCBjYWxsKQogICAgIHsKICAgICAgICAgLy8gVGhlIHJldHVy
biBhZGRyZXNzIGlzIGFmdGVyIGEgY2FsbCBhbmQgYSBkZWxheSBzbG90IGluc3RydWN0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1J
UFMuaAppbmRleCBmOWIyZTNkLi5mYzZmOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTU2OCw3ICs1NjgsMzUg
QEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIubGJ1KGRlc3QsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKICAgICAgICAgfQogICAgIH0KLSAgICAKKworICAgIHZv
aWQgbG9hZDhTaWduZWQoQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7
CisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQg
PD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8q
CisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRy
ZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsYiAgICAgIGRlc3QsIGFkZHJlc3Mub2Zmc2V0KGFk
ZHJUZW1wKQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxiKGRlc3QsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8q
CisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRy
ZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNl
dCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRy
VGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgIGxiICAgICBkZXN0LCAoYWRkcmVzcy5vZmZz
ZXQgJiAweGZmZmYpKGF0KQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1w
UmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1U
ZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGIoZGVzdCwgYWRkclRlbXBS
ZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBs
b2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0g
MzI3NjcKQEAgLTc1Myw2ICs3ODEsMzQgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisg
ICAgdm9pZCBsb2FkMTZTaWduZWQoQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB7CisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5v
ZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAg
ICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwg
YWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1w
LCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsaCAgICAgZGVzdCwgYWRkcmVzcy5vZmZz
ZXQoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xs
KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGgoZGVzdCwgYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBh
ZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAs
IGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mu
b2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAs
IGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgbGggICAgIGRlc3QsIChhZGRyZXNz
Lm9mZnNldCAmIDB4ZmZmZikoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
bHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7Cisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVn
aXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5saChkZXN0
LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICBEYXRhTGFiZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklE
IHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9maXhlZFdpZHRoID0gdHJ1
ZTsKQEAgLTEyNjEsNiArMTMxNywxNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fZml4ZWRXaWR0aCA9
IGZhbHNlOwogICAgIH0KIAorICAgIHZvaWQgbW92ZURvdWJsZVRvSW50cyhGUFJlZ2lzdGVySUQg
c3JjLCBSZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAgICAg
bV9hc3NlbWJsZXIudm1vdihkZXN0MSwgZGVzdDIsIHNyYyk7CisgICAgfQorCisgICAgdm9pZCBt
b3ZlSW50c1RvRG91YmxlKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBGUFJlZ2lz
dGVySUQgZGVzdCwgRlBSZWdpc3RlcklEIHNjcmF0Y2gpCisgICAgeworICAgICAgICBVTlVTRURf
UEFSQU0oc2NyYXRjaCk7CisgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZGVzdCwgc3JjMSwgc3Jj
Mik7CisgICAgfQorCiAgICAgLy8gQXJpdGhtZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoK
ICAgICAvLwogICAgIC8vIFRoaXMgc2V0IG9mIGNvbmRpdGlvbmFsIGJyYW5jaCBvcGVyYXRpb25z
IGJyYW5jaCBiYXNlZApAQCAtMTY1Niw2ICsxNzIzLDM0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIHRhaWxSZWN1cnNpdmVDYWxsKCk7CiAgICAgfQogCisgICAgdm9pZCBsb2FkRmxvYXQoQmFz
ZUluZGV4IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGFk
ZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAg
ICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAg
ICBzbGwgICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAg
ICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAg
ICAgICAgICAgIGx3YzEgICAgZGVzdCwgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAg
ICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
dShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShkZXN0LCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
Lm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAg
ICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAg
ICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAg
ICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+
IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGltbVRlbXAK
KyAgICAgICAgICAgICAgICBsd2MxICAgIGRlc3QsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZiko
YXQpCisgICAgICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1w
UmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
LmJhc2UpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFk
ZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5h
ZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sd2MxKGRlc3QsIGFkZHJUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHZvaWQgbG9hZERvdWJsZShJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogI2lmIFdU
Rl9NSVBTX0lTQSgxKQpAQCAtMTY4Niw2ICsxNzgxLDY1IEBAIHB1YmxpYzoKICNlbmRpZgogICAg
IH0KIAorICAgIHZvaWQgbG9hZERvdWJsZShCYXNlSW5kZXggYWRkcmVzcywgRlBSZWdpc3RlcklE
IGRlc3QpCisgICAgeworI2lmIFdURl9NSVBTX0lTQSgxKQorICAgICAgICBpZiAoYWRkcmVzcy5v
ZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAm
JiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIHNsbCAg
ICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAg
ICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVzcy5iYXNlCisgICAgICAgICAgICAg
ICAgbHdjMSAgICBkZXN0LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAg
ICBsd2MxICAgIGRlc3QrMSwgKGFkZHJlc3Mub2Zmc2V0KzQpKGFkZHJUZW1wKQorICAgICAgICAg
ICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUo
YWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5v
ZmZzZXQpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShGUFJlZ2lzdGVySUQoZGVzdCAr
IDEpLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCArIDQpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRy
VGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIGx1aSAgICAgaW1t
VGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICAgIGFk
ZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgbHdjMSAg
ICBkZXN0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0KQorICAgICAgICAgICAgICAgIGx3
YzEgICAgZGVzdCs0LCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYgKyA0KShhdCkKKyAgICAgICAg
ICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1
KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQg
KyAweDgwMDApID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBS
ZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmx3YzEoZGVzdCwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHdjMShGUFJlZ2lzdGVySUQoZGVzdCArIDEpLCBh
ZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCArIDQpOworICAgICAgICB9CisjZWxzZQor
ICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9
IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgor
ICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgYWRkcmVz
cy5iYXNlCisgICAgICAgICAgICAgICAgbGRjMSAgICBkZXN0LCBhZGRyZXNzLm9mZnNldChhZGRy
VGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBt
X2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJl
c3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZGMxKGRlc3QsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8q
CisgICAgICAgICAgICAgICAgc2xsICAgICBhZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZQorICAgICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRy
ZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBsdWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNl
dCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRy
VGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgIGxkYzEgICAgZGVzdCwgKGFkZHJlc3Mub2Zm
c2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7Cisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdWkoaW1tVGVt
cFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgaW1t
VGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkYzEoZGVzdCwgYWRkclRl
bXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9CisjZW5kaWYKKyAgICB9CisK
ICAgICB2b2lkIGxvYWREb3VibGUoY29uc3Qgdm9pZCogYWRkcmVzcywgRlBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewogI2lmIFdURl9NSVBTX0lTQSgxKQpAQCAtMTcwNyw2ICsxODYxLDM0IEBAIHB1
YmxpYzoKICNlbmRpZgogICAgIH0KIAorICAgIHZvaWQgc3RvcmVGbG9hdChGUFJlZ2lzdGVySUQg
c3JjLCBCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7CisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNl
dCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAgICYmICFt
X2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBh
ZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFk
ZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBz
d2MxICAgIHNyYywgYWRkcmVzcy5vZmZzZXQoYWRkclRlbXApCisgICAgICAgICAgICAqLworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgs
IGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOworICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgc2xsICAgICBh
ZGRyVGVtcCwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZQorICAgICAgICAgICAgICAgIGFk
ZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBhZGRyZXNzLmJhc2UKKyAgICAgICAgICAgICAgICBs
dWkgICAgIGltbVRlbXAsIChhZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYKKyAgICAgICAg
ICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwgaW1tVGVtcAorICAgICAgICAgICAg
ICAgIHN3YzEgICAgc3JjLCAoYWRkcmVzcy5vZmZzZXQgJiAweGZmZmYpKGF0KQorICAgICAgICAg
ICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsbChhZGRyVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUo
YWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5iYXNlKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx1aShpbW1UZW1wUmVnaXN0ZXIsIChhZGRyZXNzLm9mZnNldCAr
IDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShhZGRyVGVtcFJl
Z2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc3djMShzcmMsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsK
KyAgICAgICAgfQorICAgIH0KKwogICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNy
YywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogI2lmIFdURl9NSVBTX0lTQSgxKQpA
QCAtMTczNywxNyArMTkxOSw5OSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICB2b2lk
IHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsK
KyNpZiBXVEZfTUlQU19JU0EoMSkKKyAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2
OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0
aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwgICAgIGFkZHJUZW1wLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRy
VGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAgICAgIHN3YzEgICAgc3Jj
LCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYysx
LCAoYWRkcmVzcy5vZmZzZXQgKyA0KShhZGRyVGVtcCkKKyAgICAgICAgICAgICovCisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRk
cmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zd2MxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc3djMShGUFJlZ2lzdGVySUQoc3JjICsgMSksIGFkZHJUZW1wUmVn
aXN0ZXIsIGFkZHJlc3Mub2Zmc2V0ICsgNCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAvKgorICAgICAgICAgICAgICAgIHNsbCAgICAgYWRkclRlbXAsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUKKyAgICAgICAgICAgICAgICBhZGR1ICAgIGFkZHJUZW1wLCBhZGRyVGVtcCwg
YWRkcmVzcy5iYXNlCisgICAgICAgICAgICAgICAgbHVpICAgICBpbW1UZW1wLCAoYWRkcmVzcy5v
ZmZzZXQgKyAweDgwMDApID4+IDE2CisgICAgICAgICAgICAgICAgYWRkdSAgICBhZGRyVGVtcCwg
YWRkclRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYywgKGFkZHJlc3Mu
b2Zmc2V0ICYgMHhmZmZmKShhdCkKKyAgICAgICAgICAgICAgICBzd2MxICAgIHNyYysxLCAoYWRk
cmVzcy5vZmZzZXQgJiAweGZmZmYgKyA0KShhdCkKKyAgICAgICAgICAgICovCisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5sdWkoaW1tVGVtcFJlZ2lzdGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBS
ZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEo
c3JjLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5zd2MxKEZQUmVnaXN0ZXJJRChzcmMgKyAxKSwgYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcy5vZmZzZXQgKyA0KTsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgaWYgKGFkZHJlc3Mu
b2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NworICAgICAgICAgICAg
JiYgIW1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwg
ICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAg
ICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAg
ICAgIHNkYzEgICAgc3JjLCBhZGRyZXNzLm9mZnNldChhZGRyVGVtcCkKKyAgICAgICAgICAgICov
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbGwoYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuYmFzZSk7CisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5zZGMxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZzZXQp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBzbGwg
ICAgIGFkZHJUZW1wLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlCisgICAgICAgICAgICAg
ICAgYWRkdSAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGFkZHJlc3MuYmFzZQorICAgICAgICAgICAg
ICAgIGx1aSAgICAgaW1tVGVtcCwgKGFkZHJlc3Mub2Zmc2V0ICsgMHg4MDAwKSA+PiAxNgorICAg
ICAgICAgICAgICAgIGFkZHUgICAgYWRkclRlbXAsIGFkZHJUZW1wLCBpbW1UZW1wCisgICAgICAg
ICAgICAgICAgc2RjMSAgICBzcmMsIChhZGRyZXNzLm9mZnNldCAmIDB4ZmZmZikoYXQpCisgICAg
ICAgICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2xsKGFkZHJUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGltbVRlbXBSZWdpc3RlciwgKGFkZHJlc3Mub2Zm
c2V0ICsgMHg4MDAwKSA+PiAxNik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zZGMxKHNyYywgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZz
ZXQpOworICAgICAgICB9CisjZW5kaWYKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlRG91YmxlKEZQ
UmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCisgICAgeworI2lmIFdURl9NSVBT
X0lTQSgxKQorICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJUZW1wUmVn
aXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zd2MxKHNyYywgYWRkclRlbXBSZWdpc3Rlciwg
MCk7CisgICAgICAgIG1fYXNzZW1ibGVyLnN3YzEoRlBSZWdpc3RlcklEKHNyYyArIDEpLCBhZGRy
VGVtcFJlZ2lzdGVyLCA0KTsKKyNlbHNlCisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRy
ZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLnNkYzEoc3JjLCBh
ZGRyVGVtcFJlZ2lzdGVyLCAwKTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgYWRkRG91Ymxl
KEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkZChkZXN0LCBkZXN0LCBzcmMpOwogICAgIH0KIAorICAgIHZvaWQgYWRkRG91
YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuYWRkZChkZXN0LCBvcDEsIG9wMik7CisgICAg
fQorCiAgICAgdm9pZCBhZGREb3VibGUoQWRkcmVzcyBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICAgICAgICAgbG9hZERvdWJsZShzcmMsIGZwVGVtcFJlZ2lzdGVyKTsKICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkZChkZXN0LCBkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisg
ICAgdm9pZCBhZGREb3VibGUoQWJzb2x1dGVBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgbG9hZERvdWJsZShhZGRyZXNzLm1fcHRyLCBmcFRlbXBSZWdp
c3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgZnBUZW1wUmVnaXN0
ZXIpOworICAgIH0KKwogICAgIHZvaWQgc3ViRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3ViZChkZXN0LCBkZXN0
LCBzcmMpOwpAQCAtMTc5NSw2ICsyMDU5LDE2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJs
ZXIuY3Z0ZHcoZGVzdCwgZnBUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAorICAgIHZvaWQgY29udmVy
dEZsb2F0VG9Eb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7
CisgICAgICAgIG1fYXNzZW1ibGVyLmN2dGRzKGRzdCwgc3JjKTsKKyAgICB9CisKKyAgICB2b2lk
IGNvbnZlcnREb3VibGVUb0Zsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3Qp
CisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5jdnRzZChkc3QsIHNyYyk7CisgICAgfQorCiAg
ICAgdm9pZCBpbnNlcnRSZWxheGF0aW9uV29yZHMoKQogICAgIHsKICAgICAgICAgLyogV2UgbmVl
ZCBmb3VyIHdvcmRzIGZvciByZWxheGF0aW9uLiAqLwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>