<?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>63757</bug_id>
          
          <creation_ts>2011-06-30 15:22:30 -0700</creation_ts>
          <short_desc>Add optimised paths for a few maths functions</short_desc>
          <delta_ts>2011-07-04 01:38:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>63790</dependson>
          <blocked>63893</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>loki</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>430719</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-30 15:22:30 -0700</bug_when>
    <thetext>Add optimised paths for a few maths functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430722</commentid>
    <comment_count>1</comment_count>
      <attachid>99375</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-30 15:26:09 -0700</bug_when>
    <thetext>Created attachment 99375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430726</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 15:29:17 -0700</bug_when>
    <thetext>Attachment 99375 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/X86Assembler.h:1461:  andnpd_rr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/jit/SpecializedThunkJIT.h:142:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/JavaScriptCore/jit/ThunkGenerators.cpp:146:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/jit/ThunkGenerators.cpp:164:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/jit/ThunkGenerators.cpp:169:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 5 in 14 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>430741</commentid>
    <comment_count>3</comment_count>
      <attachid>99375</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-30 15:43:17 -0700</bug_when>
    <thetext>Comment on attachment 99375
Patch

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

&gt; Source/JavaScriptCore/jit/JSInterfaceJIT.h:327
&gt; +    inline JSInterfaceJIT::Jump JSInterfaceJIT::emitJumpIfNotDouble(int virtualRegisterIndex, RegisterID base)

This is incorrect &amp; unused, please remove.

&gt; Source/JavaScriptCore/jit/SpecializedThunkJIT.h:74
&gt; +        Jump emitJumpIfArgumentNotDouble(int argument)

This is unused, please remove.

&gt; Source/JavaScriptCore/jit/SpecializedThunkJIT.h:143
&gt; +        void callDoubleToDouble(double(*function)(double))

My understanding is that these will not obey this calling convention; please make this a void* / FunctionPtr / etc.

&gt; Source/JavaScriptCore/jit/ThunkGenerators.cpp:173
&gt; +defineD2DWrapper(jsRound);

&quot;D2D&quot; seems to be more of an abbreviation than our coding standard really agrees with, could we make this slightly verbier &amp; clearer? - D2D -&gt; UnaryMathOp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430742</commentid>
    <comment_count>4</comment_count>
      <attachid>99375</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-06-30 15:43:21 -0700</bug_when>
    <thetext>Comment on attachment 99375
Patch

Attachment 99375 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8957888</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430744</commentid>
    <comment_count>5</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-06-30 15:46:43 -0700</bug_when>
    <thetext>I think ARM could do these in a different way... For example it has a floating point abs function. Am I see right that jit.callDoubleToDouble(D2DWrapper(...)) could destroy registers? Hm, ARM has hardfp and softfp ABIs, makes thing a little more difficult. Anyway, how much gain on SunSpider?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430748</commentid>
    <comment_count>6</comment_count>
      <attachid>99381</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-30 15:50:45 -0700</bug_when>
    <thetext>Created attachment 99381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430752</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 15:52:39 -0700</bug_when>
    <thetext>Attachment 99381 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/X86Assembler.h:1461:  andnpd_rr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/jit/SpecializedThunkJIT.h:136:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/JavaScriptCore/jit/ThunkGenerators.cpp:122:  Missing space inside { }.  [whitespace/braces] [5]
Source/JavaScriptCore/jit/ThunkGenerators.cpp:146:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/jit/ThunkGenerators.cpp:164:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/jit/ThunkGenerators.cpp:169:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 14 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>430754</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-30 15:54:22 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think ARM could do these in a different way... For example it has a floating point abs function. Am I see right that jit.callDoubleToDouble(D2DWrapper(...)) could destroy registers? Hm, ARM has hardfp and softfp ABIs, makes thing a little more difficult. Anyway, how much gain on SunSpider?

This currently no-ops on ARM, ARMs variety of problems makes me less inclined to try and fix it right away (and efficiency isn&apos;t perfect on any platform due to those problems), happily at the point we make the call we no longer care about any of our caller save registers (our result is dependent only the result of the call).

I have hopes the DFG jit will introduce a generalised mechanism for calling more stupid calling conventions in the future, and we can reoptimise them at that point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430756</commentid>
    <comment_count>9</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-30 15:55:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think ARM could do these in a different way... For example it has a floating point abs function. Am I see right that jit.callDoubleToDouble(D2DWrapper(...)) could destroy registers? Hm, ARM has hardfp and softfp ABIs, makes thing a little more difficult. Anyway, how much gain on SunSpider?

Around 0.9% gain on sunspider, but this is mostly to deal with certain benchmarks that claim 90% Math code == real world JS.  And i was waiting for other builds so i thought i&apos;d hack this together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430767</commentid>
    <comment_count>10</comment_count>
      <attachid>99381</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-30 16:04:41 -0700</bug_when>
    <thetext>Comment on attachment 99381
Patch

Please to be fixing the style bot&apos;s whitespace issues that are valid, and to be making the argument type a typedef to increase readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430777</commentid>
    <comment_count>11</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-30 16:08:57 -0700</bug_when>
    <thetext>Committed r90177: &lt;http://trac.webkit.org/changeset/90177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430782</commentid>
    <comment_count>12</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-06-30 16:11:53 -0700</bug_when>
    <thetext>&gt; This currently no-ops on ARM, ARMs variety of problems makes me less inclined to try and fix it right away (and efficiency isn&apos;t perfect on any platform due to those problems), happily at the point we make the call we no longer care about any of our caller save registers (our result is dependent only the result of the call).
&gt; 
&gt; I have hopes the DFG jit will introduce a generalised mechanism for calling more stupid calling conventions in the future, and we can reoptimise them at that point.

No problem, I thought I will try to do it myself on ARM. I just don&apos;t want to add more defines, instead I would prefer some inline methods...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430784</commentid>
    <comment_count>13</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-30 16:14:01 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; This currently no-ops on ARM, ARMs variety of problems makes me less inclined to try and fix it right away (and efficiency isn&apos;t perfect on any platform due to those problems), happily at the point we make the call we no longer care about any of our caller save registers (our result is dependent only the result of the call).
&gt; &gt; 
&gt; &gt; I have hopes the DFG jit will introduce a generalised mechanism for calling more stupid calling conventions in the future, and we can reoptimise them at that point.
&gt; 
&gt; No problem, I thought I will try to do it myself on ARM. I just don&apos;t want to add more defines, instead I would prefer some inline methods...

inline methods don&apos;t work because you need to be able to specify calling convention details in ways that gcc doesn&apos;t let you do -- i _think_ that you should simply be able to make the arm thunk be a vmov to r0,r1 and then back again after the call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430792</commentid>
    <comment_count>14</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-06-30 16:19:10 -0700</bug_when>
    <thetext>Oh, it does not compile on ARM:

http://build.webkit.sed.hu/builders/ARMv5%20Linux%20Qt%20Release%20%28Build%29/builds/28644/steps/compile-webkit/logs/stdio

Have we such form?

JSC::SpecializedThunkJIT::rshift32(const JSC::ARMRegisters::RegisterID&amp;, JSC::AbstractMacroAssembler&lt;JSC::ARMAssembler&gt;::TrustedImm32, const JSC::ARMRegisters::RegisterID&amp;)

Too late, probably do that tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430794</commentid>
    <comment_count>15</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-30 16:20:57 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Oh, it does not compile on ARM:
&gt; 
&gt; http://build.webkit.sed.hu/builders/ARMv5%20Linux%20Qt%20Release%20%28Build%29/builds/28644/steps/compile-webkit/logs/stdio
&gt; 
&gt; Have we such form?
&gt; 
&gt; JSC::SpecializedThunkJIT::rshift32(const JSC::ARMRegisters::RegisterID&amp;, JSC::AbstractMacroAssembler&lt;JSC::ARMAssembler&gt;::TrustedImm32, const JSC::ARMRegisters::RegisterID&amp;)
&gt; 
&gt; Too late, probably do that tomorrow.

Landed theoretical fix.  It&apos;s possible i&apos;ve got src/dst flipped though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430798</commentid>
    <comment_count>16</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-06-30 16:23:56 -0700</bug_when>
    <thetext>&gt; Landed theoretical fix.  It&apos;s possible i&apos;ve got src/dst flipped though.

Ah, it is just a short form:

308	    void rshift32(RegisterID src, TrustedImm32 imm, RegisterID dest)
309	    {
310	        if (src != dest)
311	            move(src, dest);
312	        rshift32(imm, dest);
313	    }

Why is it not in MacroAssembler.h? Not looking x86 specific...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430800</commentid>
    <comment_count>17</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-06-30 16:24:59 -0700</bug_when>
    <thetext>&gt; Why is it not in MacroAssembler.h? Not looking x86 specific...

Hm, no. ARM can do that in one instruction. I will add that tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431030</commentid>
    <comment_count>18</comment_count>
      <attachid>99438</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-07-01 00:45:09 -0700</bug_when>
    <thetext>Created attachment 99438
crash log on Qt in debug mode

http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Debug/r90205%20%2816599%29/canvas/philip/tests/2d.imageData.get.order.rows-stderr.txt

canvas/philip/tests/2d.imageData.get.order.rows.html (r90205)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431036</commentid>
    <comment_count>19</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-07-01 00:50:02 -0700</bug_when>
    <thetext>It was rolled out (http://trac.webkit.org/changeset/90215), because it made 
130 jscrore tests and 361 layout tests crash on Qt in debug mode:
http://build.webkit.sed.hu/builders/x86-32%20Linux%20Qt%20Debug/builds/16591

Zoltán and/or Gábor, could you help the guys debug this regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431068</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-07-01 02:31:42 -0700</bug_when>
    <thetext>These tests crashed on the GTK debug bot too:
http://build.webkit.org/builders/GTK%20Linux%2032-bit%20Debug/builds/16140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431217</commentid>
    <comment_count>21</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-07-01 09:34:21 -0700</bug_when>
    <thetext>Committed r90237: &lt;http://trac.webkit.org/changeset/90237&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431218</commentid>
    <comment_count>22</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-07-01 09:36:34 -0700</bug_when>
    <thetext>Everything should be fine now as i&apos;ve made it mac only, i&apos;ll add windows support at some point, but from here on out i&apos;m going to explicitly exclude anything other than max from optimisations i make.  I&apos;m tired of making good faith efforts to fix platforms that i don&apos;t maintain being met with complete rollouts without any attempt to diagnose or fix the problem by any of the platforms maintainers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431239</commentid>
    <comment_count>23</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-07-01 10:01:16 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Everything should be fine now as i&apos;ve made it mac only, i&apos;ll add windows support at some point, but from here on out i&apos;m going to explicitly exclude anything other than max from optimisations i make.  I&apos;m tired of making good faith efforts to fix platforms that i don&apos;t maintain being met with complete rollouts without any attempt to diagnose or fix the problem by any of the platforms maintainers.

I understand you, and you probably understand Ossy as well. Everyone do their best effort. I think the best common denominator would be to make mac only patches, and CC&apos;ing other platform maintainers to make the support of their platforms. Unfortunately we are on different time zones, so we may not have time to debug non-trivial issues and add support for new features, but keeping the bots green is essential since other real bugs may appear later, and we will not know about them because of red bots.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99375</attachid>
            <date>2011-06-30 15:26:09 -0700</date>
            <delta_ts>2011-06-30 15:50:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63757-20110630152608.patch</filename>
            <type>text/plain</type>
            <size>23860</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAxNjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGU2
YmIyYjIwMjAwYzE4MTY3ZGM3ODYzNGFiM2M2MDUwNDNjMDRlZTQuLjYzYzY3OTRhYjVjZmY5MzM1
ZjQxMTRiYWMxNzhkNmY0MjI1NjAwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDU0IEBACisyMDExLTA2LTMwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG9wdGlt
aXNlZCBwYXRocyBmb3IgYSBmZXcgbWF0aHMgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NworCisgICAgICAgIFRoaXMgYWRkcyBz
cGVjaWFsaXNlZCB0aHVua3MgZm9yIE1hdGguYWJzLCBNYXRoLnJvdW5kLCBNYXRoLmNlaWwsCisg
ICAgICAgIE1hdGguZmxvb3IsIE1hdGgubG9nLCBhbmQgTWF0aC5leHAgYXMgdGhleSBhcmUgYXBw
YXJlbnRseSBtb3JlCisgICAgICAgIGltcG9ydGFudCBpbiByZWFsIHdlYiBjb250ZW50IHRoYW4g
d2UgdGhvdWdodCwgd2hpY2ggaXMgc29tZXdoYXQKKyAgICAgICAgbWluZC1ib2dnbGluZy4gIE9u
IGF2ZXJhZ2UgZG91YmxlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGNvbW1vbgorICAgICAgICBj
YXNlcyAoZWcuIGFjdHVhbGx5IHBhc3NpbmcgbnVtYmVycyBpbikuICBUaGV5J3JlIG5vdCBhcyBl
ZmZpY2llbnQKKyAgICAgICAgYXMgdGhleSBjb3VsZCBiZSwgYnV0IHRoaXMgd2F5IGdpdmVzIHRo
ZW0gdGhlIG1vc3QgcG9ydGFiaWxpdHkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnN1cHBvcnRzRG91
YmxlQml0b3BzKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmFuZG5vdERvdWJs
ZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9ydHNEb3VibGVCaXRvcHMpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjphbmRub3REb3VibGUpOgorICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJNSVBTOjphbmRub3REb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6
OnN1cHBvcnRzRG91YmxlQml0b3BzKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJTSDQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN1cHBvcnRzRG91Ymxl
Qml0b3BzKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OmFuZG5vdERvdWJsZSk6
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Lmg6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyWDg2OjpzdXBwb3J0c0RvdWJsZUJpdG9wcyk6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uOjphbmRub3REb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6
c3VwcG9ydHNEb3VibGVCaXRvcHMpOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIu
aDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjphbmRucGRfcnIpOgorICAgICAgICAqIGNy
ZWF0ZV9oYXNoX3RhYmxlOgorICAgICAgICAqIGppdC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAg
ICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpK
U0ludGVyZmFjZUpJVDo6ZW1pdEp1bXBJZk5vdERvdWJsZSk6CisgICAgICAgICogaml0L1NwZWNp
YWxpemVkVGh1bmtKSVQuaDoKKyAgICAgICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6ZW1p
dEp1bXBJZkFyZ3VtZW50Tm90RG91YmxlKToKKyAgICAgICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVu
a0pJVDo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklUOjpjYWxs
RG91YmxlVG9Eb3VibGUpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAg
ICAgICAoSlNDOjpmbG9vclRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6Y2VpbFRodW5r
R2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6cm91bmRUaHVua0dlbmVyYXRvcik6CisgICAgICAg
IChKU0M6OmV4cFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bG9nVGh1bmtHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjphYnNUaHVua0dlbmVyYXRvcik6CisgICAgICAgICogaml0L1Ro
dW5rR2VuZXJhdG9ycy5oOgorCiAyMDExLTA2LTMwICBDYXJ5IENsYXJrICA8Y2FyeWNsYXJrQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKaW5k
ZXggNmQ4NDc5ZmJlMDgxYTEzMmQ1OTY4MTI4MzcyZjBjNTAzZDg5ZGM1YS4uNjVmYjU4NDdjNWUx
NGI0YmQ3OTU0ODY4MGFjNTAxMzJiYmYyOWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaApAQCAtNzg5LDYgKzc4OSw3IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBzX2lzVkZQUHJlc2VudDsKICAgICB9Cisg
ICAgYm9vbCBzdXBwb3J0c0RvdWJsZUJpdG9wcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKQEAgLTg1NSw2ICs4NTYsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIudnNxcnRfZjY0X3IoZGVzdCwgc3JjKTsKICAgICB9CisgICAgCisgICAg
dm9pZCBhbmRub3REb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpCisgICAgeworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiAKICAgICB2b2lkIGNvbnZlcnRJbnQz
MlRvRG91YmxlKFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oCmluZGV4IGY0Y2NmYzQyOTNmN2FiNmQyZTQ2MmEzNWFlM2YxNmY4OWZiZjQ5MmMuLmUxNGZi
OGMwOWFlMTEyNzAwZWI1Zjk4MWRlZWExZTJiYzg3OWE4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC01Njcs
NiArNTY3LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
KyAgICBib29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
IAogICAgIHZvaWQgbG9hZERvdWJsZShJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewpAQCAtNjQ2LDYgKzY0NywxMSBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CisgICAgCisgICAgdm9pZCBhbmRub3RE
b3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpCisgICAgeworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CiAKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKFJl
Z2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCBhNTkw
NTA0MDAyMTNmZTZmZmY4ZDFhMmI3MTgxNjFkNWI0YjY2MWQ5Li45MzZhMDY5MTY5YWNiZmNkZjY2
YmJkZGNlZjU3Y2JjMTA2YTE3MmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTQ2MCw2ICs0NjAsMTEgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3FydGQoZHN0LCBzcmMpOwogICAgIH0K
KyAgICAKKyAgICB2b2lkIGFuZG5vdERvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0ZXJJRCkK
KyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KIAogICAgIC8vIE1l
bW9yeSBhY2Nlc3Mgb3BlcmF0aW9uczoKICAgICAvLwpAQCAtODE2LDYgKzgyMSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAgICAgfQorICAgIGJvb2wgc3VwcG9y
dHNEb3VibGVCaXRvcHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gU3RhY2sg
bWFuaXB1bGF0aW9uIG9wZXJhdGlvbnM6CiAgICAgLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaAppbmRleCBhMDk0ODBkMWYzYTE5
OGFkZTBjNTVmZmFlOTZlNThhNDJkODJiMDUzLi40NTg1YTVkNjQzNWEwODM0ZWIxZmRlOGY5ODk4
MWFlZDQ0NTJkY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyU0g0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclNINC5oCkBAIC03NjIsNiArNzYyLDcgQEAgcHVibGljOgogICAgIGJv
b2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJv
b2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAgICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIGJvb2wgc3VwcG9ydHNEb3VibGVCaXRvcHMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC0xMTAwLDYgKzExMDEsMTEgQEAgcHVibGljOgogICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuZG1vdlJlZ1JlZyhzcmMsIGRlc3QpOwogICAgICAgICBtX2Fz
c2VtYmxlci5kc3FydChkZXN0KTsKICAgICB9CisgICAgCisgICAgdm9pZCBhbmRub3REb3VibGUo
RlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CiAKICAgICBKdW1wIGJyYW5jaFRlc3Q4KFJlc3VsdENvbmRpdGlvbiBj
b25kLCBBZGRyZXNzIGFkZHJlc3MsIFRydXN0ZWRJbW0zMiBtYXNrID0gVHJ1c3RlZEltbTMyKC0x
KSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2LmgKaW5kZXggZWMyNDc3NGUxOGI5YzU3N2FlNzgzNjBkNTYxZWQ4Y2E3N2Fl
YTIyZi4uNTBmNGQ5YzEyMzM0ZmM2NWY5OTEyZDU3ZjRhZGM3YmUyNzlhOThiMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaApA
QCAtMTY2LDYgKzE2Niw3IEBAIHB1YmxpYzoKICAgICAvLyBTZWUgY29tbWVudCBvbiBNYWNyb0Fz
c2VtYmxlckFSTXY3OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpCiAgICAgYm9vbCBz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTU0UyUHJl
c2VudDsgfQogICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNTU0UyUHJlc2VudDsgfQorICAgIGJvb2wgc3VwcG9ydHNEb3VibGVCaXRvcHMoKSBj
b25zdCB7IHJldHVybiBtX2lzU1NFMlByZXNlbnQ7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBi
b29sIG1faXNTU0UyUHJlc2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAppbmRleCA5MzNiMzZiMjkzMjdl
NjkyMDMyN2RkZmM1ZGNlYjliMmE0YWFkMWFjLi4wNTU0NGQyNjU3N2U5MzlkYTk5NTM0NDRiMTRk
N2QxOWU2ZTlhZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCkBAIC00MjMsNiArNDIzLDExIEBAIHB1
YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3FydHNkX3JyKHNyYywgZHN0KTsKICAgICB9CiAK
KyAgICB2b2lkIGFuZG5vdERvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0
KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuYW5kbnBkX3JyKHNyYywgZHN0KTsKKyAgICB9
CisKICAgICAvLyBNZW1vcnkgYWNjZXNzIG9wZXJhdGlvbnM6CiAgICAgLy8KICAgICAvLyBMb2Fk
cyBhcmUgb2YgdGhlIGZvcm0gbG9hZChhZGRyZXNzLCBkZXN0aW5hdGlvbikgYW5kIHN0b3JlcyBv
ZiB0aGUgZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IGUyYTIwY2JkNDI1MzUzY2Q5YmMyZWU4ZmQ3OWMx
NTMzNTY1NjE2ZjAuLmJkZTZlY2MwM2E3ZDRkZGUxOGQzNDVkNmYyM2RlZDI2M2UxMzlhMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKQEAgLTQ1Niw2ICs0NTYsNyBAQCBwdWJsaWM6CiAgICAgLy8gU2VlIGNvbW1l
bnQgb24gTWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUo
KQogICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAgICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgc3VwcG9ydHNEb3VibGVCaXRvcHMoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIExpbmtCdWZmZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAppbmRleCAx
NGRmMDA2ZmE0ODMwMGNmOTI4MTEyMDRiNDUzZGQzZWYxZWM3MjdhLi5jMDZhMTMxN2U2YzNjM2Yx
ZDljMDMwMDNhZDMyYTk0YzdlMWJjMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKQEAgLTE3MCw2ICsxNzAsNyBAQCBwcml2YXRlOgogICAg
ICAgICBPUDJfU1VCU0RfVnNkV3NkICAgID0gMHg1QywKICAgICAgICAgT1AyX0RJVlNEX1ZzZFdz
ZCAgICA9IDB4NUUsCiAgICAgICAgIE9QMl9TUVJUU0RfVnNkV3NkICAgPSAweDUxLAorICAgICAg
ICBPUDJfQU5ETlBEX1ZwZFdwZCAgID0gMHg1NSwKICAgICAgICAgT1AyX1hPUlBEX1ZwZFdwZCAg
ICA9IDB4NTcsCiAgICAgICAgIE9QMl9NT1ZEX1ZkRWQgICAgICAgPSAweDZFLAogICAgICAgICBP
UDJfTU9WRF9FZFZkICAgICAgID0gMHg3RSwKQEAgLTE0NTcsNiArMTQ1OCwxMiBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcChPUDJfWE9SUERfVnBkV3BkLCAoUmVnaXN0
ZXJJRClkc3QsIChSZWdpc3RlcklEKXNyYyk7CiAgICAgfQogCisgICAgdm9pZCBhbmRucGRfcnIo
WE1NUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9m
b3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfNjYpOworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRl
T3AoT1AyX0FORE5QRF9WcGRXcGQsIChSZWdpc3RlcklEKWRzdCwgKFJlZ2lzdGVySUQpc3JjKTsK
KyAgICB9CisKICAgICB2b2lkIHNxcnRzZF9ycihYTU1SZWdpc3RlcklEIHNyYywgWE1NUmVnaXN0
ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci5wcmVmaXgoUFJFX1NTRV9GMik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKaW5kZXggNTliNTc0YWFmNTYx
ZmU4ZTBmMDAwMGZlMDI3ZmNkMDQ1M2NjNDE0Yi4uMTM5N2Y3ZWVkOTk3YTU3YmQ3ZjY3NTZmOWNj
ZDkyNGZlNWU1MzgwZiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9o
YXNoX3RhYmxlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZQpA
QCAtMjc4LDE1ICsyNzgsMzUgQEAgc3ViIG91dHB1dCgpIHsKICAgICAgICAgaWYgKCRrZXkgZXEg
ImNoYXJBdCIpIHsKICAgICAgICAgICAgICR0aHVua0dlbmVyYXRvciA9ICJjaGFyQXRUaHVua0dl
bmVyYXRvciI7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCRrZXkgZXEgInNxcnQiKSB7Ci0gICAg
ICAgICAgICAkdGh1bmtHZW5lcmF0b3IgPSAic3FydFRodW5rR2VuZXJhdG9yIjsKLSAgICAgICAg
fQotICAgICAgICBpZiAoJGtleSBlcSAicG93IikgewotICAgICAgICAgICAgJHRodW5rR2VuZXJh
dG9yID0gInBvd1RodW5rR2VuZXJhdG9yIjsKLSAgICAgICAgfQogICAgICAgICBpZiAoJGtleSBl
cSAiZnJvbUNoYXJDb2RlIikgewogICAgICAgICAgICAgJHRodW5rR2VuZXJhdG9yID0gImZyb21D
aGFyQ29kZVRodW5rR2VuZXJhdG9yIjsKICAgICAgICAgfQorICAgICAgICBpZiAoJG5hbWUgZXEg
Im1hdGhUYWJsZSIpIHsKKyAgICAgICAgICAgIGlmICgka2V5IGVxICJzcXJ0IikgeworICAgICAg
ICAgICAgICAgICR0aHVua0dlbmVyYXRvciA9ICJzcXJ0VGh1bmtHZW5lcmF0b3IiOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKCRrZXkgZXEgInBvdyIpIHsKKyAgICAgICAgICAgICAg
ICAkdGh1bmtHZW5lcmF0b3IgPSAicG93VGh1bmtHZW5lcmF0b3IiOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKCRrZXkgZXEgImFicyIpIHsKKyAgICAgICAgICAgICAgICAkdGh1bmtH
ZW5lcmF0b3IgPSAiYWJzVGh1bmtHZW5lcmF0b3IiOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKCRrZXkgZXEgImZsb29yIikgeworICAgICAgICAgICAgICAgICR0aHVua0dlbmVyYXRv
ciA9ICJmbG9vclRodW5rR2VuZXJhdG9yIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
ICgka2V5IGVxICJjZWlsIikgeworICAgICAgICAgICAgICAgICR0aHVua0dlbmVyYXRvciA9ICJj
ZWlsVGh1bmtHZW5lcmF0b3IiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCRrZXkg
ZXEgInJvdW5kIikgeworICAgICAgICAgICAgICAgICR0aHVua0dlbmVyYXRvciA9ICJyb3VuZFRo
dW5rR2VuZXJhdG9yIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgka2V5IGVxICJl
eHAiKSB7CisgICAgICAgICAgICAgICAgJHRodW5rR2VuZXJhdG9yID0gImV4cFRodW5rR2VuZXJh
dG9yIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgka2V5IGVxICJsb2ciKSB7Cisg
ICAgICAgICAgICAgICAgJHRodW5rR2VuZXJhdG9yID0gImxvZ1RodW5rR2VuZXJhdG9yIjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICBwcmludCAiICAgeyBcIiRrZXlcIiwgJGF0
dHJzWyRpXSwgKGludHB0cl90KSIgLiAkY2FzdFN0ciAuICIoJGZpcnN0VmFsdWUpLCAoaW50cHRy
X3QpJHNlY29uZFZhbHVlIFRIVU5LX0dFTkVSQVRPUigkdGh1bmtHZW5lcmF0b3IpIH0sXG4iOwog
ICAgICAgICAkaSsrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSlNJbnRlcmZhY2VKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZh
Y2VKSVQuaAppbmRleCBlMWQ5MzUzY2JiNmYyYjY4ZGIwM2E3Y2E2YTU0NGFmZjIyMGM1ZWI4Li5k
ZGJjMmZiM2U2MGZkM2YxNjFlZGYyMTBjZDgwYmFlMjU2YjcyYzdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCkBAIC0yMDksNiArMjA5LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdEZhc3RBcml0aEltbVRvSW50KFJlZ2lzdGVySUQg
cmVnKTsKICNlbmRpZgogCisgICAgICAgIEp1bXAgZW1pdEp1bXBJZk5vdERvdWJsZShpbnQgdmly
dHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsK
KyAgICAgICAgCiAgICAgICAgIGlubGluZSBBZGRyZXNzIHBheWxvYWRGb3IoaW50IGluZGV4LCBS
ZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIGlubGluZSBBZGRy
ZXNzIGludFBheWxvYWRGb3IoaW50IGluZGV4LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVS
ZWdpc3Rlcik7CiAgICAgICAgIGlubGluZSBBZGRyZXNzIGludFRhZ0ZvcihpbnQgaW5kZXgsIFJl
Z2lzdGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKQEAgLTI3Niw3ICsyNzgsMTMgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGxvYWREb3VibGUoYWRkcmVzc0Zvcih2aXJ0dWFsUmVn
aXN0ZXJJbmRleCksIGRzdCk7CiAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAgICAgICAgcmV0
dXJuIG5vdEludDsKLSAgICB9ICAgIAorICAgIH0KKyAgICAKKyAgICBpbmxpbmUgSlNJbnRlcmZh
Y2VKSVQ6Okp1bXAgSlNJbnRlcmZhY2VKSVQ6OmVtaXRKdW1wSWZOb3REb3VibGUoaW50IHZpcnR1
YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGJhc2UpCisgICAgeworICAgICAgICByZXR1cm4g
YnJhbmNoMzIoQWJvdmVPckVxdWFsLCB0YWdGb3IodmlydHVhbFJlZ2lzdGVySW5kZXgsIGJhc2Up
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSk7CisgICAgfQorCiAjZW5kaWYKIAog
I2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0zMTYsNiArMzI0LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICByZXR1cm4gbm90TnVtYmVyOwogICAgIH0KICAgICAKKyAgICBpbmxpbmUgSlNJbnRl
cmZhY2VKSVQ6Okp1bXAgSlNJbnRlcmZhY2VKSVQ6OmVtaXRKdW1wSWZOb3REb3VibGUoaW50IHZp
cnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGJhc2UpCisgICAgeworICAgICAgICByZXR1
cm4gYnJhbmNoMzIoQWJvdmVPckVxdWFsLCBwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlckluZGV4
LCBiYXNlKSwgdGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgSlNJbnRlcmZhY2VKSVQ6OmVtaXRGYXN0QXJpdGhJbW1Ub0ludChSZWdpc3RlcklE
KQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Nw
ZWNpYWxpemVkVGh1bmtKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6
ZWRUaHVua0pJVC5oCmluZGV4IDEzYTVjMmVlZTZlOWFmZTMxZTg4OTY1NzFiNDkyYzAxZGJiNzYw
NjIuLjgzYmExZmU4OWE0MjQzZjE4NmM3ODUzZmQyYjAzY2U5YTM0MDczZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCkBAIC03MSw2ICs3
MSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGZhaWxUYXJnZXQgPSBlbWl0TG9h
ZEludDMyKHNyYywgZHN0KTsKICAgICAgICAgfQogICAgICAgICAKKyAgICAgICAgSnVtcCBlbWl0
SnVtcElmQXJndW1lbnROb3REb3VibGUoaW50IGFyZ3VtZW50KQorICAgICAgICB7CisgICAgICAg
ICAgICB1bnNpZ25lZCBzcmMgPSBhcmd1bWVudFRvVmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50KTsK
KyAgICAgICAgICAgIHJldHVybiBlbWl0SnVtcElmTm90RG91YmxlKHNyYywgY2FsbEZyYW1lUmVn
aXN0ZXIpOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICB2b2lkIGxvYWRJbnQzMkFyZ3Vt
ZW50KGludCBhcmd1bWVudCwgUmVnaXN0ZXJJRCBkc3QpCiAgICAgICAgIHsKICAgICAgICAgICAg
IEp1bXAgY29udmVyc2lvbkZhaWxlZDsKQEAgLTEyNyw5ICsxMzMsMTggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoZ2xvYmFs
RGF0YSwgdGhpcywgbV9wb29sLmdldCgpKTsKICAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmso
bV9mYWlsdXJlcywgQ29kZUxvY2F0aW9uTGFiZWwoZmFsbGJhY2spKTsKKyAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NhbGxzLnNpemUoKTsgaSsrKQorICAgICAgICAgICAg
ICAgIHBhdGNoQnVmZmVyLmxpbmsobV9jYWxsc1tpXS5maXJzdCwgbV9jYWxsc1tpXS5zZWNvbmQp
OwogICAgICAgICAgICAgcmV0dXJuIHBhdGNoQnVmZmVyLmZpbmFsaXplQ29kZSgpLm1fY29kZTsK
ICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICAvLyBBc3N1bWVzIHRoYXQgdGhlIHRhcmdl
dCBmdW5jdGlvbiB1c2VzIGZwUmVnaXN0ZXIwIGFzIHRoZSBmaXJzdCBhcmd1bWVudAorICAgICAg
ICAvLyBhbmQgcmV0dXJuIHZhbHVlLiAgTGlrZSBhbnkgc2Vuc2libGUgYXJjaGl0ZWN0dXJlIHdv
dWxkLgorICAgICAgICB2b2lkIGNhbGxEb3VibGVUb0RvdWJsZShkb3VibGUoKmZ1bmN0aW9uKShk
b3VibGUpKQorICAgICAgICB7CisgICAgICAgICAgICBtX2NhbGxzLmFwcGVuZChzdGQ6Om1ha2Vf
cGFpcihjYWxsKCksIGZ1bmN0aW9uKSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAg
ICAgIGludCBhcmd1bWVudFRvVmlydHVhbFJlZ2lzdGVyKHVuc2lnbmVkIGFyZ3VtZW50KQogICAg
ICAgICB7CkBAIC0xNTYsNiArMTcxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTR2xv
YmFsRGF0YSogbV9nbG9iYWxEYXRhOwogICAgICAgICBSZWZQdHI8RXhlY3V0YWJsZVBvb2w+IG1f
cG9vbDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IG1fZmFpbHVyZXM7CisgICAg
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q2FsbCwgRnVuY3Rpb25QdHI+ID4gbV9jYWxsczsKICAgICB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAK
aW5kZXggZDYwZmQ0ZDlmNmNjNTk3MTU1MGRiZTM0NmVlNTk2MWJjYzZhY2YyNC4uNzAxYWQyOGY5
YzdiZWZiZmMwOTkwY2VmZjA2MDk4YzU3MTEyOTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMTAyLDggKzEwMiwxOTUgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIHNxcnRUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERh
dGEsIEV4ZWN1dGFibGVQb28KICAgICByZXR1cm4gaml0LmZpbmFsaXplKCpnbG9iYWxEYXRhLCBn
bG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpKTsKIH0KIAorI2lmIE9TKERBUldJ
TikgfHwgKE9TKFdJTkRPV1MpICYmIENQVShYODYpKQorI2RlZmluZSBTWU1CT0xfU1RSSU5HKG5h
bWUpICJfIiAjbmFtZQorI2Vsc2UKKyNkZWZpbmUgU1lNQk9MX1NUUklORyhuYW1lKSAjbmFtZQor
I2VuZGlmCisgICAgCisjaWYgKE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSkgJiYgQ1BVKFg4Nl82
NCkKKyNkZWZpbmUgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKG5hbWUpICNuYW1lICJAcGx0Igor
I2VsaWYgT1MoREFSV0lOKSB8fCAoQ1BVKFg4Nl82NCkgJiYgQ09NUElMRVIoTUlOR1cpICYmICFH
Q0NfVkVSU0lPTl9BVF9MRUFTVCg0LCA1LCAwKSkKKyNkZWZpbmUgU1lNQk9MX1NUUklOR19SRUxP
Q0FUSU9OKG5hbWUpICJfIiAjbmFtZQorI2VsaWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoTUlOR1cp
CisjZGVmaW5lIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihuYW1lKSAiQCIgI25hbWUgIkA0Igor
I2Vsc2UKKyNkZWZpbmUgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKG5hbWUpICNuYW1lCisjZW5k
aWYKKworI2RlZmluZSBEMkRXcmFwcGVyKGZ1bmN0aW9uKSBmdW5jdGlvbiMjV3JhcHBlcgorCitl
eHRlcm4gIkMiIHsKKworZG91YmxlIGpzUm91bmQoZG91YmxlKTsKK2RvdWJsZSBqc1JvdW5kKGRv
dWJsZSBkKQoreworICAgIGRvdWJsZSBpbnRlZ2VyID0gY2VpbChkKTsKKyAgICByZXR1cm4gaW50
ZWdlciAtIChpbnRlZ2VyIC0gZCA+IDAuNSk7Cit9CisKK30KKyAgICAKKyNpZiBDUFUoWDg2XzY0
KSAmJiBDT01QSUxFUihHQ0MpCisKKyNkZWZpbmUgZGVmaW5lRDJEV3JhcHBlcihmdW5jdGlvbikg
XAorICAgIGFzbSggXAorICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMj
VGh1bmspICJcbiIgXAorICAgICAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIjoi
ICJcbiIgXAorICAgICAgICAiY2FsbCAiIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihmdW5jdGlv
bikgIlxuIiBcCisgICAgICAgICJyZXRcbiIgXAorICAgICk7XAorICAgIGV4dGVybiAiQyIgeyBc
CisgICAgICAgIGRvdWJsZSBmdW5jdGlvbiMjVGh1bmsoZG91YmxlKTsgXAorICAgIH0gXAorICAg
IHN0YXRpYyBkb3VibGUgKCpjb25zdCBEMkRXcmFwcGVyKGZ1bmN0aW9uKSkoZG91YmxlKSA9ICZm
dW5jdGlvbiMjVGh1bms7CisKKyNlbGlmIENQVShYODYpICYmIENPTVBJTEVSKEdDQykKKyNkZWZp
bmUgZGVmaW5lRDJEV3JhcHBlcihmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICAgICAgIi5n
bG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiXG4iIFwKKyAgICAgICAgIFNZ
TUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiOiIgIlxuIiBcCisgICAgICAgICAic3VibCAk
OCwgJWVzcFxuIiBcCisgICAgICAgICAibW92c2QgJXhtbTAsICglZXNwKSBcbiIgXAorICAgICAg
ICAgImNhbGwgIiBTWU1CT0xfU1RSSU5HX1JFTE9DQVRJT04oZnVuY3Rpb24pICJcbiIgXAorICAg
ICAgICAgImZzdHBsICglZXNwKSBcbiIgXAorICAgICAgICAgIm1vdnNkICglZXNwKSwgJXhtbTAg
XG4iIFwKKyAgICAgICAgICJhZGRsICQ4LCAlZXNwXG4iIFwKKyAgICAgICAgICJyZXRcbiIgXAor
ICAgICk7XAorICAgIGV4dGVybiAiQyIgeyBcCisgICAgICAgIGRvdWJsZSBmdW5jdGlvbiMjVGh1
bmsoZG91YmxlKTsgXAorICAgIH0gXAorICAgIHN0YXRpYyBkb3VibGUgKCpjb25zdCBEMkRXcmFw
cGVyKGZ1bmN0aW9uKSkoZG91YmxlKSA9ICZmdW5jdGlvbiMjVGh1bms7CisKKyNlbHNlCisKKyNk
ZWZpbmUgZGVmaW5lRDJEV3JhcHBlcihmdW5jdGlvbikgXAorc3RhdGljIGRvdWJsZSAoKmNvbnN0
IEQyRFdyYXBwZXIoZnVuY3Rpb24pKShkb3VibGUpID0gMAorCisjZW5kaWYKKworZGVmaW5lRDJE
V3JhcHBlcihqc1JvdW5kKTsKK2RlZmluZUQyRFdyYXBwZXIoZXhwKTsKK2RlZmluZUQyRFdyYXBw
ZXIobG9nKTsKK2RlZmluZUQyRFdyYXBwZXIoZmxvb3IpOworZGVmaW5lRDJEV3JhcHBlcihjZWls
KTsKKworTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGZsb29yVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhLCBFeGVjdXRhYmxlUG9vbCogcG9vbCkKK3sKKyAgICBTcGVjaWFsaXpl
ZFRodW5rSklUIGppdCgxLCBnbG9iYWxEYXRhLCBwb29sKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCBub25JbnRKdW1wOworICAgIGppdC5sb2FkSW50MzJBcmd1bWVudCgwLCBTcGVjaWFsaXpl
ZFRodW5rSklUOjpyZWdUMCwgbm9uSW50SnVtcCk7CisgICAgaml0LnJldHVybkludDMyKFNwZWNp
YWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBpZiAoIUQyRFdyYXBwZXIoZmxvb3IpIHx8ICFq
aXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKKyAgICAgICAgaml0LmFwcGVuZEZhaWx1cmUo
bm9uSW50SnVtcCk7CisgICAgICAgIHJldHVybiBqaXQuZmluYWxpemUoKmdsb2JhbERhdGEsIGds
b2JhbERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkpOworICAgIH0KKyAgICBub25JbnRK
dW1wLmxpbmsoJmppdCk7CisgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXpl
ZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CisgICAgaml0
LmNhbGxEb3VibGVUb0RvdWJsZShEMkRXcmFwcGVyKGZsb29yKSk7CisgICAgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6SnVtcExpc3QgZG91YmxlUmVzdWx0OworICAgIGppdC5icmFuY2hDb252ZXJ0RG91
YmxlVG9JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5r
SklUOjpyZWdUMCwgZG91YmxlUmVzdWx0LCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsK
KyAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOworICAgIGRv
dWJsZVJlc3VsdC5saW5rKCZqaXQpOworICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMCk7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSgqZ2xvYmFsRGF0YSwg
Z2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwoKSk7Cit9CisKK01hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjZWlsVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBF
eGVjdXRhYmxlUG9vbCogcG9vbCkKK3sKKyAgICBTcGVjaWFsaXplZFRodW5rSklUIGppdCgxLCBn
bG9iYWxEYXRhLCBwb29sKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub25JbnRKdW1wOwor
ICAgIGppdC5sb2FkSW50MzJBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwg
bm9uSW50SnVtcCk7CisgICAgaml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJl
Z1QwKTsKKyAgICBpZiAoIUQyRFdyYXBwZXIoY2VpbCkgfHwgIWppdC5zdXBwb3J0c0Zsb2F0aW5n
UG9pbnQoKSkgeworICAgICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRKdW1wKTsKKyAgICAg
ICAgcmV0dXJuIGppdC5maW5hbGl6ZSgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+aml0U3R1YnMt
PmN0aU5hdGl2ZUNhbGwoKSk7CisgICAgfQorICAgIG5vbkludEp1bXAubGluaygmaml0KTsKKyAg
ICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBqaXQuY2FsbERvdWJsZVRvRG91Ymxl
KEQyRFdyYXBwZXIoY2VpbCkpOworICAgIFNwZWNpYWxpemVkVGh1bmtKSVQ6Okp1bXBMaXN0IGRv
dWJsZVJlc3VsdDsKKyAgICBqaXQuYnJhbmNoQ29udmVydERvdWJsZVRvSW50MzIoU3BlY2lhbGl6
ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIGRvdWJsZVJl
c3VsdCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7CisgICAgaml0LnJldHVybkludDMy
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBkb3VibGVSZXN1bHQubGluaygmaml0
KTsKKyAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwor
ICAgIHJldHVybiBqaXQuZmluYWxpemUoKmdsb2JhbERhdGEsIGdsb2JhbERhdGEtPmppdFN0dWJz
LT5jdGlOYXRpdmVDYWxsKCkpOworfQorCitzdGF0aWMgY29uc3QgZG91YmxlIG5lZ2F0aXZlWmVy
b0NvbnN0YW50ID0gLTAuMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgb25lQ29uc3RhbnQgPSAxLjA7
CiBzdGF0aWMgY29uc3QgZG91YmxlIG5lZ2F0aXZlSGFsZkNvbnN0YW50ID0gLTAuNTsKKyAgICAK
K01hY3JvQXNzZW1ibGVyQ29kZVB0ciByb3VuZFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBvb2wqIHBvb2wpCit7CisgICAgU3BlY2lhbGl6ZWRUaHVu
a0pJVCBqaXQoMSwgZ2xvYmFsRGF0YSwgcG9vbCk7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
bm9uSW50SnVtcDsKKyAgICBqaXQubG9hZEludDMyQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDAsIG5vbkludEp1bXApOworICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXpl
ZFRodW5rSklUOjpyZWdUMCk7CisgICAgaWYgKCFEMkRXcmFwcGVyKGpzUm91bmQpIHx8ICFqaXQu
c3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKKyAgICAgICAgaml0LmFwcGVuZEZhaWx1cmUobm9u
SW50SnVtcCk7CisgICAgICAgIHJldHVybiBqaXQuZmluYWxpemUoKmdsb2JhbERhdGEsIGdsb2Jh
bERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkpOworICAgIH0KKyAgICBub25JbnRKdW1w
LmxpbmsoJmppdCk7CisgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CisgICAgaml0LmNh
bGxEb3VibGVUb0RvdWJsZShEMkRXcmFwcGVyKGpzUm91bmQpKTsKKyAgICBTcGVjaWFsaXplZFRo
dW5rSklUOjpKdW1wTGlzdCBkb3VibGVSZXN1bHQ7CisgICAgaml0LmJyYW5jaENvbnZlcnREb3Vi
bGVUb0ludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OnJlZ1QwLCBkb3VibGVSZXN1bHQsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwor
ICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CisgICAgZG91
YmxlUmVzdWx0LmxpbmsoJmppdCk7CisgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QwKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKCpnbG9iYWxEYXRhLCBn
bG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpKTsKK30KKworTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGV4cFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhl
Y3V0YWJsZVBvb2wqIHBvb2wpCit7CisgICAgaWYgKCFEMkRXcmFwcGVyKGV4cCkpCisgICAgICAg
IHJldHVybiBnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpOworICAgIFNwZWNp
YWxpemVkVGh1bmtKSVQgaml0KDEsIGdsb2JhbERhdGEsIHBvb2wpOworICAgIGlmICghaml0LnN1
cHBvcnRzRmxvYXRpbmdQb2ludCgpKQorICAgICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+aml0U3R1
YnMtPmN0aU5hdGl2ZUNhbGwoKTsKKyAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAg
ICBqaXQuY2FsbERvdWJsZVRvRG91YmxlKEQyRFdyYXBwZXIoZXhwKSk7CisgICAgaml0LnJldHVy
bkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKKyAgICByZXR1cm4gaml0LmZp
bmFsaXplKCpnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgp
KTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGxvZ1RodW5rR2VuZXJhdG9yKEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBvb2wqIHBvb2wpCit7CisgICAgaWYgKCFEMkRX
cmFwcGVyKGxvZykpCisgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0
aXZlQ2FsbCgpOworICAgIFNwZWNpYWxpemVkVGh1bmtKSVQgaml0KDEsIGdsb2JhbERhdGEsIHBv
b2wpOworICAgIGlmICghaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKQorICAgICAgICByZXR1
cm4gZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwoKTsKKyAgICBqaXQubG9hZERv
dWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVk
VGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBqaXQuY2FsbERvdWJsZVRvRG91YmxlKEQyRFdyYXBwZXIo
bG9nKSk7CisgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1Qw
KTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKCpnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLT5qaXRT
dHVicy0+Y3RpTmF0aXZlQ2FsbCgpKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGFic1Ro
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBvb2wqIHBv
b2wpCit7CisgICAgU3BlY2lhbGl6ZWRUaHVua0pJVCBqaXQoMSwgZ2xvYmFsRGF0YSwgcG9vbCk7
CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm9uSW50SnVtcDsKKyAgICBqaXQubG9hZEludDMy
QXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIG5vbkludEp1bXApOworICAg
IGppdC5yc2hpZnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMigzMSksIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QxKTsKKyAgICBqaXQu
YWRkMzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJl
Z1QwKTsKKyAgICBqaXQueG9yMzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBqaXQuYXBwZW5kRmFpbHVyZShqaXQuYnJhbmNoMzIo
TWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxIDw8IDMxKSkpOworICAgIGppdC5yZXR1cm5JbnQzMihT
cGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CisgICAgaWYgKCFqaXQuc3VwcG9ydHNEb3VibGVC
aXRvcHMoKSkgeworICAgICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRKdW1wKTsKKyAgICAg
ICAgcmV0dXJuIGppdC5maW5hbGl6ZSgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+aml0U3R1YnMt
PmN0aU5hdGl2ZUNhbGwoKSk7CisgICAgfQorICAgIG5vbkludEp1bXAubGluaygmaml0KTsKKyAg
ICAvLyBTaGFtZSBhYm91dCB0aGUgZG91YmxlIGludCBjb252ZXJzaW9uIGhlcmUuCisgICAgaml0
LmxvYWREb3VibGUoJm5lZ2F0aXZlWmVyb0NvbnN0YW50LCBTcGVjaWFsaXplZFRodW5rSklUOjpm
cFJlZ1QxKTsKKyAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBqaXQuYW5kbm90
RG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6
OmZwUmVnVDEpOworICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBS
ZWdUMSk7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+
aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwoKSk7Cit9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBw
b3dUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4ZWN1dGFibGVQb29s
KiBwb29sKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dl
bmVyYXRvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgK
aW5kZXggMTUyNjFmNzhiZTRiNjM3YzNmNzJiODljNzM5ZWJlNWRkOTU0NTI3Zi4uNmE2OWNlMjcy
MGIxOGQ5YzQ3OTU5ODhhNjAzYThhM2YwOWNlZmYyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCkBAIC0zNyw2ICszNywxMiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKEpT
R2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGNoYXJBdFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CiAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKEpTR2xv
YmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGFi
c1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CisgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIGNlaWxUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqLCBFeGVj
dXRhYmxlUG9vbCopOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBleHBUaHVua0dlbmVyYXRv
cihKU0dsb2JhbERhdGEqLCBFeGVjdXRhYmxlUG9vbCopOworICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBmbG9vclRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7
CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGxvZ1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0
YSosIEV4ZWN1dGFibGVQb29sKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJvdW5kVGh1
bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiwgRXhlY3V0YWJsZVBvb2wqKTsKICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgc3FydFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFi
bGVQb29sKik7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHBvd1RodW5rR2VuZXJhdG9yKEpT
R2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99381</attachid>
            <date>2011-06-30 15:50:45 -0700</date>
            <delta_ts>2011-06-30 16:04:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63757-20110630155044.patch</filename>
            <type>text/plain</type>
            <size>22756</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAxNjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGU2
YmIyYjIwMjAwYzE4MTY3ZGM3ODYzNGFiM2M2MDUwNDNjMDRlZTQuLjk1NTY1YTNlYzZhYzMwNGYz
YjYxYTRhYjI0YTBiZjA0NjNkY2I0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDUwIEBACisyMDExLTA2LTMwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG9wdGlt
aXNlZCBwYXRocyBmb3IgYSBmZXcgbWF0aHMgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NworCisgICAgICAgIFRoaXMgYWRkcyBz
cGVjaWFsaXNlZCB0aHVua3MgZm9yIE1hdGguYWJzLCBNYXRoLnJvdW5kLCBNYXRoLmNlaWwsCisg
ICAgICAgIE1hdGguZmxvb3IsIE1hdGgubG9nLCBhbmQgTWF0aC5leHAgYXMgdGhleSBhcmUgYXBw
YXJlbnRseSBtb3JlCisgICAgICAgIGltcG9ydGFudCBpbiByZWFsIHdlYiBjb250ZW50IHRoYW4g
d2UgdGhvdWdodCwgd2hpY2ggaXMgc29tZXdoYXQKKyAgICAgICAgbWluZC1ib2dnbGluZy4gIE9u
IGF2ZXJhZ2UgZG91YmxlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGNvbW1vbgorICAgICAgICBj
YXNlcyAoZWcuIGFjdHVhbGx5IHBhc3NpbmcgbnVtYmVycyBpbikuICBUaGV5J3JlIG5vdCBhcyBl
ZmZpY2llbnQKKyAgICAgICAgYXMgdGhleSBjb3VsZCBiZSwgYnV0IHRoaXMgd2F5IGdpdmVzIHRo
ZW0gdGhlIG1vc3QgcG9ydGFiaWxpdHkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnN1cHBvcnRzRG91
YmxlQml0b3BzKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmFuZG5vdERvdWJs
ZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9ydHNEb3VibGVCaXRvcHMpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjphbmRub3REb3VibGUpOgorICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJNSVBTOjphbmRub3REb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6
OnN1cHBvcnRzRG91YmxlQml0b3BzKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJTSDQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN1cHBvcnRzRG91Ymxl
Qml0b3BzKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OmFuZG5vdERvdWJsZSk6
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Lmg6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyWDg2OjpzdXBwb3J0c0RvdWJsZUJpdG9wcyk6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uOjphbmRub3REb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6
c3VwcG9ydHNEb3VibGVCaXRvcHMpOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIu
aDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjphbmRucGRfcnIpOgorICAgICAgICAqIGNy
ZWF0ZV9oYXNoX3RhYmxlOgorICAgICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6Cisg
ICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OmZpbmFsaXplKToKKyAgICAgICAgKEpT
Qzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6Y2FsbERvdWJsZVRvRG91YmxlKToKKyAgICAgICAgKiBq
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcDoKKyAgICAgICAgKEpTQzo6Zmxvb3JUaHVua0dlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OmNlaWxUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnJv
dW5kVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpleHBUaHVua0dlbmVyYXRvcik6Cisg
ICAgICAgIChKU0M6OmxvZ1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6YWJzVGh1bmtH
ZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuaDoKKwogMjAxMS0wNi0z
MCAgQ2FyeSBDbGFyayAgPGNhcnljbGFya0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCmluZGV4IDZkODQ3OWZiZTA4MWExMzJkNTk2ODEyODM3
MmYwYzUwM2Q4OWRjNWEuLjY1ZmI1ODQ3YzVlMTRiNGJkNzk1NDg2ODBhYzUwMTMyYmJmMjljMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNLmgKQEAgLTc4OSw2ICs3ODksNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1
cm4gc19pc1ZGUFByZXNlbnQ7CiAgICAgfQorICAgIGJvb2wgc3VwcG9ydHNEb3VibGVCaXRvcHMo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0
QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC04NTUsNiArODU2
LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnZzcXJ0X2Y2NF9yKGRl
c3QsIHNyYyk7CiAgICAgfQorICAgIAorICAgIHZvaWQgYW5kbm90RG91YmxlKEZQUmVnaXN0ZXJJ
RCwgRlBSZWdpc3RlcklEKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQogCiAgICAgdm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBS
ZWdpc3RlcklEIGRlc3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBmNGNjZmM0MjkzZjdhYjZkMmU0
NjJhMzVhZTNmMTZmODlmYmY0OTJjLi5lMTRmYjhjMDlhZTExMjcwMGViNWY5ODFkZWVhMWUyYmM4
NzlhODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtNTY3LDYgKzU2Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisgICAgYm9vbCBzdXBwb3J0c0RvdWJsZUJpdG9w
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lkIGxvYWREb3VibGUoSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAgLTY0Niw2ICs2
NDcsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgfQorICAgIAorICAgIHZvaWQgYW5kbm90RG91YmxlKEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3Rl
cklEKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogCiAgICAg
dm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggYTU5MDUwNDAwMjEzZmU2ZmZmOGQxYTJiNzE4MTYxZDVi
NGI2NjFkOS4uOTM2YTA2OTE2OWFjYmZjZGY2NmJiZGRjZWY1N2NiYzEwNmExNzJjYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCkBAIC00NjAsNiArNDYwLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLnNxcnRkKGRzdCwgc3JjKTsKICAgICB9CisgICAgCisgICAgdm9pZCBhbmRub3REb3VibGUo
RlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CiAKICAgICAvLyBNZW1vcnkgYWNjZXNzIG9wZXJhdGlvbnM6CiAgICAg
Ly8KQEAgLTgxNiw2ICs4MjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgogICAgIH0KKyAgICBib29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIC8vIFN0YWNrIG1hbmlwdWxhdGlvbiBvcGVyYXRpb25zOgogICAg
IC8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyU0g0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyU0g0LmgKaW5kZXggYTA5NDgwZDFmM2ExOThhZGUwYzU1ZmZhZTk2ZTU4YTQyZDgyYjA1My4u
NDU4NWE1ZDY0MzVhMDgzNGViMWZkZThmOTg5ODFhZWQ0NDUyZGNiZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaApAQCAtNzYy
LDYgKzc2Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5j
YXRlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1Bv
aW50U3FydCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHN1cHBvcnRzRG91Ymxl
Qml0b3BzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbG9hZERvdWJsZShJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtMTEw
MCw2ICsxMTAxLDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmRtb3ZSZWdS
ZWcoc3JjLCBkZXN0KTsKICAgICAgICAgbV9hc3NlbWJsZXIuZHNxcnQoZGVzdCk7CiAgICAgfQor
ICAgIAorICAgIHZvaWQgYW5kbm90RG91YmxlKEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogCiAgICAgSnVtcCBi
cmFuY2hUZXN0OChSZXN1bHRDb25kaXRpb24gY29uZCwgQWRkcmVzcyBhZGRyZXNzLCBUcnVzdGVk
SW1tMzIgbWFzayA9IFRydXN0ZWRJbW0zMigtMSkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCmluZGV4IGVjMjQ3NzRl
MThiOWM1NzdhZTc4MzYwZDU2MWVkOGNhNzdhZWEyMmYuLjUwZjRkOWMxMjMzNGZjNjVmOTkxMmQ1
N2Y0YWRjN2JlMjc5YTk4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgKQEAgLTE2Niw2ICsxNjYsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gU2VlIGNvbW1lbnQgb24gTWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3VwcG9ydHNGbG9hdGlu
Z1BvaW50VHJ1bmNhdGUoKQogICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUo
KSBjb25zdCB7IHJldHVybiBtX2lzU1NFMlByZXNlbnQ7IH0KICAgICBib29sIHN1cHBvcnRzRmxv
YXRpbmdQb2ludFNxcnQoKSBjb25zdCB7IHJldHVybiBtX2lzU1NFMlByZXNlbnQ7IH0KKyAgICBi
b29sIHN1cHBvcnRzRG91YmxlQml0b3BzKCkgY29uc3QgeyByZXR1cm4gbV9pc1NTRTJQcmVzZW50
OyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgYm9vbCBtX2lzU1NFMlByZXNlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmgKaW5kZXggOTMzYjM2YjI5MzI3ZTY5MjAzMjdkZGZjNWRjZWI5YjJhNGFhZDFhYy4u
MDU1NDRkMjY1NzdlOTM5ZGE5OTUzNDQ0YjE0ZDdkMTllNmU5YWQ4OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21t
b24uaApAQCAtNDIzLDYgKzQyMywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnNx
cnRzZF9ycihzcmMsIGRzdCk7CiAgICAgfQogCisgICAgdm9pZCBhbmRub3REb3VibGUoRlBSZWdp
c3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVy
LmFuZG5wZF9ycihzcmMsIGRzdCk7CisgICAgfQorCiAgICAgLy8gTWVtb3J5IGFjY2VzcyBvcGVy
YXRpb25zOgogICAgIC8vCiAgICAgLy8gTG9hZHMgYXJlIG9mIHRoZSBmb3JtIGxvYWQoYWRkcmVz
cywgZGVzdGluYXRpb24pIGFuZCBzdG9yZXMgb2YgdGhlIGZvcm0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCBl
MmEyMGNiZDQyNTM1M2NkOWJjMmVlOGZkNzljMTUzMzU2NTYxNmYwLi5iZGU2ZWNjMDNhN2Q0ZGRl
MThkMzQ1ZDZmMjNkZWQyNjNlMTM5YTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBAIC00NTYsNiArNDU2LDcg
QEAgcHVibGljOgogICAgIC8vIFNlZSBjb21tZW50IG9uIE1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1
cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkKICAgICBib29sIHN1cHBvcnRzRmxvYXRpbmdQ
b2ludFRydW5jYXRlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgc3VwcG9ydHNG
bG9hdGluZ1BvaW50U3FydCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHN1cHBv
cnRzRG91YmxlQml0b3BzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBMaW5rQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggMTRkZjAwNmZhNDgzMDBjZjkyODExMjA0YjQ1M2Rk
M2VmMWVjNzI3YS4uYzA2YTEzMTdlNmMzYzNmMWQ5YzAzMDAzYWQzMmE5NGM3ZTFiYzJjMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBAIC0x
NzAsNiArMTcwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgT1AyX1NVQlNEX1ZzZFdzZCAgICA9IDB4
NUMsCiAgICAgICAgIE9QMl9ESVZTRF9Wc2RXc2QgICAgPSAweDVFLAogICAgICAgICBPUDJfU1FS
VFNEX1ZzZFdzZCAgID0gMHg1MSwKKyAgICAgICAgT1AyX0FORE5QRF9WcGRXcGQgICA9IDB4NTUs
CiAgICAgICAgIE9QMl9YT1JQRF9WcGRXcGQgICAgPSAweDU3LAogICAgICAgICBPUDJfTU9WRF9W
ZEVkICAgICAgID0gMHg2RSwKICAgICAgICAgT1AyX01PVkRfRWRWZCAgICAgICA9IDB4N0UsCkBA
IC0xNDU3LDYgKzE0NTgsMTIgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRl
T3AoT1AyX1hPUlBEX1ZwZFdwZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0ZXJJRClzcmMpOwog
ICAgIH0KIAorICAgIHZvaWQgYW5kbnBkX3JyKFhNTVJlZ2lzdGVySUQgc3JjLCBYTU1SZWdpc3Rl
cklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsK
KyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9BTkROUERfVnBkV3BkLCAoUmVnaXN0
ZXJJRClkc3QsIChSZWdpc3RlcklEKXNyYyk7CisgICAgfQorCiAgICAgdm9pZCBzcXJ0c2RfcnIo
WE1NUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9m
b3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9o
YXNoX3RhYmxlCmluZGV4IDU5YjU3NGFhZjU2MWZlOGUwZjAwMDBmZTAyN2ZjZDA0NTNjYzQxNGIu
LjEzOTdmN2VlZDk5N2E1N2JkN2Y2NzU2ZjljY2Q5MjRmZTVlNTM4MGYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKQEAgLTI3OCwxNSArMjc4LDM1IEBAIHN1YiBvdXRw
dXQoKSB7CiAgICAgICAgIGlmICgka2V5IGVxICJjaGFyQXQiKSB7CiAgICAgICAgICAgICAkdGh1
bmtHZW5lcmF0b3IgPSAiY2hhckF0VGh1bmtHZW5lcmF0b3IiOwogICAgICAgICB9Ci0gICAgICAg
IGlmICgka2V5IGVxICJzcXJ0IikgewotICAgICAgICAgICAgJHRodW5rR2VuZXJhdG9yID0gInNx
cnRUaHVua0dlbmVyYXRvciI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCRrZXkgZXEgInBvdyIp
IHsKLSAgICAgICAgICAgICR0aHVua0dlbmVyYXRvciA9ICJwb3dUaHVua0dlbmVyYXRvciI7Ci0g
ICAgICAgIH0KICAgICAgICAgaWYgKCRrZXkgZXEgImZyb21DaGFyQ29kZSIpIHsKICAgICAgICAg
ICAgICR0aHVua0dlbmVyYXRvciA9ICJmcm9tQ2hhckNvZGVUaHVua0dlbmVyYXRvciI7CiAgICAg
ICAgIH0KKyAgICAgICAgaWYgKCRuYW1lIGVxICJtYXRoVGFibGUiKSB7CisgICAgICAgICAgICBp
ZiAoJGtleSBlcSAic3FydCIpIHsKKyAgICAgICAgICAgICAgICAkdGh1bmtHZW5lcmF0b3IgPSAi
c3FydFRodW5rR2VuZXJhdG9yIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgka2V5
IGVxICJwb3ciKSB7CisgICAgICAgICAgICAgICAgJHRodW5rR2VuZXJhdG9yID0gInBvd1RodW5r
R2VuZXJhdG9yIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgka2V5IGVxICJhYnMi
KSB7CisgICAgICAgICAgICAgICAgJHRodW5rR2VuZXJhdG9yID0gImFic1RodW5rR2VuZXJhdG9y
IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgka2V5IGVxICJmbG9vciIpIHsKKyAg
ICAgICAgICAgICAgICAkdGh1bmtHZW5lcmF0b3IgPSAiZmxvb3JUaHVua0dlbmVyYXRvciI7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJGtleSBlcSAiY2VpbCIpIHsKKyAgICAgICAg
ICAgICAgICAkdGh1bmtHZW5lcmF0b3IgPSAiY2VpbFRodW5rR2VuZXJhdG9yIjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmICgka2V5IGVxICJyb3VuZCIpIHsKKyAgICAgICAgICAgICAg
ICAkdGh1bmtHZW5lcmF0b3IgPSAicm91bmRUaHVua0dlbmVyYXRvciI7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBpZiAoJGtleSBlcSAiZXhwIikgeworICAgICAgICAgICAgICAgICR0aHVu
a0dlbmVyYXRvciA9ICJleHBUaHVua0dlbmVyYXRvciI7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAoJGtleSBlcSAibG9nIikgeworICAgICAgICAgICAgICAgICR0aHVua0dlbmVyYXRv
ciA9ICJsb2dUaHVua0dlbmVyYXRvciI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAg
ICAgcHJpbnQgIiAgIHsgXCIka2V5XCIsICRhdHRyc1skaV0sIChpbnRwdHJfdCkiIC4gJGNhc3RT
dHIgLiAiKCRmaXJzdFZhbHVlKSwgKGludHB0cl90KSRzZWNvbmRWYWx1ZSBUSFVOS19HRU5FUkFU
T1IoJHRodW5rR2VuZXJhdG9yKSB9LFxuIjsKICAgICAgICAgJGkrKzsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKaW5kZXggZTFkOTM1M2NiYjZmMmI2
OGRiMDNhN2NhNmE1NDRhZmYyMjBjNWViOC4uNWM2OTYxZGY4YTRmODJmNTlkYzczMGZjMzE3ZDEx
MjUxYTkwYzQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVy
ZmFjZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQu
aApAQCAtMjc2LDcgKzI3Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBsb2FkRG91Ymxl
KGFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVySW5kZXgpLCBkc3QpOwogICAgICAgICBkb25lLmxp
bmsodGhpcyk7CiAgICAgICAgIHJldHVybiBub3RJbnQ7Ci0gICAgfSAgICAKKyAgICB9CisKICNl
bmRpZgogCiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTMxNSw3ICszMTYsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgZG9uZS5saW5rKHRoaXMpOwogICAgICAgICByZXR1cm4gbm90TnVtYmVy
OwogICAgIH0KLSAgICAKKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBKU0ludGVyZmFjZUpJVDo6
ZW1pdEZhc3RBcml0aEltbVRvSW50KFJlZ2lzdGVySUQpCiAgICAgewogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgKaW5kZXggMTNhNWMy
ZWVlNmU5YWZlMzFlODg5NjU3MWI0OTJjMDFkYmI3NjA2Mi4uNmE5ZDQzYjJkYTc4Yzc2YzAwMWUw
ZTE1MmM4NTA1YmU1MzdjMmFiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9TcGVjaWFsaXplZFRodW5rSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9T
cGVjaWFsaXplZFRodW5rSklULmgKQEAgLTEyNyw5ICsxMjcsMTggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHsKICAgICAgICAgICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoZ2xvYmFsRGF0
YSwgdGhpcywgbV9wb29sLmdldCgpKTsKICAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsobV9m
YWlsdXJlcywgQ29kZUxvY2F0aW9uTGFiZWwoZmFsbGJhY2spKTsKKyAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX2NhbGxzLnNpemUoKTsgaSsrKQorICAgICAgICAgICAgICAg
IHBhdGNoQnVmZmVyLmxpbmsobV9jYWxsc1tpXS5maXJzdCwgbV9jYWxsc1tpXS5zZWNvbmQpOwog
ICAgICAgICAgICAgcmV0dXJuIHBhdGNoQnVmZmVyLmZpbmFsaXplQ29kZSgpLm1fY29kZTsKICAg
ICAgICAgfQotICAgICAgICAKKworICAgICAgICAvLyBBc3N1bWVzIHRoYXQgdGhlIHRhcmdldCBm
dW5jdGlvbiB1c2VzIGZwUmVnaXN0ZXIwIGFzIHRoZSBmaXJzdCBhcmd1bWVudAorICAgICAgICAv
LyBhbmQgcmV0dXJuIHZhbHVlLiAgTGlrZSBhbnkgc2Vuc2libGUgYXJjaGl0ZWN0dXJlIHdvdWxk
LgorICAgICAgICB2b2lkIGNhbGxEb3VibGVUb0RvdWJsZShGdW5jdGlvblB0ciBmdW5jdGlvbikK
KyAgICAgICAgeworICAgICAgICAgICAgbV9jYWxscy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoY2Fs
bCgpLCBmdW5jdGlvbikpOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAgICAgICBpbnQg
YXJndW1lbnRUb1ZpcnR1YWxSZWdpc3Rlcih1bnNpZ25lZCBhcmd1bWVudCkKICAgICAgICAgewpA
QCAtMTU2LDYgKzE2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU0dsb2JhbERhdGEq
IG1fZ2xvYmFsRGF0YTsKICAgICAgICAgUmVmUHRyPEV4ZWN1dGFibGVQb29sPiBtX3Bvb2w7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBtX2ZhaWx1cmVzOworICAgICAgICBWZWN0
b3I8c3RkOjpwYWlyPENhbGwsIEZ1bmN0aW9uUHRyPiA+IG1fY2FsbHM7CiAgICAgfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IGQ2
MGZkNGQ5ZjZjYzU5NzE1NTBkYmUzNDZlZTU5NjFiY2M2YWNmMjQuLjlkMjBhNDY1N2RhZjAzMzMx
YzFmNjU5NDVkMTA3MjFmMTk5OTg2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAKQEAgLTEwMiw4ICsxMDIsMTk1IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBzcXJ0VGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBFeGVj
dXRhYmxlUG9vCiAgICAgcmV0dXJuIGppdC5maW5hbGl6ZSgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0
YS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwoKSk7CiB9CiAKKyNpZiBPUyhEQVJXSU4pIHx8IChP
UyhXSU5ET1dTKSAmJiBDUFUoWDg2KSkKKyNkZWZpbmUgU1lNQk9MX1NUUklORyhuYW1lKSAiXyIg
I25hbWUKKyNlbHNlCisjZGVmaW5lIFNZTUJPTF9TVFJJTkcobmFtZSkgI25hbWUKKyNlbmRpZgor
ICAgIAorI2lmIChPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpICYmIENQVShYODZfNjQpCisjZGVm
aW5lIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihuYW1lKSAjbmFtZSAiQHBsdCIKKyNlbGlmIE9T
KERBUldJTikgfHwgKENQVShYODZfNjQpICYmIENPTVBJTEVSKE1JTkdXKSAmJiAhR0NDX1ZFUlNJ
T05fQVRfTEVBU1QoNCwgNSwgMCkpCisjZGVmaW5lIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihu
YW1lKSAiXyIgI25hbWUKKyNlbGlmIENQVShYODYpICYmIENPTVBJTEVSKE1JTkdXKQorI2RlZmlu
ZSBTWU1CT0xfU1RSSU5HX1JFTE9DQVRJT04obmFtZSkgIkAiICNuYW1lICJANCIKKyNlbHNlCisj
ZGVmaW5lIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihuYW1lKSAjbmFtZQorI2VuZGlmCisKKyNk
ZWZpbmUgVW5hcnlEb3VibGVPcFdyYXBwZXIoZnVuY3Rpb24pIGZ1bmN0aW9uIyNXcmFwcGVyCitl
bnVtIE1hdGhUaHVua0NhbGxpbmdDb252ZW50aW9uIHt9OworZXh0ZXJuICJDIiB7CisKK2RvdWJs
ZSBqc1JvdW5kKGRvdWJsZSk7Citkb3VibGUganNSb3VuZChkb3VibGUgZCkKK3sKKyAgICBkb3Vi
bGUgaW50ZWdlciA9IGNlaWwoZCk7CisgICAgcmV0dXJuIGludGVnZXIgLSAoaW50ZWdlciAtIGQg
PiAwLjUpOworfQorCit9CisgICAgCisjaWYgQ1BVKFg4Nl82NCkgJiYgQ09NUElMRVIoR0NDKQor
CisjZGVmaW5lIGRlZmluZVVuYXJ5RG91YmxlT3BXcmFwcGVyKGZ1bmN0aW9uKSBcCisgICAgYXNt
KCBcCisgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIlxu
IiBcCisgICAgICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiOiIgIlxuIiBcCisg
ICAgICAgICJjYWxsICIgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKGZ1bmN0aW9uKSAiXG4iIFwK
KyAgICAgICAgInJldFxuIiBcCisgICAgKTtcCisgICAgZXh0ZXJuICJDIiB7IFwKKyAgICAgICAg
TWF0aFRodW5rQ2FsbGluZ0NvbnZlbnRpb24gZnVuY3Rpb24jI1RodW5rKE1hdGhUaHVua0NhbGxp
bmdDb252ZW50aW9uKTsgXAorICAgIH0gXAorICAgIHN0YXRpYyBNYXRoVGh1bmtDYWxsaW5nQ29u
dmVudGlvbiAoKlVuYXJ5RG91YmxlT3BXcmFwcGVyKGZ1bmN0aW9uKSkoTWF0aFRodW5rQ2FsbGlu
Z0NvbnZlbnRpb24pID0gJmZ1bmN0aW9uIyNUaHVuazsKKworI2VsaWYgQ1BVKFg4NikgJiYgQ09N
UElMRVIoR0NDKQorI2RlZmluZSBkZWZpbmVVbmFyeURvdWJsZU9wV3JhcHBlcihmdW5jdGlvbikg
XAorICAgIGFzbSggXAorICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24j
I1RodW5rKSAiXG4iIFwKKyAgICAgICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAi
OiIgIlxuIiBcCisgICAgICAgICAic3VibCAkOCwgJWVzcFxuIiBcCisgICAgICAgICAibW92c2Qg
JXhtbTAsICglZXNwKSBcbiIgXAorICAgICAgICAgImNhbGwgIiBTWU1CT0xfU1RSSU5HX1JFTE9D
QVRJT04oZnVuY3Rpb24pICJcbiIgXAorICAgICAgICAgImZzdHBsICglZXNwKSBcbiIgXAorICAg
ICAgICAgIm1vdnNkICglZXNwKSwgJXhtbTAgXG4iIFwKKyAgICAgICAgICJhZGRsICQ4LCAlZXNw
XG4iIFwKKyAgICAgICAgICJyZXRcbiIgXAorICAgICk7XAorICAgIGV4dGVybiAiQyIgeyBcCisg
ICAgICAgIE1hdGhUaHVua0NhbGxpbmdDb252ZW50aW9uIGZ1bmN0aW9uIyNUaHVuayhNYXRoVGh1
bmtDYWxsaW5nQ29udmVudGlvbik7IFwKKyAgICB9IFwKKyAgICBzdGF0aWMgTWF0aFRodW5rQ2Fs
bGluZ0NvbnZlbnRpb24gKCpVbmFyeURvdWJsZU9wV3JhcHBlcihmdW5jdGlvbikpKE1hdGhUaHVu
a0NhbGxpbmdDb252ZW50aW9uKSA9ICZmdW5jdGlvbiMjVGh1bms7CisKKyNlbHNlCisKKyNkZWZp
bmUgZGVmaW5lVW5hcnlEb3VibGVPcFdyYXBwZXIoZnVuY3Rpb24pIFwKK3N0YXRpYyBNYXRoVGh1
bmtDYWxsaW5nQ29udmVudGlvbiAoKmNvbnN0IFVuYXJ5RG91YmxlT3BXcmFwcGVyKGZ1bmN0aW9u
KSkoTWF0aFRodW5rQ2FsbGluZ0NvbnZlbnRpb24pID0gMAorCisjZW5kaWYKKworZGVmaW5lVW5h
cnlEb3VibGVPcFdyYXBwZXIoanNSb3VuZCk7CitkZWZpbmVVbmFyeURvdWJsZU9wV3JhcHBlcihl
eHApOworZGVmaW5lVW5hcnlEb3VibGVPcFdyYXBwZXIobG9nKTsKK2RlZmluZVVuYXJ5RG91Ymxl
T3BXcmFwcGVyKGZsb29yKTsKK2RlZmluZVVuYXJ5RG91YmxlT3BXcmFwcGVyKGNlaWwpOworCitN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgZmxvb3JUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIEV4ZWN1dGFibGVQb29sKiBwb29sKQoreworICAgIFNwZWNpYWxpemVkVGh1bmtK
SVQgaml0KDEsIGdsb2JhbERhdGEsIHBvb2wpOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5v
bkludEp1bXA7CisgICAgaml0LmxvYWRJbnQzMkFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OnJlZ1QwLCBub25JbnRKdW1wKTsKKyAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRU
aHVua0pJVDo6cmVnVDApOworICAgIGlmICghVW5hcnlEb3VibGVPcFdyYXBwZXIoZmxvb3IpIHx8
ICFqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkpIHsKKyAgICAgICAgaml0LmFwcGVuZEZhaWx1
cmUobm9uSW50SnVtcCk7CisgICAgICAgIHJldHVybiBqaXQuZmluYWxpemUoKmdsb2JhbERhdGEs
IGdsb2JhbERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkpOworICAgIH0KKyAgICBub25J
bnRKdW1wLmxpbmsoJmppdCk7CisgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFs
aXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CisgICAg
aml0LmNhbGxEb3VibGVUb0RvdWJsZShVbmFyeURvdWJsZU9wV3JhcHBlcihmbG9vcikpOworICAg
IFNwZWNpYWxpemVkVGh1bmtKSVQ6Okp1bXBMaXN0IGRvdWJsZVJlc3VsdDsKKyAgICBqaXQuYnJh
bmNoQ29udmVydERvdWJsZVRvSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3Bl
Y2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIGRvdWJsZVJlc3VsdCwgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6ZnBSZWdUMSk7CisgICAgaml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJl
Z1QwKTsKKyAgICBkb3VibGVSZXN1bHQubGluaygmaml0KTsKKyAgICBqaXQucmV0dXJuRG91Ymxl
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOworICAgIHJldHVybiBqaXQuZmluYWxpemUo
Kmdsb2JhbERhdGEsIGdsb2JhbERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkpOworfQor
CitNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY2VpbFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBvb2wqIHBvb2wpCit7CisgICAgU3BlY2lhbGl6ZWRUaHVu
a0pJVCBqaXQoMSwgZ2xvYmFsRGF0YSwgcG9vbCk7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
bm9uSW50SnVtcDsKKyAgICBqaXQubG9hZEludDMyQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDAsIG5vbkludEp1bXApOworICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXpl
ZFRodW5rSklUOjpyZWdUMCk7CisgICAgaWYgKCFVbmFyeURvdWJsZU9wV3JhcHBlcihjZWlsKSB8
fCAhaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKSB7CisgICAgICAgIGppdC5hcHBlbmRGYWls
dXJlKG5vbkludEp1bXApOworICAgICAgICByZXR1cm4gaml0LmZpbmFsaXplKCpnbG9iYWxEYXRh
LCBnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpKTsKKyAgICB9CisgICAgbm9u
SW50SnVtcC5saW5rKCZqaXQpOworICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lh
bGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOworICAg
IGppdC5jYWxsRG91YmxlVG9Eb3VibGUoVW5hcnlEb3VibGVPcFdyYXBwZXIoY2VpbCkpOworICAg
IFNwZWNpYWxpemVkVGh1bmtKSVQ6Okp1bXBMaXN0IGRvdWJsZVJlc3VsdDsKKyAgICBqaXQuYnJh
bmNoQ29udmVydERvdWJsZVRvSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3Bl
Y2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIGRvdWJsZVJlc3VsdCwgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6ZnBSZWdUMSk7CisgICAgaml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJl
Z1QwKTsKKyAgICBkb3VibGVSZXN1bHQubGluaygmaml0KTsKKyAgICBqaXQucmV0dXJuRG91Ymxl
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOworICAgIHJldHVybiBqaXQuZmluYWxpemUo
Kmdsb2JhbERhdGEsIGdsb2JhbERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkpOworfQor
CitzdGF0aWMgY29uc3QgZG91YmxlIG5lZ2F0aXZlWmVyb0NvbnN0YW50ID0gLTAuMDsKIHN0YXRp
YyBjb25zdCBkb3VibGUgb25lQ29uc3RhbnQgPSAxLjA7CiBzdGF0aWMgY29uc3QgZG91YmxlIG5l
Z2F0aXZlSGFsZkNvbnN0YW50ID0gLTAuNTsKKyAgICAKK01hY3JvQXNzZW1ibGVyQ29kZVB0ciBy
b3VuZFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBv
b2wqIHBvb2wpCit7CisgICAgU3BlY2lhbGl6ZWRUaHVua0pJVCBqaXQoMSwgZ2xvYmFsRGF0YSwg
cG9vbCk7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm9uSW50SnVtcDsKKyAgICBqaXQubG9h
ZEludDMyQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIG5vbkludEp1bXAp
OworICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CisgICAg
aWYgKCFVbmFyeURvdWJsZU9wV3JhcHBlcihqc1JvdW5kKSB8fCAhaml0LnN1cHBvcnRzRmxvYXRp
bmdQb2ludCgpKSB7CisgICAgICAgIGppdC5hcHBlbmRGYWlsdXJlKG5vbkludEp1bXApOworICAg
ICAgICByZXR1cm4gaml0LmZpbmFsaXplKCpnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLT5qaXRTdHVi
cy0+Y3RpTmF0aXZlQ2FsbCgpKTsKKyAgICB9CisgICAgbm9uSW50SnVtcC5saW5rKCZqaXQpOwor
ICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdU
MCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOworICAgIGppdC5jYWxsRG91YmxlVG9Eb3Vi
bGUoVW5hcnlEb3VibGVPcFdyYXBwZXIoanNSb3VuZCkpOworICAgIFNwZWNpYWxpemVkVGh1bmtK
SVQ6Okp1bXBMaXN0IGRvdWJsZVJlc3VsdDsKKyAgICBqaXQuYnJhbmNoQ29udmVydERvdWJsZVRv
SW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6
cmVnVDAsIGRvdWJsZVJlc3VsdCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7CisgICAg
aml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBkb3VibGVS
ZXN1bHQubGluaygmaml0KTsKKyAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtK
SVQ6OmZwUmVnVDApOworICAgIHJldHVybiBqaXQuZmluYWxpemUoKmdsb2JhbERhdGEsIGdsb2Jh
bERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCkpOworfQorCitNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgZXhwVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBFeGVjdXRh
YmxlUG9vbCogcG9vbCkKK3sKKyAgICBpZiAoIVVuYXJ5RG91YmxlT3BXcmFwcGVyKGV4cCkpCisg
ICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgpOworICAg
IFNwZWNpYWxpemVkVGh1bmtKSVQgaml0KDEsIGdsb2JhbERhdGEsIHBvb2wpOworICAgIGlmICgh
aml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKQorICAgICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+
aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwoKTsKKyAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Qw
KTsKKyAgICBqaXQuY2FsbERvdWJsZVRvRG91YmxlKFVuYXJ5RG91YmxlT3BXcmFwcGVyKGV4cCkp
OworICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Cisg
ICAgcmV0dXJuIGppdC5maW5hbGl6ZSgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+aml0U3R1YnMt
PmN0aU5hdGl2ZUNhbGwoKSk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVB0ciBsb2dUaHVua0dl
bmVyYXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEV4ZWN1dGFibGVQb29sKiBwb29sKQor
eworICAgIGlmICghVW5hcnlEb3VibGVPcFdyYXBwZXIobG9nKSkKKyAgICAgICAgcmV0dXJuIGds
b2JhbERhdGEtPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKCk7CisgICAgU3BlY2lhbGl6ZWRUaHVu
a0pJVCBqaXQoMSwgZ2xvYmFsRGF0YSwgcG9vbCk7CisgICAgaWYgKCFqaXQuc3VwcG9ydHNGbG9h
dGluZ1BvaW50KCkpCisgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0
aXZlQ2FsbCgpOworICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOworICAgIGppdC5jYWxs
RG91YmxlVG9Eb3VibGUoVW5hcnlEb3VibGVPcFdyYXBwZXIobG9nKSk7CisgICAgaml0LnJldHVy
bkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKKyAgICByZXR1cm4gaml0LmZp
bmFsaXplKCpnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCgp
KTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGFic1RodW5rR2VuZXJhdG9yKEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBvb2wqIHBvb2wpCit7CisgICAgU3BlY2lhbGl6
ZWRUaHVua0pJVCBqaXQoMSwgZ2xvYmFsRGF0YSwgcG9vbCk7CisgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgbm9uSW50SnVtcDsKKyAgICBqaXQubG9hZEludDMyQXJndW1lbnQoMCwgU3BlY2lhbGl6
ZWRUaHVua0pJVDo6cmVnVDAsIG5vbkludEp1bXApOworICAgIGppdC5yc2hpZnQzMihTcGVjaWFs
aXplZFRodW5rSklUOjpyZWdUMCwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigzMSksIFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QxKTsKKyAgICBqaXQuYWRkMzIoU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDEsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBqaXQueG9yMzIo
U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsK
KyAgICBqaXQuYXBwZW5kRmFpbHVyZShqaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFs
LCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigxIDw8IDMxKSkpOworICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpy
ZWdUMCk7CisgICAgaWYgKCFqaXQuc3VwcG9ydHNEb3VibGVCaXRvcHMoKSkgeworICAgICAgICBq
aXQuYXBwZW5kRmFpbHVyZShub25JbnRKdW1wKTsKKyAgICAgICAgcmV0dXJuIGppdC5maW5hbGl6
ZSgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwoKSk7Cisg
ICAgfQorICAgIG5vbkludEp1bXAubGluaygmaml0KTsKKyAgICAvLyBTaGFtZSBhYm91dCB0aGUg
ZG91YmxlIGludCBjb252ZXJzaW9uIGhlcmUuCisgICAgaml0LmxvYWREb3VibGUoJm5lZ2F0aXZl
WmVyb0NvbnN0YW50LCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKKyAgICBqaXQubG9h
ZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAgICBqaXQuYW5kbm90RG91YmxlKFNwZWNpYWxpemVkVGh1
bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOworICAgIGppdC5y
ZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7CisgICAgcmV0dXJuIGpp
dC5maW5hbGl6ZSgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNh
bGwoKSk7Cit9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBwb3dUaHVua0dlbmVyYXRvcihKU0ds
b2JhbERhdGEqIGdsb2JhbERhdGEsIEV4ZWN1dGFibGVQb29sKiBwb29sKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKaW5kZXggMTUyNjFmNzhiZTRiNjM3
YzNmNzJiODljNzM5ZWJlNWRkOTU0NTI3Zi4uNmE2OWNlMjcyMGIxOGQ5YzQ3OTU5ODhhNjAzYThh
M2YwOWNlZmYyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dl
bmVyYXRvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5oCkBAIC0zNyw2ICszNywxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFi
bGVQb29sKik7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNoYXJBdFRodW5rR2VuZXJhdG9y
KEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQ
b29sKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGFic1RodW5rR2VuZXJhdG9yKEpTR2xv
YmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNl
aWxUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqLCBFeGVjdXRhYmxlUG9vbCopOworICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBleHBUaHVua0dlbmVyYXRvcihKU0dsb2JhbERhdGEqLCBFeGVj
dXRhYmxlUG9vbCopOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBmbG9vclRodW5rR2VuZXJh
dG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CisgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGxvZ1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7
CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJvdW5kVGh1bmtHZW5lcmF0b3IoSlNHbG9iYWxE
YXRhKiwgRXhlY3V0YWJsZVBvb2wqKTsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgc3FydFRo
dW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFibGVQb29sKik7CiAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIHBvd1RodW5rR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSosIEV4ZWN1dGFi
bGVQb29sKik7CiB9Cg==
</data>
<flag name="review"
          id="93843"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>99438</attachid>
            <date>2011-07-01 00:45:09 -0700</date>
            <delta_ts>2011-07-01 00:45:09 -0700</delta_ts>
            <desc>crash log on Qt in debug mode</desc>
            <filename>1.txt</filename>
            <type>text/plain</type>
            <size>7040</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U2VnbWVudGF0aW9uIGZhdWx0CjA6IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dl
YktpdEJ1aWxkL0RlYnVnL2Jpbi9EdW1wUmVuZGVyVHJlZSgpIFsweDgwN2MyYTBdCjE6IC9yYW1k
aXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2Jpbi9EdW1wUmVu
ZGVyVHJlZSgpIFsweDgwN2M1NDZdCjI6IFsweGY3NzVjNDAwXQozOiAvcmFtZGlzay9xdC1saW51
eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChm
bG9vclRodW5rKzApIFsweGY3NzUzYjJjXQo0OiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9i
dWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNCgrMHgyM2E0ZWFhKSBb
MHhmNjQ1OWVhYV0KNTogL3JhbWRpc2svcXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVp
bGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoKzB4MjNhMWJhMSkgWzB4ZjY0NTZiYTFdCjY6
IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9s
aWJRdFdlYktpdC5zby40KCsweDIzZDFjZDMpIFsweGY2NDg2Y2QzXQo3OiAvcmFtZGlzay9xdC1s
aW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28u
NChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIEpTQzo6Q2FsbFR5cGUsIEpTQzo6Q2FsbERhdGEgY29uc3QmLCBKU0M6OkpT
VmFsdWUsIEpTQzo6QXJnTGlzdCBjb25zdCYpKzB4NjkpIFsweGY1N2IwOGZlXQo4OiAvcmFtZGlz
ay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJL
aXQuc28uNChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBXZWJDb3JlOjpFdmVudCopKzB4NWI0KSBbMHhmNTdkODNm
Y10KOTogL3JhbWRpc2svcXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVpbGQvRGVidWcv
bGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3Rl
bmVycyhXZWJDb3JlOjpFdmVudCosIFdlYkNvcmU6OkV2ZW50VGFyZ2V0RGF0YSosIFdURjo6VmVj
dG9yPFdlYkNvcmU6OlJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLCAxdT4mKSsweDEzMikgWzB4ZjU5
OTYxN2NdCjEwOiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9E
ZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpFdmVudFRhcmdldDo6ZmlyZUV2ZW50
TGlzdGVuZXJzKFdlYkNvcmU6OkV2ZW50KikrMHgxOTEpIFsweGY1OTk2MDAzXQoxMTogL3JhbWRp
c2svcXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2Vi
S2l0LnNvLjQoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaEV2ZW50KFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpFdmVudD4sIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFdmVudFRhcmdldD4p
KzB4MTMxKSBbMHhmNWNiYWNiMV0KMTI6IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxk
L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkRPTVdpbmRv
dzo6ZGlzcGF0Y2hUaW1lZEV2ZW50KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFdmVudD4sIFdl
YkNvcmU6OkRvY3VtZW50KiwgZG91YmxlKiwgZG91YmxlKikrMHhlOSkgWzB4ZjVjYmFlMDFdCjEz
OiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIv
bGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpET01XaW5kb3c6OmRpc3BhdGNoTG9hZEV2ZW50KCkr
MHgxNzcpIFsweGY1Y2JhOTkzXQoxNDogL3JhbWRpc2svcXQtbGludXgtMzItZGVidWcvYnVpbGQv
V2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6RG9jdW1lbnQ6
OmRpc3BhdGNoV2luZG93TG9hZEV2ZW50KCkrMHg3YikgWzB4ZjU5NGM0MjldCjE1OiAvcmFtZGlz
ay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJL
aXQuc28uNChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGljaXRDbG9zZSgpKzB4MTk5KSBbMHhmNTk0
NzM2ZF0KMTY6IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0Rl
YnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NhbGxJ
bXBsaWNpdENsb3NlKCkrMHg5ZCkgWzB4ZjVjNDZiNTddCjE3OiAvcmFtZGlzay9xdC1saW51eC0z
Mi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tDb21wbGV0ZWQoKSsweDExYikgWzB4ZjVjNDY5MDFdCjE4
OiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIv
bGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERvbmUoKSsweDFkKSBb
MHhmNWM0NjZmN10KMTk6IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1
aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpsb2FkRG9uZSgpKzB4NGUpIFsweGY1YzJiMGYyXQoyMDogL3JhbWRpc2svcXQtbGludXgt
MzItZGVidWcvYnVpbGQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjplbmQoKSsweDIwKSBbMHhmNjMyYWJlMF0KMjE6
IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9s
aWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6ZGlkRmluaXNo
TG9hZGluZyhXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlciosIGRvdWJsZSkrMHgyNWIpIFsweGY2
MzJhMmExXQoyMjogL3JhbWRpc2svcXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVpbGQv
RGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRp
ZEZpbmlzaExvYWRpbmcoZG91YmxlKSsweGNlKSBbMHhmNWM3ZjU2Y10KMjM6IC9yYW1kaXNrL3F0
LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5z
by40KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiwgZG91YmxlKSsweDJiKSBbMHhmNWM3NTY4MV0KMjQ6IC9yYW1kaXNrL3F0
LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5z
by40KFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmaW5pc2goKSsweDFjNykgWzB4ZjVm
OGUxZGZdCjI1OiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9E
ZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlckNh
bGxRdWV1ZTo6Zmx1c2goKSsweDc5KSBbMHhmNWY4YzQxNV0KMjY6IC9yYW1kaXNrL3F0LWxpbnV4
LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdl
YkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlOjpwdXNoKHZvaWQgKFdlYkNvcmU6
OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjoqKSgpKSsweDMyKSBbMHhmNWY4YzMwZV0KMjc6IC9yYW1k
aXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdl
YktpdC5zby40KFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlXcmFwcGVyOjpkaWRSZWNlaXZlRmluaXNo
ZWQoKSsweDQyKSBbMHhmNWY4ZDcyYV0KMjg6IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1
aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OlFOZXR3
b3JrUmVwbHlXcmFwcGVyOjpxdF9tZXRhY2FsbChRTWV0YU9iamVjdDo6Q2FsbCwgaW50LCB2b2lk
KiopKzB4NzUpIFsweGY1ZjkwN2E1XQoyOTogL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjMv
bGliL2xpYlF0Q29yZS5zby40KFFNZXRhT2JqZWN0OjptZXRhY2FsbChRT2JqZWN0KiwgUU1ldGFP
YmplY3Q6OkNhbGwsIGludCwgdm9pZCoqKSsweDNhKSBbMHhmMzJkNTJlYV0KMzA6IC91c3IvbG9j
YWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdENvcmUuc28uNChRTWV0YU9iamVjdDo6YWN0
aXZhdGUoUU9iamVjdCosIFFNZXRhT2JqZWN0IGNvbnN0KiwgaW50LCB2b2lkKiopKzB4Mjk1KSBb
MHhmMzJlN2YzNV0KMzE6IC91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdE5l
dHdvcmsuc28uNChRTmV0d29ya1JlcGx5OjpmaW5pc2hlZCgpKzB4MzcpIFsweGY0MDBhN2M3XQoz
MjogL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjMvbGliL2xpYlF0TmV0d29yay5zby40KFFO
ZXR3b3JrUmVwbHk6OnF0X21ldGFjYWxsKFFNZXRhT2JqZWN0OjpDYWxsLCBpbnQsIHZvaWQqKikr
MHgxMzMpIFsweGY0MDBhOTQzXQozMzogL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjMvbGli
L2xpYlF0TmV0d29yay5zby40KCsweDUyYjgyKSBbMHhmM2Y2ZmI4Ml0KMzQ6IC91c3IvbG9jYWwv
VHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdENvcmUuc28uNChRTWV0YU9iamVjdDo6bWV0YWNh
bGwoUU9iamVjdCosIFFNZXRhT2JqZWN0OjpDYWxsLCBpbnQsIHZvaWQqKikrMHgzYSkgWzB4ZjMy
ZDUyZWFdCjM1OiAvdXNyL2xvY2FsL1Ryb2xsdGVjaC9RdC00LjcuMy9saWIvbGliUXRDb3JlLnNv
LjQoUU1ldGFDYWxsRXZlbnQ6OnBsYWNlTWV0YUNhbGwoUU9iamVjdCopKzB4MzYpIFsweGYzMmUw
NjA2XQozNjogL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjMvbGliL2xpYlF0Q29yZS5zby40
KFFPYmplY3Q6OmV2ZW50KFFFdmVudCopKzB4MjIyKSBbMHhmMzJlMTdjMl0KMzc6IC91c3IvbG9j
YWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdEd1aS5zby40KFFBcHBsaWNhdGlvblByaXZh
dGU6Om5vdGlmeV9oZWxwZXIoUU9iamVjdCosIFFFdmVudCopKzB4YWMpIFsweGYzNTY0ZThjXQoz
ODogL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjMvbGliL2xpYlF0R3VpLnNvLjQoUUFwcGxp
Y2F0aW9uOjpub3RpZnkoUU9iamVjdCosIFFFdmVudCopKzB4MTdhKSBbMHhmMzU2YzI4YV0KMzk6
IC91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdENvcmUuc28uNChRQ29yZUFw
cGxpY2F0aW9uOjpub3RpZnlJbnRlcm5hbChRT2JqZWN0KiwgUUV2ZW50KikrMHg3YikgWzB4ZjMy
Y2Y2MWJdCjQwOiAvdXNyL2xvY2FsL1Ryb2xsdGVjaC9RdC00LjcuMy9saWIvbGliUXRDb3JlLnNv
LjQoUUNvcmVBcHBsaWNhdGlvblByaXZhdGU6OnNlbmRQb3N0ZWRFdmVudHMoUU9iamVjdCosIGlu
dCwgUVRocmVhZERhdGEqKSsweDMxYykgWzB4ZjMyZDI4MWNdCjQxOiAvdXNyL2xvY2FsL1Ryb2xs
dGVjaC9RdC00LjcuMy9saWIvbGliUXRDb3JlLnNvLjQoUUNvcmVBcHBsaWNhdGlvbjo6c2VuZFBv
c3RlZEV2ZW50cyhRT2JqZWN0KiwgaW50KSsweDJkKSBbMHhmMzJkMjk3ZF0KNDI6IC91c3IvbG9j
YWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdENvcmUuc28uNCgrMHgxYTExOTQpIFsweGYz
MmZlMTk0XQo0MzogL2xpYi9saWJnbGliLTIuMC5zby4wKGdfbWFpbl9jb250ZXh0X2Rpc3BhdGNo
KzB4MWQ1KSBbMHhmMjM2OTMwNV0KNDQ6IC9saWIvbGliZ2xpYi0yLjAuc28uMCgrMHgzZWZlOCkg
WzB4ZjIzNmNmZThdCjQ1OiAvbGliL2xpYmdsaWItMi4wLnNvLjAoZ19tYWluX2NvbnRleHRfaXRl
cmF0aW9uKzB4NjgpIFsweGYyMzZkMWM4XQo0NjogL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43
LjMvbGliL2xpYlF0Q29yZS5zby40KFFFdmVudERpc3BhdGNoZXJHbGliOjpwcm9jZXNzRXZlbnRz
KFFGbGFnczxRRXZlbnRMb29wOjpQcm9jZXNzRXZlbnRzRmxhZz4pKzB4NjUpIFsweGYzMmZkYzg1
XQo0NzogL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjMvbGliL2xpYlF0R3VpLnNvLjQoKzB4
MjFiNzI1KSBbMHhmMzYxZjcyNV0KNDg6IC91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xp
Yi9saWJRdENvcmUuc28uNChRRXZlbnRMb29wOjpwcm9jZXNzRXZlbnRzKFFGbGFnczxRRXZlbnRM
b29wOjpQcm9jZXNzRXZlbnRzRmxhZz4pKzB4NDkpIFsweGYzMmNlMGM5XQo0OTogL3Vzci9sb2Nh
bC9Ucm9sbHRlY2gvUXQtNC43LjMvbGliL2xpYlF0Q29yZS5zby40KFFFdmVudExvb3A6OmV4ZWMo
UUZsYWdzPFFFdmVudExvb3A6OlByb2Nlc3NFdmVudHNGbGFnPikrMHhmYSkgWzB4ZjMyY2U1NGFd
CjUwOiAvdXNyL2xvY2FsL1Ryb2xsdGVjaC9RdC00LjcuMy9saWIvbGliUXRDb3JlLnNvLjQoUUNv
cmVBcHBsaWNhdGlvbjo6ZXhlYygpKzB4YWYpIFsweGYzMmQyYTNmXQo1MTogL3Vzci9sb2NhbC9U
cm9sbHRlY2gvUXQtNC43LjMvbGliL2xpYlF0R3VpLnNvLjQoUUFwcGxpY2F0aW9uOjpleGVjKCkr
MHgyNykgWzB4ZjM1NjNlZDddCjUyOiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9X
ZWJLaXRCdWlsZC9EZWJ1Zy9iaW4vRHVtcFJlbmRlclRyZWUoKSBbMHg4MDdjZGY0XQo1MzogL2xp
Yi9saWJjLnNvLjYoX19saWJjX3N0YXJ0X21haW4rMHhlNikgWzB4ZjJlZGJjNzZdCjU0OiAvcmFt
ZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9iaW4vRHVtcFJl
bmRlclRyZWUoKSBbMHg4MDYzYjExXQoKTEVBSzogMTgwIFdlYkNvcmVOb2RlCkxFQUs6IDUgQ2Fj
aGVkUmVzb3VyY2UKTEVBSzogMSBTdWJyZXNvdXJjZUxvYWRlcgpMRUFLOiAxIEZyYW1lCkxFQUs6
IDEgUGFnZQpMRUFLOiA1IFJlbmRlck9iamVjdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>