<?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>9214</bug_id>
          
          <creation_ts>2006-06-01 12:46:32 -0700</creation_ts>
          <short_desc>Images using QuickTime plugin do not display correctly</short_desc>
          <delta_ts>2012-07-26 17:21:50 -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>417.x</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://aiw1.uspto.gov:80/.aiw?Docid=20060033724&amp;homeurl=http%3A%2F%2Fappft1.uspto.gov%2Fnetacgi%2Fnph-Parser%3FSect1%3DPTO2%2526Sect2%3DHITOFF%2526p%3D1%2526u%3D%25252Fnetahtml%25252FPTO%25252Fsearch-bool.html%2526r%3D20%2526f%3DG%2526l%3D50%2526co1%3DAND%2526d%3DPG01%2526s1%3DApple.AS.%2526OS%3DAN%2FApple%2526RS%3DAN%2FApple&amp;PageNum=&amp;Rtype=&amp;SectionNum=&amp;idkey=4124CCCC30F2</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Augusto">caugusto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ian</cc>
    
    <cc>mrowe</cc>
    
    <cc>rberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>44282</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Augusto">caugusto</who>
    <bug_when>2006-06-01 12:46:32 -0700</bug_when>
    <thetext>Already for a long time I have noticed that when browsing the USPTO.gov site for patents or patent applications, there are problems with displaying pages containing images (tiff files ?).

See the following example, in which the page with text only is correctly rendered:
&lt;http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;r=20&amp;f=G&amp;l=50&amp;co1=AND&amp;d=PG01&amp;s1=Apple.AS.&amp;OS=AN/Apple&amp;RS=AN/Apple&gt; 

Now, click on the blue button called &quot;Images&quot; at the top of the page, and on gets this:
&lt;http://aiw1.uspto.gov:80/.aiw?Docid=20060033724&amp;homeurl=http%3A%2F%2Fappft1.uspto.gov%2Fnetacgi%2Fnph-Parser%3FSect1%3DPTO2%2526Sect2%3DHITOFF%2526p%3D1%2526u%3D%25252Fnetahtml%25252FPTO%25252Fsearch-bool.html%2526r%3D20%2526f%3DG%2526l%3D50%2526co1%3DAND%2526d%3DPG01%2526s1%3DApple.AS.%2526OS%3DAN%2FApple%2526RS%3DAN%2FApple&amp;PageNum=&amp;Rtype=&amp;SectionNum=&amp;idkey=4124CCCC30F2&gt;

I have tried with several browsers but they all seem to have the same problem, in which the image seems to be scaled up, and only a fraction of it can be seen.

Since the images are displayed using a QT plugin, I searched for a control panel in which I might be able to change the settings of the QT plugin, but did not find it.

Thank you.
Regards,
Carlos</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44308</commentid>
    <comment_count>1</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-06-01 16:46:50 -0700</bug_when>
    <thetext>The bug here is that &lt;embed&gt;s are not making images like &lt;object&gt;s do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48495</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-07-06 05:37:10 -0700</bug_when>
    <thetext>Based on Dave&apos;s comment, this is a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66896</commentid>
    <comment_count>3</comment_count>
    <who name="Richard Berg">rberg</who>
    <bug_when>2008-01-11 05:44:47 -0800</bug_when>
    <thetext>This bug was handled in Safari Version 2 using a plug in from accordex. Safari Version 3 broke the fix. See http://www.acordex.com/browseProd/VTplugin.html for an explanation.

This has been a long standing bug. Accordex fixed it with a plug in. Since there has been little interest at Apple to fix the underlying bug in QT, at least fix Safari 3 so that the plug in made accordex will function in Safari 3 (as it does in Safari 2) properly.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66899</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-01-11 06:20:35 -0800</bug_when>
    <thetext>Richard, you should file a separate bug report about that plugin failing to work correctly with Safari 3.  This bug report is about the original issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66900</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-01-11 06:22:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/5683413&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83342</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Augusto">caugusto</who>
    <bug_when>2008-06-14 18:46:11 -0700</bug_when>
    <thetext>It has been 2 years since I reported this problem.
Will the fix for this bug in QT have to wait for the new &quot;QuickTime X&quot; ?
In the meanwhile, will there be a fix allowing the Accordex plug-in to work properly ?

Thank you.
Carlos</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84081</commentid>
    <comment_count>7</comment_count>
      <attachid>21875</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-06-22 14:06:49 -0700</bug_when>
    <thetext>Created attachment 21875
Patch v1

Proposed patch.

HTMLEmbedObject::isImageType() was copied directly from HTMLObjectElement.  Should I create a base class for HTMLEmbedElement and HTMLObjectElement, or move common methods to HTMLPlugInElement?    Note that HTMLAppletElement also inherits from HTMLPlugInElement, which wouldn&apos;t used some member variables or methods.

(The changes to HTMLObjectElement were to make extracting member variables and methods to a base class easier.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84082</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-06-22 14:09:27 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=21875) [edit]
&gt; Patch v1
&gt; 
&gt; Proposed patch.
&gt; 
&gt; HTMLEmbedObject::isImageType() was copied directly from HTMLObjectElement. 
&gt; Should I create a base class for HTMLEmbedElement and HTMLObjectElement, or
&gt; move common methods to HTMLPlugInElement?    Note that HTMLAppletElement also
&gt; inherits from HTMLPlugInElement, which wouldn&apos;t used some member variables or
&gt; methods.
&gt; 
&gt; (The changes to HTMLObjectElement were to make extracting member variables and
&gt; methods to a base class easier.)

- Not sure if code in WebCore/rendering/HitTestResult.cpp is needed.  (Note sure when the objectTag code is used.)

- Is there a better place for the data: URL parsing other than the isImageType() method(s) in HTMLEmbedElement and HTMLObjectElement classes?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84108</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-06-22 22:25:29 -0700</bug_when>
    <thetext>Dave, does this result in the QT plugin not being used at all in the linked URL, or am I misunderstanding the change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84150</commentid>
    <comment_count>10</comment_count>
      <attachid>21875</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-23 10:16:53 -0700</bug_when>
    <thetext>Comment on attachment 21875
Patch v1

Does this prevent images from ever using the QuickTime plug-in? Are there any cases where we&apos;d want to let the QuickTime plug-in handle an image, even though we recognize it&apos;s an image type? I guess not, just wondering.

I&apos;m a little concerned that isImageType does a non-trivial amount of work and we&apos;re calling it in multiple places. Should we be caching the boolean result?

+            RenderImage* imageObj = static_cast&lt;RenderImage*&gt;(renderer());
+            imageObj-&gt;setCachedImage(m_imageLoader-&gt;image());

I&apos;m not too fond of that local variable name. Maybe doing this all on one line would read better.

+        // Extract the MIME type from the data URL.

I&apos;d like to see a function to extract a MIME type from a data URL put in a file like KURL.h, rather than having the inline code here.

+        KURL completedURL(frame-&gt;loader()-&gt;completeURL(m_url));

I think this would read better with an &quot;=&quot; rather than using construction syntax.

+    else if (m_innerNonSharedNode-&gt;hasTagName(embedTag))
+        urlString = static_cast&lt;Element*&gt;(m_innerNonSharedNode.get())-&gt;getAttribute(srcAttr);

Can this code be changed to use the imageSourceAttributeName function for better factoring?

r=me, as-is but please consider my suggestions too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84169</commentid>
    <comment_count>11</comment_count>
      <attachid>21875</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-06-23 12:32:51 -0700</bug_when>
    <thetext>Comment on attachment 21875
Patch v1

Clearing darin&apos;s r+ to revise patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84170</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-06-23 12:33:55 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Dave, does this result in the QT plugin not being used at all in the linked
&gt; URL, or am I misunderstanding the change?

After applying the patch, the QT plugin would only be used when isImageType() returns false (as it would fall back to using a RenderPartObject in that case).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84789</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-06-30 14:23:41 -0700</bug_when>
    <thetext>Cleanup that was originally part of Attachment #21875 committed as r34895:

http://trac.webkit.org/changeset/34895
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84905</commentid>
    <comment_count>14</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-07-01 13:41:07 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 21875 [edit])
&gt; +        // Extract the MIME type from the data URL.
&gt; 
&gt; I&apos;d like to see a function to extract a MIME type from a data URL put in a file
&gt; like KURL.h, rather than having the inline code here.

Committed as r34929:

http://trac.webkit.org/changeset/34929
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85041</commentid>
    <comment_count>15</comment_count>
      <attachid>22060</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-07-02 22:25:10 -0700</bug_when>
    <thetext>Created attachment 22060
Patch v2

(In reply to comment #10)
&gt; (From update of attachment 21875 [edit])
&gt; Does this prevent images from ever using the QuickTime plug-in? Are there any
&gt; cases where we&apos;d want to let the QuickTime plug-in handle an image, even though
&gt; we recognize it&apos;s an image type? I guess not, just wondering.

The QuickTime plug-in will still be used when isImageType() returns false, since we fall back to using a RenderPartObject in that case.

&gt; I&apos;m a little concerned that isImageType does a non-trivial amount of work and
&gt; we&apos;re calling it in multiple places. Should we be caching the boolean result?

This feels like premature optimization, and I&apos;d prefer not to add two more state variables (one to track when a cached value is invalidated by the change of an attribute, as well the cached value itself) and complicate the class unless it&apos;s proven to be needed.

&gt; +            RenderImage* imageObj = static_cast&lt;RenderImage*&gt;(renderer());
&gt; +            imageObj-&gt;setCachedImage(m_imageLoader-&gt;image());
&gt; 
&gt; I&apos;m not too fond of that local variable name. Maybe doing this all on one line
&gt; would read better.

Fixed.

&gt; +        // Extract the MIME type from the data URL.
&gt; 
&gt; I&apos;d like to see a function to extract a MIME type from a data URL put in a file
&gt; like KURL.h, rather than having the inline code here.

This was fixed in an earlier commit:  r34929 (see Comment #14).

&gt; +        KURL completedURL(frame-&gt;loader()-&gt;completeURL(m_url));
&gt; 
&gt; I think this would read better with an &quot;=&quot; rather than using construction
&gt; syntax.

Fixed.

&gt; +    else if (m_innerNonSharedNode-&gt;hasTagName(embedTag))
&gt; +        urlString =
&gt; static_cast&lt;Element*&gt;(m_innerNonSharedNode.get())-&gt;getAttribute(srcAttr);
&gt; 
&gt; Can this code be changed to use the imageSourceAttributeName function for
&gt; better factoring?

Fixed.

New to this patch is HTMLPlugInImageElement, which is a new class that HTMLObjectElement and HTMLEmbedElement extend in order to share code and member variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87904</commentid>
    <comment_count>16</comment_count>
      <attachid>22060</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-08-05 16:19:25 -0700</bug_when>
    <thetext>Comment on attachment 22060
Patch v2

 #if USE(JAVASCRIPTCORE_BINDINGS)
+#include &quot;RenderWidget.h&quot;
 #include &quot;runtime.h&quot;
 #endif

I&apos;d prefer to add this include outside the #if, even if it&apos;s not required; my idea would be to minimize #include inside #if when possible.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87971</commentid>
    <comment_count>17</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-08-06 10:24:16 -0700</bug_when>
    <thetext>$ git svn dcommit
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/images/embed-image.html
	A	LayoutTests/fast/images/object-image.html
	A	LayoutTests/platform/mac/fast/images/embed-image-expected.checksum
	A	LayoutTests/platform/mac/fast/images/embed-image-expected.png
	A	LayoutTests/platform/mac/fast/images/embed-image-expected.txt
	A	LayoutTests/platform/mac/fast/images/object-image-expected.checksum
	A	LayoutTests/platform/mac/fast/images/object-image-expected.png
	A	LayoutTests/platform/mac/fast/images/object-image-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/WebCore.xcodeproj/project.pbxproj
	M	WebCore/html/HTMLEmbedElement.cpp
	M	WebCore/html/HTMLEmbedElement.h
	M	WebCore/html/HTMLObjectElement.cpp
	M	WebCore/html/HTMLObjectElement.h
	A	WebCore/html/HTMLPlugInImageElement.cpp
	A	WebCore/html/HTMLPlugInImageElement.h
	M	WebCore/rendering/HitTestResult.cpp
Committed r35606

http://trac.webkit.org/changeset/35606

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87973</commentid>
    <comment_count>18</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-08-06 10:31:26 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 22060 [edit])
&gt;  #if USE(JAVASCRIPTCORE_BINDINGS)
&gt; +#include &quot;RenderWidget.h&quot;
&gt;  #include &quot;runtime.h&quot;
&gt;  #endif
&gt; 
&gt; I&apos;d prefer to add this include outside the #if, even if it&apos;s not required; my
&gt; idea would be to minimize #include inside #if when possible.

I made this change before landing.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87982</commentid>
    <comment_count>19</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-08-06 13:27:58 -0700</bug_when>
    <thetext>Windows build fix:

http://trac.webkit.org/changeset/35609

Other platform build fixes:

http://trac.webkit.org/changeset/35610

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153107</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Augusto">caugusto</who>
    <bug_when>2009-10-07 10:29:10 -0700</bug_when>
    <thetext>This problem has reappeared on Safari 4.0.3 on OS X 10.6.1.
Maybe it reappeared earlier and I did not notice it.
See for example the following page:
&lt;http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;r=7&amp;f=G&amp;l=50&amp;co1=AND&amp;d=PTXT&amp;s1=Apple.ASNM.&amp;OS=AN/Apple&amp;RS=AN/Apple&gt;

When you click on the link at the top to see the images, they do not show up in the respective page(s).

Carlos</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153171</commentid>
    <comment_count>21</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-10-07 13:50:33 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; This problem has reappeared on Safari 4.0.3 on OS X 10.6.1.
&gt; Maybe it reappeared earlier and I did not notice it.
&gt; See for example the following page:
&gt; &lt;http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;r=7&amp;f=G&amp;l=50&amp;co1=AND&amp;d=PTXT&amp;s1=Apple.ASNM.&amp;OS=AN/Apple&amp;RS=AN/Apple&gt;
&gt; 
&gt; When you click on the link at the top to see the images, they do not show up in
&gt; the respective page(s).

Let&apos;s file a new bug for the issue:  Bug 30181.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153173</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-07 13:53:24 -0700</bug_when>
    <thetext>We&apos;d need a new bug to investigate this - a comment in an already closed bug can easily go unnoticed. 

But in this case, it is known that this is an issue in an underlying Apple library, which is tracked internally as &lt;rdar://problem/7132190&gt;. We don&apos;t need to track it as a WebKit bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679940</commentid>
    <comment_count>23</comment_count>
    <who name="Carlos Augusto">caugusto</who>
    <bug_when>2012-07-26 17:21:50 -0700</bug_when>
    <thetext>Perhaps this is no longer the right place, to call attention to this problem, but the fact of the matter is that this bug, which is not a webkit bug, is still not solved with OS X 10.8 (Safari 6.0).

Needless to say that it is extremely disappointing to realize that 6 years have not been enough to fix this bug in the underlying Apple library, which is tracked internally as &lt;rdar://problem/7132190&gt;.

Although this is not a webkit bug, a workaround has not been provided, and consequently the problem is still UnResolved/UnFixed.

Carlos</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21875</attachid>
            <date>2008-06-22 14:06:49 -0700</date>
            <delta_ts>2008-07-02 22:25:10 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-9214-v1.diff</filename>
            <type>text/plain</type>
            <size>15591</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTBmNTBiYy4uZmQyZjIwZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAwOC0wNi0yMiAgRGF2aWQgRC4gS2ls
emVyICA8ZGRraWx6ZXJAd2Via2l0Lm9yZz4KKworICAgICAgICBJbWFnZXMgdXNpbmcgUVQgcGx1
Z2luIGRvIG5vdCBkaXNwbGF5IGNvcnJlY3RseQorCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIxND4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2
ODM0MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
aW1hZ2VzL29iamVjdC1pbWFnZS5odG1sCisKKyAgICAgICAgVXNlIFJlbmRlckltYWdlIGluc3Rl
YWQgb2YgUmVuZGVyUGFydE9iamVjdCBmb3IgYSByZW5kZXJlciB3aGVuCisgICAgICAgIHRoZSA8
ZW1iZWQ+IHRhZyByZWZlcmVuY2VzIGFuIGltYWdlLgorCisgICAgICAgIEFsc28gbWFrZSBIVE1M
T2JqZWN0RWxlbWVudCBtZW1iZXIgdmFyaWFibGVzIHByaXZhdGUuCisKKyAgICAgICAgKiBodG1s
L0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBDcmVhdGUgb3IKKyAgICAgICAgY2xlYXIgSFRNTElt
YWdlTG9hZGVyIGFzIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQpOiBVc2UKKyAgICAgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OnJlbmRl
cmVySXNOZWVkZWQoKSBmb3IgaW1hZ2VzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIpOiBDcmVhdGUgYQorICAgICAgICBSZW5kZXJJbWFnZSBpbnN0
ZWFkIG9mIGEgUmVuZGVyUGFydE9iamVjdCBmb3IgaW1hZ2VzLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVtYmVkRWxlbWVudDo6YXR0YWNoKTogQ3JlYXRlIEhUTUxJbWFnZUxvYWRlciwKKyAgICAg
ICAgbG9hZCBpbWFnZSBhbmQgcG9wdWxhdGUgUmVuZGVySW1hZ2UgZm9yIGltYWdlcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldCk6IERvbid0IGNhbGwK
KyAgICAgICAgUmVuZGVyUGFydE9iamVjdDo6dXBkYXRlV2lkZ2V0KCkgZm9yIGltYWdlcy4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OmltYWdlU291cmNlQXR0cmlidXRlTmFt
ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6aXNJbWFnZVR5
cGUpOiBBZGRlZC4gIENvcGllZCBmcm9tCisgICAgICAgIEhUTUxPYmplY3RFbGVtZW50Ojppc0lt
YWdlVHlwZSgpLgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oOiBBZGRlZCBtX2lt
YWdlTG9hZGVyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6aW1hZ2VTb3Vy
Y2VBdHRyaWJ1dGVOYW1lKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVt
ZW50Ojppc0ltYWdlVHlwZSk6IEFkZGVkLgorCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6SFRNTE9iamVj
dEVsZW1lbnQpOiBSZW9yZGVyCisgICAgICAgIGluaXRpYWxpemF0aW9uIG9mIG1lbWJlciB2YXJp
YWJsZXMgdG8gbWF0Y2ggZGVmaW5lZCBvcmRlciBpbgorICAgICAgICBoZWFkZXIuCisgICAgICAg
ICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oOiBNYWRlIGFsbCBtZW1iZXIgdmFyaWFibGVzIHBy
aXZhdGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6Y2xhc3NJZCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnVybCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNlcnZpY2VUeXBlKTogQWRkZWQu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIaXRUZXN0UmVzdWx0OjphYnNvbHV0ZUltYWdlVVJMKTogUmV0dXJuIHVybFN0cmluZwor
ICAgICAgICBmb3IgZW1iZWQgZWxlbWVudHMgd2l0aCBpbWFnZXMuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXJ0
T2JqZWN0Ojp1cGRhdGVXaWRnZXQpOiBVc2UgbmV3IGdldHRlcgorICAgICAgICBtZXRob2RzIGlu
IEhUTUxPYmplY3RFbGVtZW50IG5vdyB0aGF0IGl0cyBtZW1iZXIgdmFyaWFibGVzCisgICAgICAg
IGFyZSBwcml2YXRlLgorCiAyMDA4LTA2LTIxICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQnVnIDc5MzE6IEVzY2FwZWQgZWxlbWVudHMgd2l0aGluIGEgdGV4
dGFyZWEgYmxvY2sgY2FuIGNhdXNlIHRoZSB0ZXh0YXJlYSBib3ggdG8gYmUgY2xvc2VkIHByZW1h
dHVyZWx5CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKaW5kZXggODRhM2EyYy4uNjYwM2QyZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcApAQCAtMjcsMTAgKzI3LDE1IEBACiAjaW5jbHVk
ZSAiQ1NTSGVscGVyLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVu
dC5oIgotI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTE9iamVjdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyUGFydE9iamVjdC5oIgogCiAjaWYgVVNFKEpBVkFTQ1JJUFRDT1JFX0JJ
TkRJTkdTKQpAQCAtMTA4LDggKzExMywxNSBAQCB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgaW50IHBvcyA9
IG1fc2VydmljZVR5cGUuZmluZCgiOyIpOwogICAgICAgICBpZiAocG9zICE9IC0xKQogICAgICAg
ICAgICAgbV9zZXJ2aWNlVHlwZSA9IG1fc2VydmljZVR5cGUubGVmdChwb3MpOworICAgICAgICBp
ZiAoIWlzSW1hZ2VUeXBlKCkgJiYgbV9pbWFnZUxvYWRlcikKKyAgICAgICAgICAgIG1faW1hZ2VM
b2FkZXIuY2xlYXIoKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBjb2RlQXR0ciB8
fCBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cikKICAgICAgICAgbV91cmwgPSBwYXJzZVVSTCh2YWx1
ZS5zdHJpbmcoKSk7CisgICAgICAgIGlmIChyZW5kZXJlcigpICYmIGlzSW1hZ2VUeXBlKCkpIHsK
KyAgICAgICAgICAgIGlmICghbV9pbWFnZUxvYWRlcikKKyAgICAgICAgICAgICAgICBtX2ltYWdl
TG9hZGVyLnNldChuZXcgSFRNTEltYWdlTG9hZGVyKHRoaXMpKTsKKyAgICAgICAgICAgIG1faW1h
Z2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgICAgIH0KICAgICBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gcGx1Z2lucGFnZUF0dHIgfHwgYXR0ci0+bmFtZSgpID09IHBsdWdpbnNw
YWdlQXR0cikKICAgICAgICAgbV9wbHVnaW5QYWdlID0gdmFsdWU7CiAgICAgZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IGhpZGRlbkF0dHIpIHsKQEAgLTEzMiw2ICsxNDQsOSBAQCB2b2lkIEhUTUxF
bWJlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikK
IAogYm9vbCBIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBz
dHlsZSkKIHsKKyAgICBpZiAoaXNJbWFnZVR5cGUoKSkKKyAgICAgICAgcmV0dXJuIEhUTUxQbHVn
SW5FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKKwogICAgIEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMTQ3LDE0ICsxNjIsMzIgQEAgYm9vbCBIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKIAogUmVuZGVyT2JqZWN0KiBIVE1MRW1iZWRF
bGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBz
dHlsZSkKIHsKKyAgICBpZiAoaXNJbWFnZVR5cGUoKSkKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJl
bmEpIFJlbmRlckltYWdlKHRoaXMpOwogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJQYXJ0
T2JqZWN0KHRoaXMpOwogfQogCiB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OmF0dGFjaCgpCiB7CiAg
ICAgbV9uZWVkV2lkZ2V0VXBkYXRlID0gdHJ1ZTsKLSAgICBxdWV1ZVBvc3RBdHRhY2hDYWxsYmFj
aygmSFRNTFBsdWdJbkVsZW1lbnQ6OnVwZGF0ZVdpZGdldENhbGxiYWNrLCB0aGlzKTsKKworICAg
IGJvb2wgaXNJbWFnZSA9IGlzSW1hZ2VUeXBlKCk7CisKKyAgICBpZiAoIWlzSW1hZ2UpCisgICAg
ICAgIHF1ZXVlUG9zdEF0dGFjaENhbGxiYWNrKCZIVE1MUGx1Z0luRWxlbWVudDo6dXBkYXRlV2lk
Z2V0Q2FsbGJhY2ssIHRoaXMpOworCiAgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OmF0dGFjaCgpOwor
CisgICAgaWYgKGlzSW1hZ2UgJiYgcmVuZGVyZXIoKSkgeworICAgICAgICBpZiAoIW1faW1hZ2VM
b2FkZXIpCisgICAgICAgICAgICBtX2ltYWdlTG9hZGVyLnNldChuZXcgSFRNTEltYWdlTG9hZGVy
KHRoaXMpKTsKKyAgICAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKwor
ICAgICAgICBpZiAocmVuZGVyZXIoKSkgeworICAgICAgICAgICAgUmVuZGVySW1hZ2UqIGltYWdl
T2JqID0gc3RhdGljX2Nhc3Q8UmVuZGVySW1hZ2UqPihyZW5kZXJlcigpKTsKKyAgICAgICAgICAg
IGltYWdlT2JqLT5zZXRDYWNoZWRJbWFnZShtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKTsKKyAgICAg
ICAgfQorICAgIH0KIH0KIAogdm9pZCBIVE1MRW1iZWRFbGVtZW50OjpkZXRhY2goKQpAQCAtMTY4
LDcgKzIwMSw3IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6ZGV0YWNoKCkKIHZvaWQgSFRNTEVt
YmVkRWxlbWVudDo6dXBkYXRlV2lkZ2V0KCkKIHsKICAgICBkb2N1bWVudCgpLT51cGRhdGVSZW5k
ZXJpbmcoKTsKLSAgICBpZiAobV9uZWVkV2lkZ2V0VXBkYXRlICYmIHJlbmRlcmVyKCkpCisgICAg
aWYgKG1fbmVlZFdpZGdldFVwZGF0ZSAmJiByZW5kZXJlcigpICYmICFpc0ltYWdlVHlwZSgpKQog
ICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJQYXJ0T2JqZWN0Kj4ocmVuZGVyZXIoKSktPnVwZGF0
ZVdpZGdldCh0cnVlKTsKIH0KIApAQCAtMjIwLDYgKzI1MywzNCBAQCBib29sIEhUTUxFbWJlZEVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgY29uc3QKICAgICByZXR1cm4g
YXR0ci0+bmFtZSgpID09IHNyY0F0dHI7CiB9CiAKK2NvbnN0IFF1YWxpZmllZE5hbWUmIEhUTUxF
bWJlZEVsZW1lbnQ6OmltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHNyY0F0dHI7Cit9CisKK2Jvb2wgSFRNTEVtYmVkRWxlbWVudDo6aXNJbWFnZVR5cGUoKQor
eworICAgIGlmIChtX3NlcnZpY2VUeXBlLmlzRW1wdHkoKSAmJiBwcm90b2NvbElzKG1fdXJsLCAi
ZGF0YSIpKSB7CisgICAgICAgIC8vIEV4dHJhY3QgdGhlIE1JTUUgdHlwZSBmcm9tIHRoZSBkYXRh
IFVSTC4KKyAgICAgICAgaW50IGluZGV4ID0gbV91cmwuZmluZCgnOycpOworICAgICAgICBpZiAo
aW5kZXggPT0gLTEpCisgICAgICAgICAgICBpbmRleCA9IG1fdXJsLmZpbmQoJywnKTsKKyAgICAg
ICAgaWYgKGluZGV4ICE9IC0xKSB7CisgICAgICAgICAgICBpbnQgbGVuID0gaW5kZXggLSA1Owor
ICAgICAgICAgICAgaWYgKGxlbiA+IDApCisgICAgICAgICAgICAgICAgbV9zZXJ2aWNlVHlwZSA9
IG1fdXJsLnN1YnN0cmluZyg1LCBsZW4pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIG1fc2VydmljZVR5cGUgPSAidGV4dC9wbGFpbiI7IC8vIERhdGEgVVJMcyB3aXRoIG5vIE1J
TUUgdHlwZSBhcmUgY29uc2lkZXJlZCB0ZXh0L3BsYWluLgorICAgICAgICB9CisgICAgfQorICAg
IGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKSB7CisgICAgICAgIEtVUkwg
Y29tcGxldGVkVVJMKGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwobV91cmwpKTsKKyAgICAg
ICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPm9iamVjdENvbnRlbnRUeXBlKGNv
bXBsZXRlZFVSTCwgbV9zZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVudEltYWdlOworICAgIH0K
KworICAgIHJldHVybiBJbWFnZTo6c3VwcG9ydHNUeXBlKG1fc2VydmljZVR5cGUpOworfQorCiBT
dHJpbmcgSFRNTEVtYmVkRWxlbWVudDo6c3JjKCkgY29uc3QKIHsKICAgICByZXR1cm4gZ2V0QXR0
cmlidXRlKHNyY0F0dHIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1l
bnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggZmI0YmM0ZC4uZjgx
Y2ExMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCkBAIC0yNCw2ICsyNCw3IEBACiAjZGVmaW5l
IEhUTUxFbWJlZEVsZW1lbnRfaAogCiAjaW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuaCIKKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNpZiBVU0UoSkFWQVNDUklQVENPUkVfQklORElOR1Mp
CiBuYW1lc3BhY2UgS0pTIHsKQEAgLTM1LDYgKzM2LDggQEAgbmFtZXNwYWNlIEtKUyB7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSFRNTEltYWdlTG9hZGVyOworCiBjbGFzcyBIVE1M
RW1iZWRFbGVtZW50IDogcHVibGljIEhUTUxQbHVnSW5FbGVtZW50IHsKIHB1YmxpYzoKICAgICBI
VE1MRW1iZWRFbGVtZW50KERvY3VtZW50Kik7CkBAIC01NiwxMCArNTksMTMgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSosIGJvb2wgcHJlc2Vy
dmVEZWNscyA9IGZhbHNlKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlKikgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBRdWFsaWZpZWROYW1lJiBpbWFn
ZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVX
aWRnZXQoKTsKICAgICB2b2lkIHNldE5lZWRXaWRnZXRVcGRhdGUoYm9vbCBuZWVkV2lkZ2V0VXBk
YXRlKSB7IG1fbmVlZFdpZGdldFVwZGF0ZSA9IG5lZWRXaWRnZXRVcGRhdGU7IH0KIAorICAgIGJv
b2wgaXNJbWFnZVR5cGUoKTsKKwogI2lmIFVTRShKQVZBU0NSSVBUQ09SRV9CSU5ESU5HUykKICAg
ICB2aXJ0dWFsIEtKUzo6QmluZGluZ3M6Okluc3RhbmNlKiBnZXRJbnN0YW5jZSgpIGNvbnN0Owog
I2VuZGlmCkBAIC04MCw2ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGx1Z2luUGFn
ZTsKICAgICBTdHJpbmcgbV9zZXJ2aWNlVHlwZTsKICAgICBib29sIG1fbmVlZFdpZGdldFVwZGF0
ZTsKKyAgICBPd25QdHI8SFRNTEltYWdlTG9hZGVyPiBtX2ltYWdlTG9hZGVyOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggMDcwYTVkMS4uNGU2MmE1YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC01Myw5ICs1Myw5IEBAIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIEhUTUxPYmplY3RFbGVtZW50OjpIVE1MT2JqZWN0RWxlbWVudChEb2N1
bWVudCogZG9jLCBib29sIGNyZWF0ZWRCeVBhcnNlcikgCiAgICAgOiBIVE1MUGx1Z0luRWxlbWVu
dChvYmplY3RUYWcsIGRvYykKKyAgICAsIG1fZG9jTmFtZWRJdGVtKHRydWUpCiAgICAgLCBtX25l
ZWRXaWRnZXRVcGRhdGUoIWNyZWF0ZWRCeVBhcnNlcikKICAgICAsIG1fdXNlRmFsbGJhY2tDb250
ZW50KGZhbHNlKQotICAgICwgbV9kb2NOYW1lZEl0ZW0odHJ1ZSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuaAppbmRleCAzMzNhOTQzLi5jYTIwNWQ3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaApAQCAtMTA0LDIxICsxMDQsMjUgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0RvY05h
bWVkSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jTmFtZWRJdGVtOyB9CiAKKyAgICBjb25zdCBT
dHJpbmcmIGNsYXNzSWQoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzSWQ7IH0KKyAgICBjb25zdCBT
dHJpbmcmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CisgICAgY29uc3QgU3RyaW5nJiBz
ZXJ2aWNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVR5cGU7IH0KKwogICAgIGJvb2wg
Y29udGFpbnNKYXZhQXBwbGV0KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3VicmVz
b3VyY2VBdHRyaWJ1dGVTdHJpbmdzKFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CiAKK3ByaXZhdGU6
CisgICAgdm9pZCB1cGRhdGVEb2NOYW1lZEl0ZW0oKTsKKworICAgIEF0b21pY1N0cmluZyBtX2lk
OwogICAgIFN0cmluZyBtX3NlcnZpY2VUeXBlOwogICAgIFN0cmluZyBtX3VybDsKICAgICBTdHJp
bmcgbV9jbGFzc0lkOworICAgIGJvb2wgbV9kb2NOYW1lZEl0ZW0gOiAxOwogICAgIGJvb2wgbV9u
ZWVkV2lkZ2V0VXBkYXRlIDogMTsKICAgICBib29sIG1fdXNlRmFsbGJhY2tDb250ZW50IDogMTsK
ICAgICBPd25QdHI8SFRNTEltYWdlTG9hZGVyPiBtX2ltYWdlTG9hZGVyOwotCi1wcml2YXRlOgot
ICAgIHZvaWQgdXBkYXRlRG9jTmFtZWRJdGVtKCk7Ci0gICAgQXRvbWljU3RyaW5nIG1faWQ7Ci0g
ICAgYm9vbCBtX2RvY05hbWVkSXRlbTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3Vs
dC5jcHAKaW5kZXggZTA3MTBiYS4uZjg3MGEyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3Vs
dC5jcHAKQEAgLTIyOSw2ICsyMjksOCBAQCBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlSW1h
Z2VVUkwoKSBjb25zdAogICAgIGVsc2UgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdO
YW1lKFNWR05hbWVzOjppbWFnZVRhZykpCiAgICAgICAgIHVybFN0cmluZyA9IHN0YXRpY19jYXN0
PEVsZW1lbnQqPihtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSktPmdldEF0dHJpYnV0ZShYTGlu
a05hbWVzOjpocmVmQXR0cik7CiAjZW5kaWYKKyAgICBlbHNlIGlmIChtX2lubmVyTm9uU2hhcmVk
Tm9kZS0+aGFzVGFnTmFtZShlbWJlZFRhZykpCisgICAgICAgIHVybFN0cmluZyA9IHN0YXRpY19j
YXN0PEVsZW1lbnQqPihtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSktPmdldEF0dHJpYnV0ZShz
cmNBdHRyKTsKICAgICBlbHNlIGlmIChtX2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShv
YmplY3RUYWcpKQogICAgICAgICB1cmxTdHJpbmcgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9p
bm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpLT5nZXRBdHRyaWJ1dGUoZGF0YUF0dHIpOwogICAgIGVs
c2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAKaW5kZXggNTU3MTAwMC4uMGU0
ODIzMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAKQEAgLTEzNyw5ICsx
MzcsOSBAQCB2b2lkIFJlbmRlclBhcnRPYmplY3Q6OnVwZGF0ZVdpZGdldChib29sIG9ubHlDcmVh
dGVOb25OZXRzY2FwZVBsdWdpbnMpCiAgICAgICAKICAgICAgIC8vIElmIHRoZXJlIHdhcyBubyBV
Ukwgb3IgdHlwZSBkZWZpbmVkIGluIEVNQkVELCB0cnkgdGhlIE9CSkVDVCB0YWcuCiAgICAgICBp
ZiAodXJsLmlzRW1wdHkoKSkKLSAgICAgICAgICB1cmwgPSBvLT5tX3VybDsKKyAgICAgICAgICB1
cmwgPSBvLT51cmwoKTsKICAgICAgIGlmIChzZXJ2aWNlVHlwZS5pc0VtcHR5KCkpCi0gICAgICAg
ICAgc2VydmljZVR5cGUgPSBvLT5tX3NlcnZpY2VUeXBlOworICAgICAgICAgIHNlcnZpY2VUeXBl
ID0gby0+c2VydmljZVR5cGUoKTsKICAgICAgIAogICAgICAgSGFzaFNldDxTdHJpbmdJbXBsKiwg
Q2FzZUZvbGRpbmdIYXNoPiB1bmlxdWVQYXJhbU5hbWVzOwogICAgICAgCkBAIC0xOTMsOCArMTkz
LDggQEAgdm9pZCBSZW5kZXJQYXJ0T2JqZWN0Ojp1cGRhdGVXaWRnZXQoYm9vbCBvbmx5Q3JlYXRl
Tm9uTmV0c2NhcGVQbHVnaW5zKQogICAgICAgfQogICAgICAgCiAgICAgICAvLyBJZiB3ZSBzdGls
bCBkb24ndCBoYXZlIGEgdHlwZSwgdHJ5IHRvIG1hcCBmcm9tIGEgc3BlY2lmaWMgQ0xBU1NJRCB0
byBhIHR5cGUuCi0gICAgICBpZiAoc2VydmljZVR5cGUuaXNFbXB0eSgpICYmICFvLT5tX2NsYXNz
SWQuaXNFbXB0eSgpKQotICAgICAgICAgIG1hcENsYXNzSWRUb1NlcnZpY2VUeXBlKG8tPm1fY2xh
c3NJZCwgc2VydmljZVR5cGUpOworICAgICAgaWYgKHNlcnZpY2VUeXBlLmlzRW1wdHkoKSAmJiAh
by0+Y2xhc3NJZCgpLmlzRW1wdHkoKSkKKyAgICAgICAgICBtYXBDbGFzc0lkVG9TZXJ2aWNlVHlw
ZShvLT5jbGFzc0lkKCksIHNlcnZpY2VUeXBlKTsKICAgICAgIAogICAgICAgaWYgKCFpc1VSTEFs
bG93ZWQoZG9jdW1lbnQoKSwgdXJsKSkKICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTMzYTU2
YS4uMjYwZDhhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDA4LTA2LTIyICBEYXZpZCBELiBL
aWx6ZXIgIDxkZGtpbHplckB3ZWJraXQub3JnPgorCisgICAgICAgIEltYWdlcyB1c2luZyBRVCBw
bHVnaW4gZG8gbm90IGRpc3BsYXkgY29ycmVjdGx5CisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjE0PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTY4MzQxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0IGltYWdlcyByZW5kZXJlZCBieSBib3RoIGVtYmVkIGFuZCBvYmplY3QgZWxlbWVudHMu
CisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9vYmplY3QtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvZW1iZWQtaW1hZ2UtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvZW1iZWQt
aW1hZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9p
bWFnZXMvb2JqZWN0LWltYWdlLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvb2JqZWN0LWltYWdlLWV4cGVjdGVkLnBuZzogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorCiAyMDA4LTA2LTIxICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQnVnIDc5MzE6IEVzY2FwZWQgZWxlbWVudHMgd2l0aGluIGEgdGV4
dGFyZWEgYmxvY2sgY2FuIGNhdXNlIHRoZSB0ZXh0YXJlYSBib3ggdG8gYmUgY2xvc2VkIHByZW1h
dHVyZWx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZW1iZWQtaW1hZ2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mzk4ZjA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvZW1iZWQtaW1hZ2UuaHRtbApAQCAtMCwwICsxIEBACis8ZW1i
ZWQgc3JjPSIuLi9ib3JkZXJzL3Jlc291cmNlcy9CYWxsb29uXzgxMDc1MDIudGlmZiIgd2lkdGg9
IjM4IiBoZWlnaHQ9IjI0IiB0eXBlPSJpbWFnZS90aWZmIj48L2VtYmVkPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvb2JqZWN0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9vYmplY3QtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mYzk0NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvb2JqZWN0LWltYWdlLmh0bWwKQEAgLTAsMCArMSBAQAorPG9iamVjdCBkYXRhPSIuLi9ib3Jk
ZXJzL3Jlc291cmNlcy9CYWxsb29uXzgxMDc1MDIudGlmZiIgd2lkdGg9IjM4IiBoZWlnaHQ9IjI0
IiB0eXBlPSJpbWFnZS90aWZmIj48L29iamVjdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bSBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS1leHBlY3RlZC5j
aGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODNkYTdmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVk
LWltYWdlLWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzdlNzFhYzQ2ZDkzN2E4OTQ1
ZGU0YTk1YmYzZDA0M2M2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS1l
eHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBmNjg4NApC
aW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2ltYWdlcy9lbWJlZC1pbWFnZS1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvZW1iZWQtaW1hZ2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MWNhZjVlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVk
LWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJl
bmRlckltYWdlIHtFTUJFRH0gYXQgKDAsMCkgc2l6ZSAzOHgyNAorICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9pbWFnZXMvb2JqZWN0LWltYWdlLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3RlZC5jaGVj
a3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODNkYTdmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1p
bWFnZS1leHBlY3RlZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACis3ZTcxYWM0NmQ5MzdhODk0NWRl
NGE5NWJmM2QwNDNjNgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdlcy9vYmplY3QtaW1hZ2UtZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1l
eHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBmNjg4NApC
aW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2ltYWdlcy9vYmplY3QtaW1hZ2UtZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvb2JqZWN0LWltYWdlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2NmY2QwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29i
amVjdC1pbWFnZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAg
ICBSZW5kZXJJbWFnZSB7T0JKRUNUfSBhdCAoMCwwKSBzaXplIDM4eDI0CisgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22060</attachid>
            <date>2008-07-02 22:25:10 -0700</date>
            <delta_ts>2008-08-05 16:19:25 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-9214-v2.diff</filename>
            <type>text/plain</type>
            <size>25944</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDI3NTQ3YS4uYzQ1NTBiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAwOC0wNy0wMiAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltYWdlcyB1c2luZyBRVCBwbHVnaW4g
ZG8gbm90IGRpc3BsYXkgY29ycmVjdGx5CisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MjE0PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY4MzQx
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
czogZmFzdC9pbWFnZXMvZW1iZWQtaW1hZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFn
ZXMvb2JqZWN0LWltYWdlLmh0bWwKKworICAgICAgICBVc2UgUmVuZGVySW1hZ2UgaW5zdGVhZCBv
ZiBSZW5kZXJQYXJ0T2JqZWN0IGZvciBhIHJlbmRlcmVyIHdoZW4KKyAgICAgICAgdGhlIDxlbWJl
ZD4gdGFnIHJlZmVyZW5jZXMgYW4gaW1hZ2UuICBFeHRyYWN0IGNvbW1vbiBjb2RlIGZyb20KKyAg
ICAgICAgSFRNTEVtYmVkRWxlbWVudCBhbmQgSFRNTE9iamVjdEVsZW1lbnQgaW50byBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBBZGRlZCBuZXcgc291cmNlIGZpbGVzLgorCisgICAgICAgICogaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmNwcDogQ2xlYW5lZCB1cCAjaW5jbHVkZSBzdGF0ZW1lbnRzLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6SFRNTEVtYmVkRWxlbWVudCk6IEV4dGVuZAorICAg
ICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50IHdoaWNoIGV4dGVuZHMgSFRNTFBsdWdJbkVsZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZSk6IFNwbGl0IGNvZGVBdHRyCisgICAgICAgIGFuZCBzcmNBdHRyIGNhc2VzLiAgQ3JlYXRl
IG9yIGNsZWFyIEhUTUxJbWFnZUxvYWRlciBhcyBuZWVkZWQgZm9yCisgICAgICAgIHNyY0F0dHIu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKTog
VXNlCisgICAgICAgIEhUTUxQbHVnSW5FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKCkgZm9yIGlt
YWdlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KTogQ3JlYXRlIGEKKyAgICAgICAgUmVuZGVySW1hZ2UgaW5zdGVhZCBvZiBhIFJlbmRlclBhcnRP
YmplY3QgZm9yIGltYWdlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OmF0
dGFjaCk6IENyZWF0ZSBIVE1MSW1hZ2VMb2FkZXIsCisgICAgICAgIGxvYWQgaW1hZ2UgYW5kIHBv
cHVsYXRlIFJlbmRlckltYWdlIGZvciBpbWFnZXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1i
ZWRFbGVtZW50Ojp1cGRhdGVXaWRnZXQpOiBEb24ndCBjYWxsCisgICAgICAgIFJlbmRlclBhcnRP
YmplY3Q6OnVwZGF0ZVdpZGdldCgpIGZvciBpbWFnZXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
RW1iZWRFbGVtZW50OjppbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUpOiBBZGRlZC4KKyAgICAgICAg
KiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaDogUmVtb3ZlZCB1bm5lZWRlZCBuYW1lc3BhY2UgYW5k
IGNsYXNzCisgICAgICAgIGRlY2xhcmF0aW9ucy4gIEV4dGVuZCBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50IHdoaWNoIGV4dGVuZHMKKyAgICAgICAgSFRNTFBsdWdJbkVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjppbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1lbnQ6OnNlcnZpY2VUeXBlKTogTW92
ZWQgdG8KKyAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxFbWJlZEVsZW1lbnQ6OnVybCk6IERpdHRvLgorCisgICAgICAgICogaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5jcHA6IENsZWFuZWQgdXAgI2luY2x1ZGUgc3RhdGVtZW50cy4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjphdHRhY2gpOiBSZW1vdmVkIGxvY2FsIHZhcmlh
YmxlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmlzSW1hZ2VUeXBlKTog
TW92ZWQgdG8KKyAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudC4KKyAgICAgICAgKiBodG1s
L0hUTUxPYmplY3RFbGVtZW50Lmg6IEV4dGVuZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50IHdoaWNo
CisgICAgICAgIGV4dGVuZHMgSFRNTFBsdWdJbkVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MT2JqZWN0RWxlbWVudDo6aXNJbWFnZVR5cGUpOiBNb3ZlZCB0bworICAgICAgICBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNl
cnZpY2VUeXBlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6
dXJsKTogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OkhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6On5IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojppc0ltYWdlVHlwZSk6IE1vdmVkIGZyb20K
KyAgICAgICAgSFRNTE9iamVjdEVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxl
bWVudDo6aXNJbWFnZVR5cGUpOiBBZGRlZCBmcm9tIAorICAgICAgICBIVE1MT2JqZWN0RWxlbWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnNlcnZpY2VUeXBl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cmwp
OiBEaXR0by4KKworICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OmFic29sdXRlSW1hZ2VVUkwpOiBSZXR1cm4gdXJs
U3RyaW5nCisgICAgICAgIGZvciBlbWJlZCBlbGVtZW50cyB3aXRoIGltYWdlcy4KKwogMjAwOC0w
Ny0wMiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW5z
cGlyZWQgYW5kIHJldmlld2VkIGJ5IE1hcmsgUm93ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWY0NWY3Ny4uZTAyNDVkYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQwNiw2ICs0MDYsOCBAQAogCQkzN0FD
Q0Y2OTBEQTQxNEU3MDA4OUU2MDIgLyogRm9udERlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QUNDRTYyMERBMkFBOTYwMDg5RTYw
MiAvKiBGb250RGVzY3JpcHRpb24uY3BwICovOyB9OwogCQkzN0Y4MThGRDBENjU3NjA2MDA1RTFG
MDUgLyogV2ViQ29yZVVSTFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzN0Y4MThGQjBENjU3NjA2MDA1RTFGMDUgLyogV2ViQ29yZVVSTFJl
c3BvbnNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMzdGODE4RkUwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RjgxOEZDMEQ2NTc2
MDYwMDVFMUYwNSAvKiBXZWJDb3JlVVJMUmVzcG9uc2UubW0gKi87IH07CisJCTQ0MTUyOTJFMEUx
QUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAg
LyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oICovOyB9OworCQk0NDE1MjkyRjBFMUFFOEEwMDBD
NEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyRDBFMUFFOEEwMDBDNEEyRDAgLyogSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5jcHAgKi87IH07CiAJCTQ0MUIwNTU2MENENzc5QjYwMDdDMUYx
OCAvKiBET01DU1NTdHlsZVNoZWV0UHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyOUFBRUEwQ0I4NERDNzAwNzY0
N0M1IC8qIERPTUNTU1N0eWxlU2hlZXRQcml2YXRlLmggKi87IH07CiAJCTQ0MUIwNTU4MENENzc5
RjIwMDdDMUYxOCAvKiBET01FdmVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjlBQUY4MENCODRFNUYwMDc2
NDdDNSAvKiBET01FdmVudFByaXZhdGUuaCAqLzsgfTsKIAkJNDQxQjA1NUEwQ0Q3N0ExNDAwN0Mx
RjE4IC8qIERPTUhUTUxDb2xsZWN0aW9uUHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyOUFBRjEwQ0I4NEUzNTAw
NzY0N0M1IC8qIERPTUhUTUxDb2xsZWN0aW9uUHJpdmF0ZS5oICovOyB9OwpAQCAtNDkyNSw2ICs0
OTI3LDggQEAKIAkJMzdGODE4RkIwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25z
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGODE4RkMwRDY1NzYwNjAwNUUxRjA1
IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDQxMjQ0RDgwQ0I4NTNFRDAwOEYwQzc5IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2VU
YWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmg7IGZpbGVFbmNvZGluZyA9IDMwOyBwYXRoID0gSlNIVE1MSW5wdXRF
bGVtZW50QmFzZVRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQxNTI5
MkMwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0NDE1MjkyRDBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDQyOUFBRUEwQ0I4NERDNzAwNzY0N0M1IC8qIERPTUNTU1N0eWxlU2hlZXRQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NTdHlsZVNoZWV0UHJpdmF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDI5QUFGMTBDQjg0RTM1MDA3NjQ3
QzUgLyogRE9NSFRNTENvbGxlY3Rpb25Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01IVE1MQ29sbGVjdGlvblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQyOUFBRjgwQ0I4NEU1RjAwNzY0N0M1IC8qIERPTUV2ZW50UHJpdmF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXZlbnRQcml2YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDcwNyw2ICsxMDcxMSw4IEBACiAJCQkJQkM1
ODhBRUYwQkZBNkNGOTAwRUU2NzlFIC8qIEhUTUxQYXJzZXJFcnJvckNvZGVzLmggKi8sCiAJCQkJ
QTg3MUQ0NEQwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50LmNwcCAqLywKIAkJ
CQlBODcxRDQ0QzBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTFBsdWdJbkVsZW1lbnQuaCAqLywKKwkJ
CQk0NDE1MjkyRDBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAg
Ki8sCisJCQkJNDQxNTI5MkMwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuaCAqLywKIAkJCQlBOEVBN0M5RjBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTFByZUVsZW1lbnQu
Y3BwICovLAogCQkJCUE4RUE3Q0EyMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MUHJlRWxlbWVudC5o
ICovLAogCQkJCTFBRTJBQjg1MEExQ0U4NTAwMEI0MkIyNSAvKiBIVE1MUHJlRWxlbWVudC5pZGwg
Ki8sCkBAIC0xNTI3OSw2ICsxNTI4NSw3IEBACiAJCQkJNTBBNURGNzYwRTFBMTNDOTAwMEEwM0FF
IC8qIEZpbHRlckJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwQTVFMjEwMEUxQUJBRjIw
MDBBMDNBRSAvKiBGaWx0ZXJFZmZlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBREExNDExMEUx
QUU1RDkwMDAyM0VFNSAvKiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNzA1NCw2ICsxNzA2MSw3IEBACiAJCQkJNTBBNUU0NzIw
RTFBRUYzQTAwMEEwM0FFIC8qIEZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MEE1RTQ3
NDBFMUFFRjg0MDAwQTAzQUUgLyogRmlsdGVyRWZmZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBREExNDEwMEUxQUU1RDkwMDAyM0VFNSAvKiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTQ0MTUyOTJGMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
Y3BwCmluZGV4IDg0YTNhMmMuLmExYjJiZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAK
QEAgLTI3LDEzICsyNywxNSBAQAogI2luY2x1ZGUgIkNTU0hlbHBlci5oIgogI2luY2x1ZGUgIkNT
U1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgotI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJJbWFn
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnRPYmplY3QuaCIKIAogI2lmIFVTRShKQVZBU0NSSVBU
Q09SRV9CSU5ESU5HUykKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJydW50
aW1lLmgiCiAjZW5kaWYKIApAQCAtNDIsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBIVE1MRW1iZWRFbGVtZW50OjpIVE1MRW1iZWRF
bGVtZW50KERvY3VtZW50KiBkb2MpCi0gICAgOiBIVE1MUGx1Z0luRWxlbWVudChlbWJlZFRhZywg
ZG9jKQorICAgIDogSFRNTFBsdWdJbkltYWdlRWxlbWVudChlbWJlZFRhZywgZG9jKQogICAgICwg
bV9uZWVkV2lkZ2V0VXBkYXRlKGZhbHNlKQogewogfQpAQCAtNjYsNyArNjgsNyBAQCBzdGF0aWMg
aW5saW5lIFJlbmRlcldpZGdldCogZmluZFdpZGdldFJlbmRlcmVyKGNvbnN0IE5vZGUqIG4pCiAg
ICAgcmV0dXJuIChuICYmIG4tPnJlbmRlcmVyKCkgJiYgbi0+cmVuZGVyZXIoKS0+aXNXaWRnZXQo
KSkgCiAgICAgICAgID8gc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obi0+cmVuZGVyZXIoKSkg
OiAwOwogfQotICAgIAorCiBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSogSFRNTEVtYmVkRWxlbWVu
dDo6Z2V0SW5zdGFuY2UoKSBjb25zdAogewogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkt
PmZyYW1lKCk7CkBAIC0xMDgsOSArMTEwLDE4IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQogICAgICAgICBpbnQgcG9z
ID0gbV9zZXJ2aWNlVHlwZS5maW5kKCI7Iik7CiAgICAgICAgIGlmIChwb3MgIT0gLTEpCiAgICAg
ICAgICAgICBtX3NlcnZpY2VUeXBlID0gbV9zZXJ2aWNlVHlwZS5sZWZ0KHBvcyk7Ci0gICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gY29kZUF0dHIgfHwgYXR0ci0+bmFtZSgpID09IHNyY0F0
dHIpCisgICAgICAgIGlmICghaXNJbWFnZVR5cGUoKSAmJiBtX2ltYWdlTG9hZGVyKQorICAgICAg
ICAgICAgbV9pbWFnZUxvYWRlci5jbGVhcigpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgp
ID09IGNvZGVBdHRyKQogICAgICAgICBtX3VybCA9IHBhcnNlVVJMKHZhbHVlLnN0cmluZygpKTsK
LSAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gcGx1Z2lucGFnZUF0dHIgfHwgYXR0ci0+bmFt
ZSgpID09IHBsdWdpbnNwYWdlQXR0cikKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gc3Jj
QXR0cikgeworICAgICAgICBtX3VybCA9IHBhcnNlVVJMKHZhbHVlLnN0cmluZygpKTsKKyAgICAg
ICAgaWYgKHJlbmRlcmVyKCkgJiYgaXNJbWFnZVR5cGUoKSkgeworICAgICAgICAgICAgaWYgKCFt
X2ltYWdlTG9hZGVyKQorICAgICAgICAgICAgICAgIG1faW1hZ2VMb2FkZXIuc2V0KG5ldyBIVE1M
SW1hZ2VMb2FkZXIodGhpcykpOworICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJv
bUVsZW1lbnQoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHBs
dWdpbnBhZ2VBdHRyIHx8IGF0dHItPm5hbWUoKSA9PSBwbHVnaW5zcGFnZUF0dHIpCiAgICAgICAg
IG1fcGx1Z2luUGFnZSA9IHZhbHVlOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBoaWRk
ZW5BdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZS5zdHJpbmcoKSwg
InllcyIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLnN0cmluZygpLCAidHJ1ZSIpKSB7CkBA
IC0xMzIsNiArMTQzLDkgQEAgdm9pZCBIVE1MRW1iZWRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiAKIGJvb2wgSFRNTEVtYmVkRWxlbWVudDo6cmVu
ZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5bGUpCiB7CisgICAgaWYgKGlzSW1hZ2VUeXBl
KCkpCisgICAgICAgIHJldHVybiBIVE1MUGx1Z0luRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChz
dHlsZSk7CisKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE0NywxNCArMTYxLDMwIEBAIGJv
b2wgSFRNTEVtYmVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5bGUp
CiAKIFJlbmRlck9iamVjdCogSFRNTEVtYmVkRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCiB7CisgICAgaWYgKGlzSW1hZ2VUeXBl
KCkpCisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlzKTsKICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUGFydE9iamVjdCh0aGlzKTsKIH0KIAogdm9pZCBIVE1M
RW1iZWRFbGVtZW50OjphdHRhY2goKQogewogICAgIG1fbmVlZFdpZGdldFVwZGF0ZSA9IHRydWU7
Ci0gICAgcXVldWVQb3N0QXR0YWNoQ2FsbGJhY2soJkhUTUxQbHVnSW5FbGVtZW50Ojp1cGRhdGVX
aWRnZXRDYWxsYmFjaywgdGhpcyk7CisKKyAgICBib29sIGlzSW1hZ2UgPSBpc0ltYWdlVHlwZSgp
OworCisgICAgaWYgKCFpc0ltYWdlKQorICAgICAgICBxdWV1ZVBvc3RBdHRhY2hDYWxsYmFjaygm
SFRNTFBsdWdJbkVsZW1lbnQ6OnVwZGF0ZVdpZGdldENhbGxiYWNrLCB0aGlzKTsKKwogICAgIEhU
TUxQbHVnSW5FbGVtZW50OjphdHRhY2goKTsKKworICAgIGlmIChpc0ltYWdlICYmIHJlbmRlcmVy
KCkpIHsKKyAgICAgICAgaWYgKCFtX2ltYWdlTG9hZGVyKQorICAgICAgICAgICAgbV9pbWFnZUxv
YWRlci5zZXQobmV3IEhUTUxJbWFnZUxvYWRlcih0aGlzKSk7CisgICAgICAgIG1faW1hZ2VMb2Fk
ZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CisKKyAgICAgICAgaWYgKHJlbmRlcmVyKCkpCisgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJJbWFnZSo+KHJlbmRlcmVyKCkpLT5zZXRDYWNoZWRJ
bWFnZShtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTEVtYmVk
RWxlbWVudDo6ZGV0YWNoKCkKQEAgLTE2OCw3ICsxOTgsNyBAQCB2b2lkIEhUTUxFbWJlZEVsZW1l
bnQ6OmRldGFjaCgpCiB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldCgpCiB7CiAg
ICAgZG9jdW1lbnQoKS0+dXBkYXRlUmVuZGVyaW5nKCk7Ci0gICAgaWYgKG1fbmVlZFdpZGdldFVw
ZGF0ZSAmJiByZW5kZXJlcigpKQorICAgIGlmIChtX25lZWRXaWRnZXRVcGRhdGUgJiYgcmVuZGVy
ZXIoKSAmJiAhaXNJbWFnZVR5cGUoKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyUGFydE9i
amVjdCo+KHJlbmRlcmVyKCkpLT51cGRhdGVXaWRnZXQodHJ1ZSk7CiB9CiAKQEAgLTIyMCw2ICsy
NTAsMTEgQEAgYm9vbCBIVE1MRW1iZWRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUq
IGF0dHIpIGNvbnN0CiAgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyOwogfQogCitj
b25zdCBRdWFsaWZpZWROYW1lJiBIVE1MRW1iZWRFbGVtZW50OjppbWFnZVNvdXJjZUF0dHJpYnV0
ZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBzcmNBdHRyOworfQorCiBTdHJpbmcgSFRNTEVt
YmVkRWxlbWVudDo6c3JjKCkgY29uc3QKIHsKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHNyY0F0
dHIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaCBiL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggZmI0YmM0ZC4uNTM2YzZkYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEVtYmVkRWxlbWVudC5oCkBAIC0yMywxOSArMjMsMTEgQEAKICNpZm5kZWYgSFRNTEVtYmVk
RWxlbWVudF9oCiAjZGVmaW5lIEhUTUxFbWJlZEVsZW1lbnRfaAogCi0jaW5jbHVkZSAiSFRNTFBs
dWdJbkVsZW1lbnQuaCIKLQotI2lmIFVTRShKQVZBU0NSSVBUQ09SRV9CSU5ESU5HUykKLW5hbWVz
cGFjZSBLSlMgewotICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7Ci0gICAgICAgIGNsYXNzIEluc3Rh
bmNlOwotICAgIH0KLX0KLSNlbmRpZgorI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MRW1iZWRFbGVtZW50IDogcHVi
bGljIEhUTUxQbHVnSW5FbGVtZW50IHsKK2NsYXNzIEhUTUxFbWJlZEVsZW1lbnQgOiBwdWJsaWMg
SFRNTFBsdWdJbkltYWdlRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSFRNTEVtYmVkRWxlbWVudChE
b2N1bWVudCopOwogICAgIH5IVE1MRW1iZWRFbGVtZW50KCk7CkBAIC01Niw2ICs0OCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqLCBib29s
IHByZXNlcnZlRGVjbHMgPSBmYWxzZSk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0
cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgaW1hZ2VTb3VyY2VBdHRyaWJ1dGVOYW1lKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlV2lkZ2V0KCk7CiAgICAgdm9pZCBzZXROZWVkV2lkZ2V0VXBkYXRlKGJvb2wgbmVlZFdp
ZGdldFVwZGF0ZSkgeyBtX25lZWRXaWRnZXRVcGRhdGUgPSBuZWVkV2lkZ2V0VXBkYXRlOyB9CkBA
IC03MCwxNSArNjMsMTAgQEAgcHVibGljOgogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgY29uc3QgU3RyaW5nJiB1cmwoKSBj
b25zdCB7IHJldHVybiBtX3VybDsgfQotICAgIGNvbnN0IFN0cmluZyYgc2VydmljZVR5cGUoKSBj
b25zdCB7IHJldHVybiBtX3NlcnZpY2VUeXBlOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3Vi
cmVzb3VyY2VBdHRyaWJ1dGVTdHJpbmdzKFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgU3RyaW5nIG1fdXJsOwogICAgIFN0cmluZyBtX3BsdWdpblBhZ2U7Ci0gICAgU3Ry
aW5nIG1fc2VydmljZVR5cGU7CiAgICAgYm9vbCBtX25lZWRXaWRnZXRVcGRhdGU7CiB9OwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCBiMzAzMWJiLi44ZTI1MmIwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTI4LDIxICsyOCwxNyBAQAogI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50
LmgiCi0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJS
ZW5kZXJQYXJ0T2JqZWN0LmgiCi0jaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgogCiAjaWYgVVNFKEpBVkFTQ1JJUFRDT1JFX0JJTkRJTkdTKQorI2luY2x1ZGUgIlJl
bmRlcldpZGdldC5oIgogI2luY2x1ZGUgInJ1bnRpbWUuaCIKICNlbmRpZgogCkBAIC01Miw3ICs0
OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBFdmVudE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogSFRNTE9iamVjdEVsZW1lbnQ6OkhUTUxPYmplY3RFbGVtZW50KERvY3VtZW50KiBk
b2MsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKSAKLSAgICA6IEhUTUxQbHVnSW5FbGVtZW50KG9iamVj
dFRhZywgZG9jKQorICAgIDogSFRNTFBsdWdJbkltYWdlRWxlbWVudChvYmplY3RUYWcsIGRvYykK
ICAgICAsIG1fZG9jTmFtZWRJdGVtKHRydWUpCiAgICAgLCBtX25lZWRXaWRnZXRVcGRhdGUoIWNy
ZWF0ZWRCeVBhcnNlcikKICAgICAsIG1fdXNlRmFsbGJhY2tDb250ZW50KGZhbHNlKQpAQCAtMTc3
LDEwICsxNzMsOCBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjphdHRhY2goKQogICAgICAgICBp
ZiAobV91c2VGYWxsYmFja0NvbnRlbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
aWYgKHJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIFJlbmRlckltYWdlKiBpbWFnZU9iaiA9IHN0
YXRpY19jYXN0PFJlbmRlckltYWdlKj4ocmVuZGVyZXIoKSk7Ci0gICAgICAgICAgICBpbWFnZU9i
ai0+c2V0Q2FjaGVkSW1hZ2UobV9pbWFnZUxvYWRlci0+aW1hZ2UoKSk7Ci0gICAgICAgIH0KKyAg
ICAgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJJbWFn
ZSo+KHJlbmRlcmVyKCkpLT5zZXRDYWNoZWRJbWFnZShtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKTsK
ICAgICB9CiB9CiAKQEAgLTI2NSwxOSArMjU5LDYgQEAgY29uc3QgUXVhbGlmaWVkTmFtZSYgSFRN
TE9iamVjdEVsZW1lbnQ6OmltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0CiAgICAgcmV0
dXJuIGRhdGFBdHRyOwogfQogCi1ib29sIEhUTUxPYmplY3RFbGVtZW50Ojppc0ltYWdlVHlwZSgp
Ci17Ci0gICAgaWYgKG1fc2VydmljZVR5cGUuaXNFbXB0eSgpICYmIHByb3RvY29sSXMobV91cmws
ICJkYXRhIikpCi0gICAgICAgIG1fc2VydmljZVR5cGUgPSBtaW1lVHlwZUZyb21EYXRhVVJMKG1f
dXJsKTsKLQotICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKSB7Ci0g
ICAgICAgIEtVUkwgY29tcGxldGVkVVJMKGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwobV91
cmwpKTsKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPm9iamVjdENv
bnRlbnRUeXBlKGNvbXBsZXRlZFVSTCwgbV9zZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVudElt
YWdlOwotICAgIH0KLQotICAgIHJldHVybiBJbWFnZTo6c3VwcG9ydHNUeXBlKG1fc2VydmljZVR5
cGUpOwotfQotCiB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpyZW5kZXJGYWxsYmFja0NvbnRlbnQo
KQogewogICAgIGlmIChtX3VzZUZhbGxiYWNrQ29udGVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmgKaW5kZXggY2EyMDVkNy4uOGNkY2EzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAg
LTIzLDE1ICsyMywxMyBAQAogI2lmbmRlZiBIVE1MT2JqZWN0RWxlbWVudF9oCiAjZGVmaW5lIEhU
TUxPYmplY3RFbGVtZW50X2gKIAotI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCi0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MSW1hZ2VMb2FkZXI7CiBjbGFzcyBL
VVJMOwogCi1jbGFzcyBIVE1MT2JqZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0luRWxlbWVu
dCB7CitjbGFzcyBIVE1MT2JqZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50IHsKIHB1YmxpYzoKICAgICBIVE1MT2JqZWN0RWxlbWVudChEb2N1bWVudCosIGJvb2wgY3Jl
YXRlZEJ5UGFyc2VyKTsKICAgICB+SFRNTE9iamVjdEVsZW1lbnQoKTsKQEAgLTU4LDggKzU2LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRnZXQoKTsKICAgICB2b2lkIHNl
dE5lZWRXaWRnZXRVcGRhdGUoYm9vbCBuZWVkV2lkZ2V0VXBkYXRlKSB7IG1fbmVlZFdpZGdldFVw
ZGF0ZSA9IG5lZWRXaWRnZXRVcGRhdGU7IH0KIAotICAgIGJvb2wgaXNJbWFnZVR5cGUoKTsKLQog
ICAgIHZvaWQgcmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CiAKICNpZiBVU0UoSkFWQVNDUklQVENP
UkVfQklORElOR1MpCkBAIC0xMDUsOCArMTAxLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNEb2NO
YW1lZEl0ZW0oKSBjb25zdCB7IHJldHVybiBtX2RvY05hbWVkSXRlbTsgfQogCiAgICAgY29uc3Qg
U3RyaW5nJiBjbGFzc0lkKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0lkOyB9Ci0gICAgY29uc3Qg
U3RyaW5nJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQotICAgIGNvbnN0IFN0cmluZyYg
c2VydmljZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VUeXBlOyB9CiAKICAgICBib29s
IGNvbnRhaW5zSmF2YUFwcGxldCgpIGNvbnN0OwogCkBAIC0xMTYsMTMgKzExMCwxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgdXBkYXRlRG9jTmFtZWRJdGVtKCk7CiAKICAgICBBdG9taWNTdHJpbmcg
bV9pZDsKLSAgICBTdHJpbmcgbV9zZXJ2aWNlVHlwZTsKLSAgICBTdHJpbmcgbV91cmw7CiAgICAg
U3RyaW5nIG1fY2xhc3NJZDsKICAgICBib29sIG1fZG9jTmFtZWRJdGVtIDogMTsKICAgICBib29s
IG1fbmVlZFdpZGdldFVwZGF0ZSA6IDE7CiAgICAgYm9vbCBtX3VzZUZhbGxiYWNrQ29udGVudCA6
IDE7Ci0gICAgT3duUHRyPEhUTUxJbWFnZUxvYWRlcj4gbV9pbWFnZUxvYWRlcjsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42ZGNkNWZiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIKKworI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6SFRNTFBsdWdJbkltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1MUGx1Z0luRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKK3sKK30KKworSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6fkhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQoKQoreworfQorCitib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmlzSW1hZ2VUeXBl
KCkKK3sKKyAgICBpZiAobV9zZXJ2aWNlVHlwZS5pc0VtcHR5KCkgJiYgcHJvdG9jb2xJcyhtX3Vy
bCwgImRhdGEiKSkKKyAgICAgICAgbV9zZXJ2aWNlVHlwZSA9IG1pbWVUeXBlRnJvbURhdGFVUkwo
bV91cmwpOworCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsK
KyAgICAgICAgS1VSTCBjb21wbGV0ZWRVUkwgPSBmcmFtZS0+bG9hZGVyKCktPmNvbXBsZXRlVVJM
KG1fdXJsKTsKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPm9iamVj
dENvbnRlbnRUeXBlKGNvbXBsZXRlZFVSTCwgbV9zZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVu
dEltYWdlOworICAgIH0KKworICAgIHJldHVybiBJbWFnZTo6c3VwcG9ydHNUeXBlKG1fc2Vydmlj
ZVR5cGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzNiMjU4
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgSFRNTFBsdWdJbkltYWdlRWxlbWVudF9o
CisjZGVmaW5lIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnRfaAorCisjaW5jbHVkZSAiSFRNTFBsdWdJ
bkVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSFRNTEltYWdlTG9hZGVyOworCitjbGFzcyBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50IDogcHVibGljIEhUTUxQbHVnSW5FbGVtZW50IHsKK3B1YmxpYzoKKyAgICBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7Cisg
ICAgdmlydHVhbCB+SFRNTFBsdWdJbkltYWdlRWxlbWVudCgpOworCisgICAgYm9vbCBpc0ltYWdl
VHlwZSgpOworCisgICAgY29uc3QgU3RyaW5nJiBzZXJ2aWNlVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2VydmljZVR5cGU7IH0KKyAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0IHsgcmV0dXJu
IG1fdXJsOyB9CisKK3Byb3RlY3RlZDoKKyAgICBPd25QdHI8SFRNTEltYWdlTG9hZGVyPiBtX2lt
YWdlTG9hZGVyOworICAgIFN0cmluZyBtX3NlcnZpY2VUeXBlOworICAgIFN0cmluZyBtX3VybDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5j
cHAgYi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCBlMDcxMGJhLi5i
N2EwN2I4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtMjI5LDkgKzIyOSwx
MCBAQCBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlSW1hZ2VVUkwoKSBjb25zdAogICAgIGVs
c2UgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjppbWFnZVRh
ZykpCiAgICAgICAgIHVybFN0cmluZyA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX2lubmVyTm9u
U2hhcmVkTm9kZS5nZXQoKSktPmdldEF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiAj
ZW5kaWYKLSAgICBlbHNlIGlmIChtX2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShvYmpl
Y3RUYWcpKQotICAgICAgICB1cmxTdHJpbmcgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9pbm5l
ck5vblNoYXJlZE5vZGUuZ2V0KCkpLT5nZXRBdHRyaWJ1dGUoZGF0YUF0dHIpOwotICAgIGVsc2UK
KyAgICBlbHNlIGlmIChtX2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShlbWJlZFRhZykg
fHwgbV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSkgeworICAgICAg
ICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1faW5uZXJOb25TaGFy
ZWROb2RlLmdldCgpKTsKKyAgICAgICAgdXJsU3RyaW5nID0gZWxlbWVudC0+Z2V0QXR0cmlidXRl
KGVsZW1lbnQtPmltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpKTsKKyAgICB9IGVsc2UKICAgICAg
ICAgcmV0dXJuIEtVUkwoKTsKICAgICAKICAgICByZXR1cm4gbV9pbm5lck5vblNoYXJlZE5vZGUt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHBhcnNlVVJMKHVybFN0cmluZykpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE0
ZGM2YTIuLjQyMWI2MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAwOC0wNy0wMiAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltYWdlcyB1c2luZyBRVCBw
bHVnaW4gZG8gbm90IGRpc3BsYXkgY29ycmVjdGx5CisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjE0PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTY4MzQxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0IGltYWdlcyByZW5kZXJlZCBieSBib3RoIGVtYmVkIGFuZCBvYmplY3QgZWxlbWVudHMu
CisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9vYmplY3QtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvZW1iZWQtaW1hZ2UtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvZW1iZWQt
aW1hZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9p
bWFnZXMvb2JqZWN0LWltYWdlLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvb2JqZWN0LWltYWdlLWV4cGVjdGVkLnBuZzogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorCiAyMDA4LTA3LTAyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+
CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvZW1iZWQtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44Mzk4ZjA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
ZW1iZWQtaW1hZ2UuaHRtbApAQCAtMCwwICsxIEBACis8ZW1iZWQgc3JjPSIuLi9ib3JkZXJzL3Jl
c291cmNlcy9CYWxsb29uXzgxMDc1MDIudGlmZiIgd2lkdGg9IjM4IiBoZWlnaHQ9IjI0IiB0eXBl
PSJpbWFnZS90aWZmIj48L2VtYmVkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvb2JqZWN0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9vYmplY3QtaW1h
Z2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzk0NTQ1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvb2JqZWN0LWltYWdlLmh0bWwK
QEAgLTAsMCArMSBAQAorPG9iamVjdCBkYXRhPSIuLi9ib3JkZXJzL3Jlc291cmNlcy9CYWxsb29u
XzgxMDc1MDIudGlmZiIgd2lkdGg9IjM4IiBoZWlnaHQ9IjI0IiB0eXBlPSJpbWFnZS90aWZmIj48
L29iamVjdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdl
cy9lbWJlZC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODNkYTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLWV4cGVjdGVkLmNoZWNr
c3VtCkBAIC0wLDAgKzEgQEAKKzdlNzFhYzQ2ZDkzN2E4OTQ1ZGU0YTk1YmYzZDA0M2M2ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDcwYTU0OQpCaW5hcnkgZmlsZXMgL2Rldi9udWxs
IGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdlcy9lbWJlZC1pbWFnZS1l
eHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9pbWFnZXMvZW1iZWQtaW1hZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi41MWNhZjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2VtYmVkLWltYWdlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckltYWdlIHtFTUJFRH0gYXQg
KDAsMCkgc2l6ZSAzOHgyNAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvb2Jq
ZWN0LWltYWdlLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40ODNkYTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1
bQpAQCAtMCwwICsxIEBACis3ZTcxYWM0NmQ5MzdhODk0NWRlNGE5NWJmM2QwNDNjNgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2ltYWdlcy9vYmplY3QtaW1hZ2UtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDcwYTU0OQpCaW5hcnkgZmlsZXMgL2Rldi9udWxs
IGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdlcy9vYmplY3QtaW1hZ2Ut
ZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9pbWFnZXMvb2JqZWN0LWltYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2NmY2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL29iamVjdC1pbWFnZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJJbWFnZSB7T0JKRUNU
fSBhdCAoMCwwKSBzaXplIDM4eDI0CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAK
</data>
<flag name="review"
          id="9710"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>