<?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>68773</bug_id>
          
          <creation_ts>2011-09-25 01:26:47 -0700</creation_ts>
          <short_desc>BDI element should have dir=auto by default</short_desc>
          <delta_ts>2012-03-21 18:08:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50910</blocked>
    
    <blocked>50913</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aharon (Vladimir) Lanin">aharon</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>aharon</cc>
    
    <cc>amir.aharoni</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>leviw</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mitz</cc>
    
    <cc>playmobil</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>xji</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472871</commentid>
    <comment_count>0</comment_count>
    <who name="Aharon (Vladimir) Lanin">aharon</who>
    <bug_when>2011-09-25 01:26:47 -0700</bug_when>
    <thetext>Unless bdi has an explicitly assigned dir=ltr or dir=rtl, it should behave as if it had dir=auto. See http://dev.w3.org/html5/spec/Overview.html#the-bdi-element, where it says:

Note: The dir global attribute defaults to auto on this element (it never inherits from the parent element like with other elements).

BTW, please note related bug https://bugs.webkit.org/show_bug.cgi?id=63903 (dir=auto should imply unicode-bidi:isolate by default)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519993</commentid>
    <comment_count>1</comment_count>
      <attachid>118988</attachid>
    <who name="Aharon (Vladimir) Lanin">aharon</who>
    <bug_when>2011-12-13 02:54:54 -0800</bug_when>
    <thetext>Created attachment 118988
test case (ref file coming as separate attachment)

This is one of the tests being submitted to public-html-testsuite@w3.org for inclusion into the W3C&apos;s HTML5 test suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519994</commentid>
    <comment_count>2</comment_count>
      <attachid>118989</attachid>
    <who name="Aharon (Vladimir) Lanin">aharon</who>
    <bug_when>2011-12-13 02:56:32 -0800</bug_when>
    <thetext>Created attachment 118989
ref file for the test case above</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583405</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-20 13:32:35 -0700</bug_when>
    <thetext>It seems like it&apos;ll be much easier to do this if dir=auto had a CSS equivalent. I&apos;ve filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=16456 to that end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583563</commentid>
    <comment_count>4</comment_count>
    <who name="Aharon (Vladimir) Lanin">aharon</who>
    <bug_when>2012-03-20 16:11:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; It seems like it&apos;ll be much easier to do this if dir=auto had a CSS equivalent. I&apos;ve filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=16456 to that end.

I do not think that a CSS equivalent to dir=auto is possible. When Fantasai gets around to responding on that bug, that is what she will say. I do not want this issue to be blocked waiting for that, because it just isn&apos;t going to happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583621</commentid>
    <comment_count>5</comment_count>
      <attachid>132928</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-20 16:59:54 -0700</bug_when>
    <thetext>Created attachment 132928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583626</commentid>
    <comment_count>6</comment_count>
      <attachid>132930</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-20 17:02:27 -0700</bug_when>
    <thetext>Created attachment 132930
Fixed the file ordering in xcodeproj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583639</commentid>
    <comment_count>7</comment_count>
      <attachid>132930</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-20 17:08:41 -0700</bug_when>
    <thetext>Comment on attachment 132930
Fixed the file ordering in xcodeproj

Attachment 132930 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12090028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583643</commentid>
    <comment_count>8</comment_count>
      <attachid>132937</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-20 17:12:06 -0700</bug_when>
    <thetext>Created attachment 132937
Fixed GTK &amp; Qt builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583993</commentid>
    <comment_count>9</comment_count>
      <attachid>132937</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 04:38:24 -0700</bug_when>
    <thetext>Comment on attachment 132937
Fixed GTK &amp; Qt builds

Attachment 132937 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12086328

New failing tests:
fast/text/international/bdi-dir-default-to-auto.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584502</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 12:36:43 -0700</bug_when>
    <thetext>Apparently this failure only manifests in release builds :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584677</commentid>
    <comment_count>11</comment_count>
      <attachid>133123</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 15:16:51 -0700</bug_when>
    <thetext>Created attachment 133123
Fixed a bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584679</commentid>
    <comment_count>12</comment_count>
      <attachid>133123</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 15:18:29 -0700</bug_when>
    <thetext>Comment on attachment 133123
Fixed a bug

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

&gt; Source/WebCore/html/HTMLBDIElement.h:40
&gt; +        // FIXME: Rename setSelfOrAncestorHasDirAutoAttribute to reflect the fact bdi also uses this flag.
&gt; +        setSelfOrAncestorHasDirAutoAttribute(true);

I&apos;m more than happy to make the change if anyone can come up with a better name for this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584686</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 15:23:55 -0700</bug_when>
    <thetext>Apparently HTMLElementFactory.cpp is generated from HTMLTagNames.in so I had to modify HTMLTagNames.in instead of HTMLElementFactory.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584714</commentid>
    <comment_count>14</comment_count>
      <attachid>133130</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 15:46:49 -0700</bug_when>
    <thetext>Created attachment 133130
Removed the extra change log entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584736</commentid>
    <comment_count>15</comment_count>
      <attachid>133130</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 16:05:35 -0700</bug_when>
    <thetext>Comment on attachment 133130
Removed the extra change log entry

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

&gt; Source/WebCore/html/HTMLElement.cpp:934
&gt; -            if (node-&gt;isElementNode() &amp;&amp; toElement(node)-&gt;hasAttribute(dirAttr))
&gt; +            if (node-&gt;isElementNode() &amp;&amp; elementAffectsDirectionality(toHTMLElement(node)))

This should be checking for isHTMLElement instead; will fix before landing it if this patch gets r+ed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584737</commentid>
    <comment_count>16</comment_count>
      <attachid>133130</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 16:06:10 -0700</bug_when>
    <thetext>Comment on attachment 133130
Removed the extra change log entry

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

&gt;&gt; Source/WebCore/html/HTMLElement.cpp:934
&gt;&gt; +            if (node-&gt;isElementNode() &amp;&amp; elementAffectsDirectionality(toHTMLElement(node)))
&gt; 
&gt; This should be checking for isHTMLElement instead; will fix before landing it if this patch gets r+ed.

Or rather we should be casting to toElement instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584749</commentid>
    <comment_count>17</comment_count>
      <attachid>133130</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-03-21 16:31:10 -0700</bug_when>
    <thetext>Comment on attachment 133130
Removed the extra change log entry

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

This patch looks straight forward to me. I had some minor comments.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1370
&gt; +    if ((element-&gt;isHTMLElement() &amp;&amp; toHTMLElement(element)-&gt;hasDirectionAuto()) || (m_element-&gt;isHTMLElement() &amp;&amp; toHTMLElement(m_element)-&gt;hasDirectionAuto()))

The disjuncts in this disjunction are the same up to the object they operate on. You may want to consider extracting a disjunct into an inline function, say elementHasDirectionAuto() or doesElementHaveDirectionAuto?

inline bool elementHasDirectionAuto(Element* element)
{
    return element-&gt;isHTMLElement() &amp;&amp; toHTMLElement(element)-&gt;hasDirectionAuto();
}

Then you can write this line as:

if (elementHasDirectionAuto(element) || elementHasDirectionAuto(m_element)) {
    ...
}

&gt; Source/WebCore/html/HTMLBDIElement.h:41
&gt; +        fprintf(stderr, &quot;HTMLBDIElement:%s\n&quot;, selfOrAncestorHasDirAutoAttribute() ? &quot;true&quot; : &quot;false&quot;);

Did you mean to have this fprintf() in the patch?

&gt; Source/WebCore/html/HTMLBDIElement.h:45
&gt; +} // namespace

This should read:

// namespace WebCore

&gt; Source/WebCore/html/HTMLElement.cpp:945
&gt; +    while (oldMarkedNode &amp;&amp; oldMarkedNode-&gt;isHTMLElement() &amp;&amp; elementAffectsDirectionality(toHTMLElement(oldMarkedNode)))

As we talked about on IRC, you may want to consider having elementAffectsDirectionality() take a const Node* instead of a const Element*. And moving the HTMLElement cast (it&apos;s sufficient to call toElement()) into elementAffectsDirectionality() such that we can write this line as:

while (oldMarkedNode &amp;&amp; oldMarkedNode-&gt;isHTMLElement() &amp;&amp; elementAffectsDirectionality(oldMarkedNode))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584756</commentid>
    <comment_count>18</comment_count>
      <attachid>133130</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 16:40:05 -0700</bug_when>
    <thetext>Comment on attachment 133130
Removed the extra change log entry

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

Thanks for the review!

&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:1370
&gt;&gt; +    if ((element-&gt;isHTMLElement() &amp;&amp; toHTMLElement(element)-&gt;hasDirectionAuto()) || (m_element-&gt;isHTMLElement() &amp;&amp; toHTMLElement(m_element)-&gt;hasDirectionAuto()))
&gt; 
&gt; The disjuncts in this disjunction are the same up to the object they operate on. You may want to consider extracting a disjunct into an inline function, say elementHasDirectionAuto() or doesElementHaveDirectionAuto?
&gt; 
&gt; inline bool elementHasDirectionAuto(Element* element)
&gt; {
&gt;     return element-&gt;isHTMLElement() &amp;&amp; toHTMLElement(element)-&gt;hasDirectionAuto();
&gt; }
&gt; 
&gt; Then you can write this line as:
&gt; 
&gt; if (elementHasDirectionAuto(element) || elementHasDirectionAuto(m_element)) {
&gt;     ...
&gt; }

Added elementHasDirectionAuto.

&gt;&gt; Source/WebCore/html/HTMLBDIElement.h:41
&gt;&gt; +        fprintf(stderr, &quot;HTMLBDIElement:%s\n&quot;, selfOrAncestorHasDirAutoAttribute() ? &quot;true&quot; : &quot;false&quot;);
&gt; 
&gt; Did you mean to have this fprintf() in the patch?

Oops, definitely not. Removed.

&gt;&gt; Source/WebCore/html/HTMLBDIElement.h:45
&gt;&gt; +} // namespace
&gt; 
&gt; This should read:
&gt; 
&gt; // namespace WebCore

Fixed.

&gt;&gt; Source/WebCore/html/HTMLElement.cpp:945
&gt;&gt; +    while (oldMarkedNode &amp;&amp; oldMarkedNode-&gt;isHTMLElement() &amp;&amp; elementAffectsDirectionality(toHTMLElement(oldMarkedNode)))
&gt; 
&gt; As we talked about on IRC, you may want to consider having elementAffectsDirectionality() take a const Node* instead of a const Element*. And moving the HTMLElement cast (it&apos;s sufficient to call toElement()) into elementAffectsDirectionality() such that we can write this line as:
&gt; 
&gt; while (oldMarkedNode &amp;&amp; oldMarkedNode-&gt;isHTMLElement() &amp;&amp; elementAffectsDirectionality(oldMarkedNode))

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584758</commentid>
    <comment_count>19</comment_count>
      <attachid>133130</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-21 16:41:05 -0700</bug_when>
    <thetext>Comment on attachment 133130
Removed the extra change log entry

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

&gt; Source/WebCore/html/HTMLTagNames.in:18
&gt; +bdi interfaceName=HTMLBDIElement, JSInterfaceName=HTMLElement

I&apos;m surprised you need any interfaceName, I guess HTMLBdiElement would be default.... I think make_names attempts to understand some of these capitalizations, probably with a hard-coded list.  I guess we should move more of the hard-coded list items to being in these .in files instead... or maybe we already have. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584770</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 16:55:28 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 133130 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133130&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLTagNames.in:18
&gt; &gt; +bdi interfaceName=HTMLBDIElement, JSInterfaceName=HTMLElement
&gt; 
&gt; I&apos;m surprised you need any interfaceName, I guess HTMLBdiElement would be default.... I think make_names attempts to understand some of these capitalizations, probably with a hard-coded list.  I guess we should move more of the hard-coded list items to being in these .in files instead... or maybe we already have. :)

I think we&apos;ve already moved to .in files. e.g. hr interfaceName=HTMLHRElement is there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584780</commentid>
    <comment_count>21</comment_count>
      <attachid>133130</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 17:14:34 -0700</bug_when>
    <thetext>Comment on attachment 133130
Removed the extra change log entry

Attachment 133130 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12090660

New failing tests:
fast/css/default-bidi-css-rules.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584843</commentid>
    <comment_count>22</comment_count>
      <attachid>133130</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 18:04:09 -0700</bug_when>
    <thetext>Comment on attachment 133130
Removed the extra change log entry

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

&gt; Source/WebCore/html/HTMLElement.cpp:834
&gt; +    return hasTagName(bdiTag) || equalIgnoringCase(fastGetAttribute(dirAttr), &quot;auto&quot;);

Oops, I need to check that the dir attribute isn&apos;t set to ltr or rtl when the element is bdi :( Will fix before landing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584847</commentid>
    <comment_count>23</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 18:08:31 -0700</bug_when>
    <thetext>Committed r111632: &lt;http://trac.webkit.org/changeset/111632&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>118988</attachid>
            <date>2011-12-13 02:54:54 -0800</date>
            <delta_ts>2011-12-13 02:54:54 -0800</delta_ts>
            <desc>test case (ref file coming as separate attachment)</desc>
            <filename>bdi-auto-dir-default.html</filename>
            <type>text/html</type>
            <size>1943</size>
            <attacher name="Aharon (Vladimir) Lanin">aharon</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRm
LTgiPg0KICAgIDx0aXRsZT5IVE1MIFRlc3Q6IEJESTogcGFyYWdyYXBoLWxldmVsIGNvbnRhaW5l
cjwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJyZWZlcmVuY2UiIGhyZWY9ImJkaS1hdXRvLWRpci1k
ZWZhdWx0LXJlZi5odG1sIj4NCiAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFoYXJvbiBM
YW5pbiIgaHJlZj0ibWFpbHRvOmFoYXJvbkBnb29nbGUuY29tIj4NCiAgICA8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkhUTUw1IGJpZGkgdGVzdCBXRyIgaHJlZj0ibWFpbHRvOmh0bWw1YmlkaUBn
b29nbGVncm91cHMuY29tIj4NCiAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly9kZXYu
dzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCN0aGUtYmRpLWVsZW1lbnQiPg0KICAgIDxt
ZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iDQogICAgICAnVGhlIGRpciBnbG9iYWwgYXR0cmli
dXRlIGRlZmF1bHRzIHRvIGF1dG8gb24gdGhpcyBlbGVtZW50IChpdCBuZXZlciBpbmhlcml0cyBm
cm9tIHRoZSBwYXJlbnQNCiAgICAgIGVsZW1lbnQgbGlrZSB3aXRoIG90aGVyIGVsZW1lbnRzKS4n
Ij4NCiAgICA8c3R5bGU+DQogICAgICBib2R5ew0KICAgICAgICBmb250LXNpemU6MmVtOw0KICAg
ICAgfQ0KICAgICAgLmJveCB7DQogICAgICAgIGJvcmRlcjogbWVkaXVtIHNvbGlkIGdyYXk7DQog
ICAgICAgIHdpZHRoOiA1MDBweDsNCiAgICAgICAgbWFyZ2luOiAyMHB4Ow0KICAgICAgfQ0KICAg
IDwvc3R5bGU+DQogIDwvaGVhZD4NCiAgPGJvZHk+DQogICAgVGhlIHR3byBib3hlcyBiZWxvdyBz
aG91bGQgbG9vayBleGFjdGx5IHRoZSBzYW1lLg0KICAgIDwhLS0gS2V5IHRvIGVudGl0aWVzIHVz
ZWQgYmVsb3c6DQogICAgICAmI3gwNUQwOyAuLi4gJiN4MDVENTsgLSBUaGUgZmlyc3Qgc2l4IEhl
YnJldyBsZXR0ZXJzIChzdHJvbmdseSBSVEwpLg0KICAgICAgJiN4MjAyRDsgLSBUaGUgTFJPIChs
ZWZ0LXRvLXJpZ2h0LW92ZXJyaWRlKSBmb3JtYXR0aW5nIGNoYXJhY3Rlci4NCiAgICAgICYjeDIw
MkM7IC0gVGhlIFBERiAocG9wIGRpcmVjdGlvbmFsIGZvcm1hdHRpbmcpIGZvcm1hdHRpbmcgY2hh
cmFjdGVyOyBjbG9zZXMgTFJPLiAtLT4NCiAgICA8ZGl2IGNsYXNzPSJib3giPg0KICAgICAgPCEt
LQ0KICAgICAgICBJbiBlYWNoIERJViBiZWxvdzoNCiAgICAgICAgLSB0aGUgZmlyc3QgQkRJLCBo
YXZpbmcgbm8gY2hhcmFjdGVycyB3aXRoIHN0cm9uZyBkaXJlY3Rpb24sIHNob3VsZCBiZSBMVFIg
YnkgZGVmYXVsdDsNCiAgICAgICAgLSB0aGUgc2Vjb25kIEJESSwgaGF2aW5nIGFuIExUUiBjaGFy
YWN0ZXIgZmlyc3QsIHNob3VsZCBiZSBMVFIgYnkgZGVmYXVsdDsNCiAgICAgICAgLSB0aGUgdGhv
cmQgQkRJLCBoYXZpbmcgYW4gUlRMIGNoYXJhY3RlciBmaXJzdCwgc2hvdWxkIGJlIFJUTCBieSBk
ZWZhdWx0Lg0KICAgICAgLS0+DQogICAgICA8ZGl2IGRpcj0ibHRyIj48YmRpPls6KV08L2JkaT4s
IDxiZGk+WystIGEgJiN4MDVEMTtdPC9iZGk+LCA8YmRpPlsxICYjeDA1RDI7IGRdPC9iZGk+Li4u
PC9kaXY+DQogICAgICA8ZGl2IGRpcj0icnRsIj48YmRpPls6KV08L2JkaT4sIDxiZGk+WystIGEg
JiN4MDVEMTtdPC9iZGk+LCA8YmRpPlsxICYjeDA1RDI7IGRdPC9iZGk+Li4uPC9kaXY+DQogICAg
PC9kaXY+DQogICAgPGRpdiBjbGFzcz0iYm94Ij4NCiAgICAgIDxkaXYgZGlyPSJsdHIiPiYjeDIw
MkQ7WzopXSwgWystIGEgJiN4MDVEMTtdLCBbZCAmI3gwNUQyOyAxXS4uLiYjeDIwMkM7PC9kaXY+
DQogICAgICA8ZGl2IGRpcj0icnRsIj4mI3gyMDJEOy4uLltkICYjeDA1RDI7IDFdICxbKy0gYSAm
I3gwNUQxO10gLFs6KV0mI3gyMDJDOzwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2JvZHk+DQo8L2h0
bWw+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>118989</attachid>
            <date>2011-12-13 02:56:32 -0800</date>
            <delta_ts>2011-12-13 02:56:32 -0800</delta_ts>
            <desc>ref file for the test case above</desc>
            <filename>bdi-auto-dir-default-ref.html</filename>
            <type>text/html</type>
            <size>1198</size>
            <attacher name="Aharon (Vladimir) Lanin">aharon</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRm
LTgiPg0KICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWhhcm9uIExhbmluIiBocmVmPSJt
YWlsdG86YWhhcm9uQGdvb2dsZS5jb20iPg0KICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SFRNTDUgYmlkaSB0ZXN0IFdHIiBocmVmPSJtYWlsdG86aHRtbDViaWRpQGdvb2dsZWdyb3Vwcy5j
b20iPg0KICAgIDxzdHlsZT4NCiAgICAgIGJvZHl7DQogICAgICAgIGZvbnQtc2l6ZToyZW07DQog
ICAgICB9DQogICAgICAuYm94IHsNCiAgICAgICAgYm9yZGVyOiBtZWRpdW0gc29saWQgZ3JheTsN
CiAgICAgICAgd2lkdGg6IDUwMHB4Ow0KICAgICAgICBtYXJnaW46IDIwcHg7DQogICAgICB9DQog
ICAgPC9zdHlsZT4NCiAgPC9oZWFkPg0KICA8Ym9keT4NCiAgICBUaGUgdHdvIGJveGVzIGJlbG93
IHNob3VsZCBsb29rIGV4YWN0bHkgdGhlIHNhbWUuDQogICAgPCEtLSBLZXkgdG8gZW50aXRpZXMg
dXNlZCBiZWxvdzoNCiAgICAgICYjeDA1RDA7IC4uLiAmI3gwNUQ1OyAtIFRoZSBmaXJzdCBzaXgg
SGVicmV3IGxldHRlcnMgKHN0cm9uZ2x5IFJUTCkuDQogICAgICAmI3gyMDJEOyAtIFRoZSBMUk8g
KGxlZnQtdG8tcmlnaHQtb3ZlcnJpZGUpIGZvcm1hdHRpbmcgY2hhcmFjdGVyLg0KICAgICAgJiN4
MjAyQzsgLSBUaGUgUERGIChwb3AgZGlyZWN0aW9uYWwgZm9ybWF0dGluZykgZm9ybWF0dGluZyBj
aGFyYWN0ZXI7IGNsb3NlcyBMUk8uIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJveCI+DQogICAgICA8
ZGl2IGRpcj0ibHRyIj4mI3gyMDJEO1s6KV0sIFsrLSBhICYjeDA1RDE7XSwgW2QgJiN4MDVEMjsg
MV0uLi4mI3gyMDJDOzwvZGl2Pg0KICAgICAgPGRpdiBkaXI9InJ0bCI+JiN4MjAyRDsuLi5bZCAm
I3gwNUQyOyAxXSAsWystIGEgJiN4MDVEMTtdICxbOildJiN4MjAyQzs8L2Rpdj4NCiAgICA8L2Rp
dj4NCiAgICA8ZGl2IGNsYXNzPSJib3giPg0KICAgICAgPGRpdiBkaXI9Imx0ciI+JiN4MjAyRDtb
OildLCBbKy0gYSAmI3gwNUQxO10sIFtkICYjeDA1RDI7IDFdLi4uJiN4MjAyQzs8L2Rpdj4NCiAg
ICAgIDxkaXYgZGlyPSJydGwiPiYjeDIwMkQ7Li4uW2QgJiN4MDVEMjsgMV0gLFsrLSBhICYjeDA1
RDE7XSAsWzopXSYjeDIwMkM7PC9kaXY+DQogICAgPC9kaXY+DQogIDwvYm9keT4NCjwvaHRtbD4N
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132928</attachid>
            <date>2012-03-20 16:59:54 -0700</date>
            <delta_ts>2012-03-20 17:02:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68773-20120320165953.patch</filename>
            <type>text/plain</type>
            <size>18822</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEJESSBlbGVtZW50IHNob3VsZCBo
YXZlIGRpcj1hdXRvIGJ5IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVHJlYXQgYmRpIGVsZW1lbnRzIHdpdGhvdXQgZGlyIGNvbnRlbnQgYXR0
cmlidXRlIGFzIGlmIHRoZXkgaGF2ZSBkaXI9YXV0byBwZXIgc3BlYzoKKyAgICAgICAgaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGV4
dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYmRpLWVsZW1lbnQKKworICAgICAgICBUZXN0czog
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZh
dWx0LXRvLWF1dG8uaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JM
aXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxCRElFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAo
SFRNTEJESUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJESUVsZW1lbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQkRJRWxlbWVudDo6SFRNTEJESUVsZW1lbnQpOiBT
ZXRzIHNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSB0byB0cnVlLgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxlbWVudEFmZmVjdHNE
aXJlY3Rpb25hbGl0eSk6IEFkZGVkLiBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBlbGVtZW50IGlz
IGJkaSBvcgorICAgICAgICBoYXMgZGlyIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6aGFzRGlyZWN0aW9uQXV0byk6IEFkZGVkLiBDaGVja3MgaWYgdGhlIHNwZWNp
ZmllZCBlbGVtZW50IHNob3VsZCBiZQorICAgICAgICB0cmVhdGVkIGFzIGlmIGl0IGhhcyBkaXI9
YXV0byAoYmRpIG9yIGVsZW1lbnQgd2l0aCBkaXI9YXV0bykuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6ZGlyZWN0aW9uYWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRl
ckNoaWxkQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6
YWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKToKKyAgICAg
ICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgIChIVE1MRWxlbWVudCk6CisKIDIwMTIt
MDMtMjAgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIHZpc3VhbCB3
b3JkIG1vdmVtZW50OiBjcmFzaGVzIG9uIENTUyBnZW5lcmF0ZWQgY29udGVudC4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjIxNiw2ICsyMjE2
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNl
RWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJESUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNp
b24gMTExNDIzKQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpA
QCAtNzI2LDYgKzcyNiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwIFwKICAgICBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1M
QXJlYUVsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxCRElFbGVtZW50LmNwcCBcCiAgICAgaHRt
bC9IVE1MQlJFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MQmFzZUVsZW1lbnQuY3BwIFwKICAg
ICBodG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJl
dmlzaW9uIDExMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBj
b3B5KQpAQCAtNTMyNyw2ICs1MzI3LDcgQEAKICAgICAgICAgICAgICdodG1sL0hUTUxBcmVhRWxl
bWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxBdWRpb0VsZW1lbnQuY3BwJywKICAgICAg
ICAgICAgICdodG1sL0hUTUxBdWRpb0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1M
QkRJRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxCUkVsZW1lbnQuY3BwJywKICAg
ICAgICAgICAgICdodG1sL0hUTUxCUkVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
QmFzZUVsZW1lbnQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNTc2NzQsNiArNTc2
NzQsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5caHRtbFxIVE1MQkRJRWxlbWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxCb2R5RWxlbWVudC5jcHAiCiAJCQkJPgogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0zNTg0LDYgKzM1ODQsNyBAQAogCQk5OEVCMUY5NTEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1w
bGVtZW50ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMEZCMTkxMTQwREI1Nzkw
MDIyNTg4RiAvKiBIVFRQVmFsaWRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QjBGQjE4RjE0MERCNTc5MDAyMjU4OEYgLyogSFRUUFZhbGlk
YXRpb24uY3BwICovOyB9OwogCQk5QjBGQjE5MjE0MERCNTc5MDAyMjU4OEYgLyogSFRUUFZhbGlk
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MEZCMTkwMTQwREI1NzkwMDIyNTg4RiAvKiBIVFRQVmFsaWRhdGlvbi5oICovOyB9OworCQk5QjI0
REU4RTE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMjRERThDMTUxOTRCOTUwMEM1OUMyNyAv
KiBIVE1MQkRJRWxlbWVudC5oICovOyB9OwogCQk5QjJCN0FDMTE1MDk4NTBBMDA4OTMyQ0MgLyog
TWljcm9EYXRhSXRlbVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMkY3Q0Y3MTQ1NjIxMjAwMDdGOEI1MCAvKiBNaWNyb0RhdGFJdGVtVmFs
dWUuY3BwICovOyB9OwogCQk5QjJEOEE3OTE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5
OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTlCMzJDREE5MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJl
ZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovOyB9OwpA
QCAtMTA1NTksNiArMTA1NjAsNyBAQAogCQk5OEVCMUY5NDEzMTNGRTA1MDBEMEUxRUEgLyogTm90
SW1wbGVtZW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90SW1wbGVt
ZW50ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwRkIxOEYxNDBEQjU3OTAw
MjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhUVFBWYWxpZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUIwRkIxOTAxNDBEQjU3OTAwMjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUVFBWYWxpZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTlCMjRERThDMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQkRJRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyog
VW5kb1N0ZXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5kb1N0ZXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIyRjdDRjcxNDU2MjEyMDAwN0Y4QjUwIC8q
IE1pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNaWNyb0RhdGFJdGVtVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjJGN0NGODE0NTYyMTIwMDA3RjhCNTAgLyogTWljcm9EYXRhSXRlbVZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1pY3JvRGF0YUl0ZW1WYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY3NjksNiArMTY3NzEsNyBAQAogCQkJCUE4REYzRkNC
MDk3RkEwRkIwMDUyOTgxQiAvKiBIVE1MQmFzZUZvbnRFbGVtZW50LmNwcCAqLywKIAkJCQlBOERG
M0ZDQTA5N0ZBMEZCMDA1Mjk4MUIgLyogSFRNTEJhc2VGb250RWxlbWVudC5oICovLAogCQkJCTFB
RTJBOUYxMEExQ0RBNTcwMEI0MkIyNSAvKiBIVE1MQmFzZUZvbnRFbGVtZW50LmlkbCAqLywKKwkJ
CQk5QjI0REU4QzE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLywKIAkJCQlB
ODcxREUxRDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEJvZHlFbGVtZW50LmNwcCAqLywKIAkJCQlB
ODcxREUyMDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEJvZHlFbGVtZW50LmggKi8sCiAJCQkJMUFF
MkE5RjIwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCb2R5RWxlbWVudC5pZGwgKi8sCkBAIC0yNDYw
Nyw2ICsyNDYxMCw3IEBACiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0UzMkI5QzE1MTdDMEIyMDBGNTQyRUMgLyogUmVuZGVy
TXVsdGlDb2x1bW5TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTkzRjQ1MTUxN0M1NjcwMDhD
Q0Y3NCAvKiBSZW5kZXJSZWdpb25TZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTlCMjRERThFMTUx
OTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxMTE0MjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNjcsNyArMTM2Nyw3IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2FuU2hhcmVTdHls
ZVdpdGgKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKLSAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShkaXJBdHRyKSwgImF1dG8iKSB8fCBl
cXVhbElnbm9yaW5nQ2FzZShtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoZGlyQXR0ciksICJh
dXRvIikpCisgICAgaWYgKChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgdG9IVE1MRWxlbWVu
dChlbGVtZW50KS0+aGFzRGlyZWN0aW9uQXV0bygpKSB8fCAobV9lbGVtZW50LT5pc0hUTUxFbGVt
ZW50KCkgJiYgdG9IVE1MRWxlbWVudChtX2VsZW1lbnQpLT5oYXNEaXJlY3Rpb25BdXRvKCkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBt
X2VsZW1lbnQtPmdldEF0dHJpYnV0ZShjbGFzc0F0dHIpICE9IGVsZW1lbnQtPmdldEF0dHJpYnV0
ZShjbGFzc0F0dHIpKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJESUVsZW1lbnQuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJESUVsZW1lbnQuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBIVE1MQkRJRWxlbWVudF9oCisj
ZGVmaW5lIEhUTUxCRElFbGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTEJESUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxCRElFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQkRJRWxlbWVudChuYW1lLCBkb2N1
bWVudCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBIVE1MQkRJRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgICAgIDogSFRNTEVsZW1l
bnQobmFtZSwgZG9jdW1lbnQpCisgICAgeworICAgICAgICAvLyBGSVhNRTogTWF5YmUgd2Ugc2hv
dWxkIHJlbmFtZSBzZXRTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUgdG8gcmVmbGVj
dCB0aGUgZmFjdCBiZGkgYWxzbyB1c2VzIHRoaXMgZmxhZz8KKyAgICAgICAgc2V0U2VsZk9yQW5j
ZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKHRydWUpOworICAgIH0KK307CisKK30gLy8gbmFtZXNw
YWNlCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlz
aW9uIDExMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03OTUsNiArNzk1LDExIEBAIEhUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1l
bnQ6OnZpcnR1YWxGb3IKICAgICByZXR1cm4gZmluZEZvcm1BbmNlc3RvcigpOwogfQogCitzdGF0
aWMgaW5saW5lIGJvb2wgZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25hbGl0eShjb25zdCBFbGVtZW50
KiBlbGVtZW50KQoreworICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKGJkaVRhZykgfHwg
ZWxlbWVudC0+aGFzQXR0cmlidXRlKGRpckF0dHIpOworfQorCiBzdGF0aWMgdm9pZCBzZXRIYXNE
aXJBdXRvRmxhZ1JlY3Vyc2l2ZWx5KE5vZGUqIGZpcnN0Tm9kZSwgYm9vbCBmbGFnLCBOb2RlKiBs
YXN0Tm9kZSA9IDApCiB7CiAgICAgZmlyc3ROb2RlLT5zZXRTZWxmT3JBbmNlc3Rvckhhc0RpckF1
dG9BdHRyaWJ1dGUoZmxhZyk7CkBAIC04MDUsNyArODEwLDcgQEAgc3RhdGljIHZvaWQgc2V0SGFz
RGlyQXV0b0ZsYWdSZWN1cnNpdmVseQogICAgICAgICBpZiAobm9kZS0+c2VsZk9yQW5jZXN0b3JI
YXNEaXJBdXRvQXR0cmlidXRlKCkgPT0gZmxhZykKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzQXR0
cmlidXRlKGRpckF0dHIpKSB7CisgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYg
ZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25hbGl0eSh0b0hUTUxFbGVtZW50KG5vZGUpKSkgewogICAg
ICAgICAgICAgaWYgKG5vZGUgPT0gbGFzdE5vZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcoZmlyc3ROb2RlKTsK
QEAgLTgyNCw5ICs4MjksMTQgQEAgdm9pZCBIVE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJv
b2wgYwogICAgIGFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkcmVuQ2hhbmdl
ZChiZWZvcmVDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7CiB9CiAKK2Jvb2wgSFRNTEVsZW1lbnQ6
Omhhc0RpcmVjdGlvbkF1dG8oKSBjb25zdAoreworICAgIHJldHVybiBoYXNUYWdOYW1lKGJkaVRh
ZykgfHwgZXF1YWxJZ25vcmluZ0Nhc2UoZmFzdEdldEF0dHJpYnV0ZShkaXJBdHRyKSwgImF1dG8i
KTsKK30KKwogVGV4dERpcmVjdGlvbiBIVE1MRWxlbWVudDo6ZGlyZWN0aW9uYWxpdHlJZmhhc0Rp
ckF1dG9BdHRyaWJ1dGUoYm9vbCYgaXNBdXRvKSBjb25zdAogewotICAgIGlmICghKHNlbGZPckFu
Y2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSgpICYmIGVxdWFsSWdub3JpbmdDYXNlKGdldEF0dHJp
YnV0ZShkaXJBdHRyKSwgImF1dG8iKSkpIHsKKyAgICBpZiAoIShzZWxmT3JBbmNlc3Rvckhhc0Rp
ckF1dG9BdHRyaWJ1dGUoKSAmJiBoYXNEaXJlY3Rpb25BdXRvKCkpKSB7CiAgICAgICAgIGlzQXV0
byA9IGZhbHNlOwogICAgICAgICByZXR1cm4gTFRSOwogICAgIH0KQEAgLTg5OSw3ICs5MDksNyBA
QCB2b2lkIEhUTUxFbGVtZW50OjphZGp1c3REaXJlY3Rpb25hbGl0eUlmCiAgICAgaWYgKHJlbmRl
cmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5kaXJl
Y3Rpb24oKSAhPSB0ZXh0RGlyZWN0aW9uKSB7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnRUb0Fk
anVzdCA9IHRoaXM7CiAgICAgICAgIGZvciAoOyBlbGVtZW50VG9BZGp1c3Q7IGVsZW1lbnRUb0Fk
anVzdCA9IGVsZW1lbnRUb0FkanVzdC0+cGFyZW50RWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBp
ZiAoZWxlbWVudFRvQWRqdXN0LT5oYXNBdHRyaWJ1dGUoZGlyQXR0cikpIHsKKyAgICAgICAgICAg
IGlmIChlbGVtZW50QWZmZWN0c0RpcmVjdGlvbmFsaXR5KGVsZW1lbnRUb0FkanVzdCkpIHsKICAg
ICAgICAgICAgICAgICBlbGVtZW50VG9BZGp1c3QtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC05MjEsNyArOTMxLDcgQEAg
dm9pZCBIVE1MRWxlbWVudDo6YWRqdXN0RGlyZWN0aW9uYWxpdHlJZgogICAgIGlmICgoIWRvY3Vt
ZW50KCkgfHwgZG9jdW1lbnQoKS0+cmVuZGVyZXIoKSkgJiYgY2hpbGRDb3VudERlbHRhIDwgMCkg
ewogICAgICAgICBOb2RlKiBub2RlID0gYmVmb3JlQ2hhbmdlID8gYmVmb3JlQ2hhbmdlLT50cmF2
ZXJzZU5leHRTaWJsaW5nKCkgOiAwOwogICAgICAgICBmb3IgKGludCBjb3VudGVyID0gMDsgbm9k
ZSAmJiBjb3VudGVyIDwgY2hpbGRDb3VudERlbHRhOyBjb3VudGVyKyssIG5vZGUgPSBub2RlLT50
cmF2ZXJzZU5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnRO
b2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNBdHRyaWJ1dGUoZGlyQXR0cikpCisgICAgICAg
ICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIGVsZW1lbnRBZmZlY3RzRGlyZWN0aW9u
YWxpdHkodG9IVE1MRWxlbWVudChub2RlKSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgICAgIHNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZlbHkobm9kZSwgZmFsc2UpOwpA
QCAtOTMyLDEzICs5NDIsMTMgQEAgdm9pZCBIVE1MRWxlbWVudDo6YWRqdXN0RGlyZWN0aW9uYWxp
dHlJZgogICAgICAgICByZXR1cm47CiAKICAgICBOb2RlKiBvbGRNYXJrZWROb2RlID0gYmVmb3Jl
Q2hhbmdlID8gYmVmb3JlQ2hhbmdlLT50cmF2ZXJzZU5leHRTaWJsaW5nKCkgOiAwOwotICAgIHdo
aWxlIChvbGRNYXJrZWROb2RlICYmIG9sZE1hcmtlZE5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiB0
b0hUTUxFbGVtZW50KG9sZE1hcmtlZE5vZGUpLT5oYXNBdHRyaWJ1dGUoZGlyQXR0cikpCisgICAg
d2hpbGUgKG9sZE1hcmtlZE5vZGUgJiYgb2xkTWFya2VkTm9kZS0+aXNIVE1MRWxlbWVudCgpICYm
IGVsZW1lbnRBZmZlY3RzRGlyZWN0aW9uYWxpdHkodG9IVE1MRWxlbWVudChvbGRNYXJrZWROb2Rl
KSkpCiAgICAgICAgIG9sZE1hcmtlZE5vZGUgPSBvbGRNYXJrZWROb2RlLT50cmF2ZXJzZU5leHRT
aWJsaW5nKHRoaXMpOwogICAgIGlmIChvbGRNYXJrZWROb2RlKQogICAgICAgICBzZXRIYXNEaXJB
dXRvRmxhZ1JlY3Vyc2l2ZWx5KG9sZE1hcmtlZE5vZGUsIGZhbHNlKTsKIAogICAgIGZvciAoRWxl
bWVudCogZWxlbWVudFRvQWRqdXN0ID0gdGhpczsgZWxlbWVudFRvQWRqdXN0OyBlbGVtZW50VG9B
ZGp1c3QgPSBlbGVtZW50VG9BZGp1c3QtPnBhcmVudEVsZW1lbnQoKSkgewotICAgICAgICBpZiAo
ZWxlbWVudFRvQWRqdXN0LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVudFRvQWRqdXN0LT5oYXNB
dHRyaWJ1dGUoZGlyQXR0cikpIHsKKyAgICAgICAgaWYgKGVsZW1lbnRUb0FkanVzdC0+aXNIVE1M
RWxlbWVudCgpICYmIGVsZW1lbnRBZmZlY3RzRGlyZWN0aW9uYWxpdHkodG9IVE1MRWxlbWVudChl
bGVtZW50VG9BZGp1c3QpKSkgewogICAgICAgICAgICAgdG9IVE1MRWxlbWVudChlbGVtZW50VG9B
ZGp1c3QpLT5jYWxjdWxhdGVBbmRBZGp1c3REaXJlY3Rpb25hbGl0eSgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZp
c2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTkwLDYgKzkwLDcgQEAgcHVibGljOgogCiAgICAgSFRNTEZvcm1FbGVtZW50
KiBmaW5kRm9ybUFuY2VzdG9yKCkgY29uc3Q7CiAKKyAgICBib29sIGhhc0RpcmVjdGlvbkF1dG8o
KSBjb25zdDsKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFsaXR5SWZoYXNEaXJBdXRvQXR0
cmlidXRlKGJvb2wmIGlzQXV0bykgY29uc3Q7CiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTExNDY5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMjAgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQkRJIGVsZW1lbnQgc2hvdWxkIGhhdmUgZGlyPWF1dG8g
YnkgZGVmYXVsdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njg3NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYSB0ZXN0IHdyaXR0ZW4gYnkgQWhhcm9uIExhbmluLgorCisgICAgICAgICogZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0
LXRvLWF1dG8uaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMjAgIFhpYW9tZWkgSmkgIDx4amlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIHZpc3VhbCB3b3JkIG1vdmVtZW50OiBjcmFzaGVzIG9uIENT
UyBnZW5lcmF0ZWQgY29udGVudC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5h
dGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRvLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRv
LWF1dG8tZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4
dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRvLWV4cGVjdGVkLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkFoYXJvbiBMYW5pbiIgaHJlZj0ibWFpbHRvOmFoYXJvbkBnb29nbGUuY29tIj4KKyAg
ICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkhUTUw1IGJpZGkgdGVzdCBXRyIgaHJlZj0ibWFp
bHRvOmh0bWw1YmlkaUBnb29nbGVncm91cHMuY29tIj4KKyAgICA8c3R5bGU+CisgICAgICBib2R5
eworICAgICAgICBmb250LXNpemU6MmVtOworICAgICAgfQorICAgICAgLmJveCB7CisgICAgICAg
IGJvcmRlcjogbWVkaXVtIHNvbGlkIGdyYXk7CisgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAg
ICAgbWFyZ2luOiAyMHB4OworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJv
ZHk+CisgICAgVGhlIHR3byBib3hlcyBiZWxvdyBzaG91bGQgbG9vayBleGFjdGx5IHRoZSBzYW1l
LgorICAgIDwhLS0gS2V5IHRvIGVudGl0aWVzIHVzZWQgYmVsb3c6CisgICAgICAmI3gwNUQwOyAu
Li4gJiN4MDVENTsgLSBUaGUgZmlyc3Qgc2l4IEhlYnJldyBsZXR0ZXJzIChzdHJvbmdseSBSVEwp
LgorICAgICAgJiN4MjAyRDsgLSBUaGUgTFJPIChsZWZ0LXRvLXJpZ2h0LW92ZXJyaWRlKSBmb3Jt
YXR0aW5nIGNoYXJhY3Rlci4KKyAgICAgICYjeDIwMkM7IC0gVGhlIFBERiAocG9wIGRpcmVjdGlv
bmFsIGZvcm1hdHRpbmcpIGZvcm1hdHRpbmcgY2hhcmFjdGVyOyBjbG9zZXMgTFJPLiAtLT4KKyAg
ICA8ZGl2IGNsYXNzPSJib3giPgorICAgICAgPGRpdiBkaXI9Imx0ciI+JiN4MjAyRDtbOildLCBb
Ky0gYSAmI3gwNUQxO10sIFtkICYjeDA1RDI7IDFdLi4uJiN4MjAyQzs8L2Rpdj4KKyAgICAgIDxk
aXYgZGlyPSJydGwiPiYjeDIwMkQ7Li4uW2QgJiN4MDVEMjsgMV0gLFsrLSBhICYjeDA1RDE7XSAs
WzopXSYjeDIwMkM7PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iYm94Ij4KKyAg
ICAgIDxkaXYgZGlyPSJsdHIiPiYjeDIwMkQ7WzopXSwgWystIGEgJiN4MDVEMTtdLCBbZCAmI3gw
NUQyOyAxXS4uLiYjeDIwMkM7PC9kaXY+CisgICAgICA8ZGl2IGRpcj0icnRsIj4mI3gyMDJEOy4u
LltkICYjeDA1RDI7IDFdICxbKy0gYSAmI3gwNUQxO10gLFs6KV0mI3gyMDJDOzwvZGl2PgorICAg
IDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQv
aW50ZXJuYXRpb25hbC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1h
dXRvLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRp
b25hbC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkhUTUwgVGVzdDogQkRJOiBwYXJhZ3JhcGgtbGV2ZWwg
Y29udGFpbmVyPC90aXRsZT4KKyAgICA8bGluayByZWw9InJlZmVyZW5jZSIgaHJlZj0iYmRpLWF1
dG8tZGlyLWRlZmF1bHQtcmVmLmh0bWwiPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
QWhhcm9uIExhbmluIiBocmVmPSJtYWlsdG86YWhhcm9uQGdvb2dsZS5jb20iPgorICAgIDxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iSFRNTDUgYmlkaSB0ZXN0IFdHIiBocmVmPSJtYWlsdG86aHRt
bDViaWRpQGdvb2dsZWdyb3Vwcy5jb20iPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1iZGktZWxlbWVudCI+
CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSIKKyAgICAgICdUaGUgZGlyIGdsb2Jh
bCBhdHRyaWJ1dGUgZGVmYXVsdHMgdG8gYXV0byBvbiB0aGlzIGVsZW1lbnQgKGl0IG5ldmVyIGlu
aGVyaXRzIGZyb20gdGhlIHBhcmVudAorICAgICAgZWxlbWVudCBsaWtlIHdpdGggb3RoZXIgZWxl
bWVudHMpLiciPgorICAgIDxzdHlsZT4KKyAgICAgIGJvZHl7CisgICAgICAgIGZvbnQtc2l6ZToy
ZW07CisgICAgICB9CisgICAgICAuYm94IHsKKyAgICAgICAgYm9yZGVyOiBtZWRpdW0gc29saWQg
Z3JheTsKKyAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICBtYXJnaW46IDIwcHg7CisgICAg
ICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICBUaGUgdHdvIGJveGVz
IGJlbG93IHNob3VsZCBsb29rIGV4YWN0bHkgdGhlIHNhbWUuCisgICAgPCEtLSBLZXkgdG8gZW50
aXRpZXMgdXNlZCBiZWxvdzoKKyAgICAgICYjeDA1RDA7IC4uLiAmI3gwNUQ1OyAtIFRoZSBmaXJz
dCBzaXggSGVicmV3IGxldHRlcnMgKHN0cm9uZ2x5IFJUTCkuCisgICAgICAmI3gyMDJEOyAtIFRo
ZSBMUk8gKGxlZnQtdG8tcmlnaHQtb3ZlcnJpZGUpIGZvcm1hdHRpbmcgY2hhcmFjdGVyLgorICAg
ICAgJiN4MjAyQzsgLSBUaGUgUERGIChwb3AgZGlyZWN0aW9uYWwgZm9ybWF0dGluZykgZm9ybWF0
dGluZyBjaGFyYWN0ZXI7IGNsb3NlcyBMUk8uIC0tPgorICAgIDxkaXYgY2xhc3M9ImJveCI+Cisg
ICAgICA8IS0tCisgICAgICAgIEluIGVhY2ggRElWIGJlbG93OgorICAgICAgICAtIHRoZSBmaXJz
dCBCREksIGhhdmluZyBubyBjaGFyYWN0ZXJzIHdpdGggc3Ryb25nIGRpcmVjdGlvbiwgc2hvdWxk
IGJlIExUUiBieSBkZWZhdWx0OworICAgICAgICAtIHRoZSBzZWNvbmQgQkRJLCBoYXZpbmcgYW4g
TFRSIGNoYXJhY3RlciBmaXJzdCwgc2hvdWxkIGJlIExUUiBieSBkZWZhdWx0OworICAgICAgICAt
IHRoZSB0aGlyZCBCREksIGhhdmluZyBhbiBSVEwgY2hhcmFjdGVyIGZpcnN0LCBzaG91bGQgYmUg
UlRMIGJ5IGRlZmF1bHQuCisgICAgICAtLT4KKyAgICAgIDxkaXYgZGlyPSJsdHIiPjxiZGk+Wzop
XTwvYmRpPiwgPGJkaT5bKy0gYSAmI3gwNUQxO108L2JkaT4sIDxiZGk+WzEgJiN4MDVEMjsgZF08
L2JkaT4uLi48L2Rpdj4KKyAgICAgIDxkaXYgZGlyPSJydGwiPjxiZGk+WzopXTwvYmRpPiwgPGJk
aT5bKy0gYSAmI3gwNUQxO108L2JkaT4sIDxiZGk+WzEgJiN4MDVEMjsgZF08L2JkaT4uLi48L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJib3giPgorICAgICAgPGRpdiBkaXI9Imx0
ciI+JiN4MjAyRDtbOildLCBbKy0gYSAmI3gwNUQxO10sIFtkICYjeDA1RDI7IDFdLi4uJiN4MjAy
Qzs8L2Rpdj4KKyAgICAgIDxkaXYgZGlyPSJydGwiPiYjeDIwMkQ7Li4uW2QgJiN4MDVEMjsgMV0g
LFsrLSBhICYjeDA1RDE7XSAsWzopXSYjeDIwMkM7PC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132930</attachid>
            <date>2012-03-20 17:02:27 -0700</date>
            <delta_ts>2012-03-20 17:12:02 -0700</delta_ts>
            <desc>Fixed the file ordering in xcodeproj</desc>
            <filename>bug-68773-20120320170226.patch</filename>
            <type>text/plain</type>
            <size>18954</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEJESSBlbGVtZW50IHNob3VsZCBo
YXZlIGRpcj1hdXRvIGJ5IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVHJlYXQgYmRpIGVsZW1lbnRzIHdpdGhvdXQgZGlyIGNvbnRlbnQgYXR0
cmlidXRlIGFzIGlmIHRoZXkgaGF2ZSBkaXI9YXV0byBwZXIgc3BlYzoKKyAgICAgICAgaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGV4
dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYmRpLWVsZW1lbnQKKworICAgICAgICBUZXN0czog
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZh
dWx0LXRvLWF1dG8uaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JM
aXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxCRElFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAo
SFRNTEJESUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJESUVsZW1lbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQkRJRWxlbWVudDo6SFRNTEJESUVsZW1lbnQpOiBT
ZXRzIHNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSB0byB0cnVlLgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxlbWVudEFmZmVjdHNE
aXJlY3Rpb25hbGl0eSk6IEFkZGVkLiBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBlbGVtZW50IGlz
IGJkaSBvcgorICAgICAgICBoYXMgZGlyIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6aGFzRGlyZWN0aW9uQXV0byk6IEFkZGVkLiBDaGVja3MgaWYgdGhlIHNwZWNp
ZmllZCBlbGVtZW50IHNob3VsZCBiZQorICAgICAgICB0cmVhdGVkIGFzIGlmIGl0IGhhcyBkaXI9
YXV0byAoYmRpIG9yIGVsZW1lbnQgd2l0aCBkaXI9YXV0bykuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6ZGlyZWN0aW9uYWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRl
ckNoaWxkQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6
YWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKToKKyAgICAg
ICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgIChIVE1MRWxlbWVudCk6CisKIDIwMTIt
MDMtMjAgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIHZpc3VhbCB3
b3JkIG1vdmVtZW50OiBjcmFzaGVzIG9uIENTUyBnZW5lcmF0ZWQgY29udGVudC4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjIxNiw2ICsyMjE2
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNl
RWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJESUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNp
b24gMTExNDIzKQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpA
QCAtNzI2LDYgKzcyNiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwIFwKICAgICBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1M
QXJlYUVsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxCRElFbGVtZW50LmNwcCBcCiAgICAgaHRt
bC9IVE1MQlJFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MQmFzZUVsZW1lbnQuY3BwIFwKICAg
ICBodG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJl
dmlzaW9uIDExMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBj
b3B5KQpAQCAtNTMyNyw2ICs1MzI3LDcgQEAKICAgICAgICAgICAgICdodG1sL0hUTUxBcmVhRWxl
bWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxBdWRpb0VsZW1lbnQuY3BwJywKICAgICAg
ICAgICAgICdodG1sL0hUTUxBdWRpb0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1M
QkRJRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxCUkVsZW1lbnQuY3BwJywKICAg
ICAgICAgICAgICdodG1sL0hUTUxCUkVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
QmFzZUVsZW1lbnQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNTc2NzQsNiArNTc2
NzQsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5caHRtbFxIVE1MQkRJRWxlbWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxCb2R5RWxlbWVudC5jcHAiCiAJCQkJPgogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0zNTg0LDYgKzM1ODQsNyBAQAogCQk5OEVCMUY5NTEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1w
bGVtZW50ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMEZCMTkxMTQwREI1Nzkw
MDIyNTg4RiAvKiBIVFRQVmFsaWRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QjBGQjE4RjE0MERCNTc5MDAyMjU4OEYgLyogSFRUUFZhbGlk
YXRpb24uY3BwICovOyB9OwogCQk5QjBGQjE5MjE0MERCNTc5MDAyMjU4OEYgLyogSFRUUFZhbGlk
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MEZCMTkwMTQwREI1NzkwMDIyNTg4RiAvKiBIVFRQVmFsaWRhdGlvbi5oICovOyB9OworCQk5QjI0
REU4RTE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMjRERThDMTUxOTRCOTUwMEM1OUMyNyAv
KiBIVE1MQkRJRWxlbWVudC5oICovOyB9OwogCQk5QjJCN0FDMTE1MDk4NTBBMDA4OTMyQ0MgLyog
TWljcm9EYXRhSXRlbVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMkY3Q0Y3MTQ1NjIxMjAwMDdGOEI1MCAvKiBNaWNyb0RhdGFJdGVtVmFs
dWUuY3BwICovOyB9OwogCQk5QjJEOEE3OTE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5
OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTlCMzJDREE5MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJl
ZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovOyB9OwpA
QCAtMTA1NTksNiArMTA1NjAsNyBAQAogCQk5OEVCMUY5NDEzMTNGRTA1MDBEMEUxRUEgLyogTm90
SW1wbGVtZW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90SW1wbGVt
ZW50ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwRkIxOEYxNDBEQjU3OTAw
MjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhUVFBWYWxpZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUIwRkIxOTAxNDBEQjU3OTAwMjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUVFBWYWxpZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTlCMjRERThDMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQkRJRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyog
VW5kb1N0ZXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5kb1N0ZXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIyRjdDRjcxNDU2MjEyMDAwN0Y4QjUwIC8q
IE1pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNaWNyb0RhdGFJdGVtVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjJGN0NGODE0NTYyMTIwMDA3RjhCNTAgLyogTWljcm9EYXRhSXRlbVZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1pY3JvRGF0YUl0ZW1WYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY3NjksNiArMTY3NzEsNyBAQAogCQkJCUE4REYzRkNC
MDk3RkEwRkIwMDUyOTgxQiAvKiBIVE1MQmFzZUZvbnRFbGVtZW50LmNwcCAqLywKIAkJCQlBOERG
M0ZDQTA5N0ZBMEZCMDA1Mjk4MUIgLyogSFRNTEJhc2VGb250RWxlbWVudC5oICovLAogCQkJCTFB
RTJBOUYxMEExQ0RBNTcwMEI0MkIyNSAvKiBIVE1MQmFzZUZvbnRFbGVtZW50LmlkbCAqLywKKwkJ
CQk5QjI0REU4QzE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLywKIAkJCQlB
ODcxREUxRDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEJvZHlFbGVtZW50LmNwcCAqLywKIAkJCQlB
ODcxREUyMDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEJvZHlFbGVtZW50LmggKi8sCiAJCQkJMUFF
MkE5RjIwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCb2R5RWxlbWVudC5pZGwgKi8sCkBAIC0yMjY4
Nyw2ICsyMjY5MCw3IEBACiAJCQkJRTQ0NjEzQTIwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRp
b0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQzFGMEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MQmFzZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4REYzRkQyMDk3RkEwRkMw
MDUyOTgxQiAvKiBIVE1MQmFzZUZvbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjI0
REU4RTE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4NzFERTJDMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4Q0ZGN0FBMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQlJFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEMjA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEJ1dHRv
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzY3LDcgKzEzNjcsNyBAQCBi
b29sIENTU1N0eWxlU2VsZWN0b3I6OmNhblNoYXJlU3R5bGVXaXRoCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICNlbmRpZgogCi0gICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGVsZW1lbnQtPmZhc3RH
ZXRBdHRyaWJ1dGUoZGlyQXR0ciksICJhdXRvIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobV9lbGVt
ZW50LT5mYXN0R2V0QXR0cmlidXRlKGRpckF0dHIpLCAiYXV0byIpKQorICAgIGlmICgoZWxlbWVu
dC0+aXNIVE1MRWxlbWVudCgpICYmIHRvSFRNTEVsZW1lbnQoZWxlbWVudCktPmhhc0RpcmVjdGlv
bkF1dG8oKSkgfHwgKG1fZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpICYmIHRvSFRNTEVsZW1lbnQo
bV9lbGVtZW50KS0+aGFzRGlyZWN0aW9uQXV0bygpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgaWYgKGVsZW1lbnQtPmhhc0NsYXNzKCkgJiYgbV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUo
Y2xhc3NBdHRyKSAhPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJESUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCRElFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCRElFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgor
ICovCisKKyNpZm5kZWYgSFRNTEJESUVsZW1lbnRfaAorI2RlZmluZSBIVE1MQkRJRWxlbWVudF9o
CisKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEhUTUxCRElFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIVE1MQkRJRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSFRNTEJESUVsZW1lbnQobmFtZSwgZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgSFRNTEJESUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQorICAgICAgICA6IEhUTUxFbGVtZW50KG5hbWUsIGRvY3VtZW50KQorICAg
IHsKKyAgICAgICAgLy8gRklYTUU6IFJlbmFtZSBzZXRTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9B
dHRyaWJ1dGUgdG8gcmVmbGVjdCB0aGUgZmFjdCBiZGkgYWxzbyB1c2VzIHRoaXMgZmxhZy4KKyAg
ICAgICAgc2V0U2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKHRydWUpOworICAgIH0K
K307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAJKHJldmlzaW9uIDExMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTUsNiArNzk1LDExIEBAIEhUTUxGb3Jt
RWxlbWVudCogSFRNTEVsZW1lbnQ6OnZpcnR1YWxGb3IKICAgICByZXR1cm4gZmluZEZvcm1BbmNl
c3RvcigpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25h
bGl0eShjb25zdCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiBlbGVtZW50LT5oYXNU
YWdOYW1lKGJkaVRhZykgfHwgZWxlbWVudC0+aGFzQXR0cmlidXRlKGRpckF0dHIpOworfQorCiBz
dGF0aWMgdm9pZCBzZXRIYXNEaXJBdXRvRmxhZ1JlY3Vyc2l2ZWx5KE5vZGUqIGZpcnN0Tm9kZSwg
Ym9vbCBmbGFnLCBOb2RlKiBsYXN0Tm9kZSA9IDApCiB7CiAgICAgZmlyc3ROb2RlLT5zZXRTZWxm
T3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUoZmxhZyk7CkBAIC04MDUsNyArODEwLDcgQEAg
c3RhdGljIHZvaWQgc2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNpdmVseQogICAgICAgICBpZiAobm9k
ZS0+c2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKCkgPT0gZmxhZykKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHRvRWxl
bWVudChub2RlKS0+aGFzQXR0cmlidXRlKGRpckF0dHIpKSB7CisgICAgICAgIGlmIChub2RlLT5p
c0hUTUxFbGVtZW50KCkgJiYgZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25hbGl0eSh0b0hUTUxFbGVt
ZW50KG5vZGUpKSkgewogICAgICAgICAgICAgaWYgKG5vZGUgPT0gbGFzdE5vZGUpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dFNp
YmxpbmcoZmlyc3ROb2RlKTsKQEAgLTgyNCw5ICs4MjksMTQgQEAgdm9pZCBIVE1MRWxlbWVudDo6
Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgYwogICAgIGFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRB
ZnRlckNoaWxkcmVuQ2hhbmdlZChiZWZvcmVDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7CiB9CiAK
K2Jvb2wgSFRNTEVsZW1lbnQ6Omhhc0RpcmVjdGlvbkF1dG8oKSBjb25zdAoreworICAgIHJldHVy
biBoYXNUYWdOYW1lKGJkaVRhZykgfHwgZXF1YWxJZ25vcmluZ0Nhc2UoZmFzdEdldEF0dHJpYnV0
ZShkaXJBdHRyKSwgImF1dG8iKTsKK30KKwogVGV4dERpcmVjdGlvbiBIVE1MRWxlbWVudDo6ZGly
ZWN0aW9uYWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUoYm9vbCYgaXNBdXRvKSBjb25zdAogewot
ICAgIGlmICghKHNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSgpICYmIGVxdWFsSWdu
b3JpbmdDYXNlKGdldEF0dHJpYnV0ZShkaXJBdHRyKSwgImF1dG8iKSkpIHsKKyAgICBpZiAoIShz
ZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUoKSAmJiBoYXNEaXJlY3Rpb25BdXRvKCkp
KSB7CiAgICAgICAgIGlzQXV0byA9IGZhbHNlOwogICAgICAgICByZXR1cm4gTFRSOwogICAgIH0K
QEAgLTg5OSw3ICs5MDksNyBAQCB2b2lkIEhUTUxFbGVtZW50OjphZGp1c3REaXJlY3Rpb25hbGl0
eUlmCiAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKSAmJiByZW5kZXJl
cigpLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSAhPSB0ZXh0RGlyZWN0aW9uKSB7CiAgICAgICAgIEVs
ZW1lbnQqIGVsZW1lbnRUb0FkanVzdCA9IHRoaXM7CiAgICAgICAgIGZvciAoOyBlbGVtZW50VG9B
ZGp1c3Q7IGVsZW1lbnRUb0FkanVzdCA9IGVsZW1lbnRUb0FkanVzdC0+cGFyZW50RWxlbWVudCgp
KSB7Ci0gICAgICAgICAgICBpZiAoZWxlbWVudFRvQWRqdXN0LT5oYXNBdHRyaWJ1dGUoZGlyQXR0
cikpIHsKKyAgICAgICAgICAgIGlmIChlbGVtZW50QWZmZWN0c0RpcmVjdGlvbmFsaXR5KGVsZW1l
bnRUb0FkanVzdCkpIHsKICAgICAgICAgICAgICAgICBlbGVtZW50VG9BZGp1c3QtPnNldE5lZWRz
U3R5bGVSZWNhbGMoKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBA
IC05MjEsNyArOTMxLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6YWRqdXN0RGlyZWN0aW9uYWxpdHlJ
ZgogICAgIGlmICgoIWRvY3VtZW50KCkgfHwgZG9jdW1lbnQoKS0+cmVuZGVyZXIoKSkgJiYgY2hp
bGRDb3VudERlbHRhIDwgMCkgewogICAgICAgICBOb2RlKiBub2RlID0gYmVmb3JlQ2hhbmdlID8g
YmVmb3JlQ2hhbmdlLT50cmF2ZXJzZU5leHRTaWJsaW5nKCkgOiAwOwogICAgICAgICBmb3IgKGlu
dCBjb3VudGVyID0gMDsgbm9kZSAmJiBjb3VudGVyIDwgY2hpbGRDb3VudERlbHRhOyBjb3VudGVy
KyssIG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGlm
IChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNBdHRyaWJ1dGUo
ZGlyQXR0cikpCisgICAgICAgICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIGVsZW1l
bnRBZmZlY3RzRGlyZWN0aW9uYWxpdHkodG9IVE1MRWxlbWVudChub2RlKSkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIHNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZl
bHkobm9kZSwgZmFsc2UpOwpAQCAtOTMyLDEzICs5NDIsMTMgQEAgdm9pZCBIVE1MRWxlbWVudDo6
YWRqdXN0RGlyZWN0aW9uYWxpdHlJZgogICAgICAgICByZXR1cm47CiAKICAgICBOb2RlKiBvbGRN
YXJrZWROb2RlID0gYmVmb3JlQ2hhbmdlID8gYmVmb3JlQ2hhbmdlLT50cmF2ZXJzZU5leHRTaWJs
aW5nKCkgOiAwOwotICAgIHdoaWxlIChvbGRNYXJrZWROb2RlICYmIG9sZE1hcmtlZE5vZGUtPmlz
SFRNTEVsZW1lbnQoKSAmJiB0b0hUTUxFbGVtZW50KG9sZE1hcmtlZE5vZGUpLT5oYXNBdHRyaWJ1
dGUoZGlyQXR0cikpCisgICAgd2hpbGUgKG9sZE1hcmtlZE5vZGUgJiYgb2xkTWFya2VkTm9kZS0+
aXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnRBZmZlY3RzRGlyZWN0aW9uYWxpdHkodG9IVE1MRWxl
bWVudChvbGRNYXJrZWROb2RlKSkpCiAgICAgICAgIG9sZE1hcmtlZE5vZGUgPSBvbGRNYXJrZWRO
b2RlLT50cmF2ZXJzZU5leHRTaWJsaW5nKHRoaXMpOwogICAgIGlmIChvbGRNYXJrZWROb2RlKQog
ICAgICAgICBzZXRIYXNEaXJBdXRvRmxhZ1JlY3Vyc2l2ZWx5KG9sZE1hcmtlZE5vZGUsIGZhbHNl
KTsKIAogICAgIGZvciAoRWxlbWVudCogZWxlbWVudFRvQWRqdXN0ID0gdGhpczsgZWxlbWVudFRv
QWRqdXN0OyBlbGVtZW50VG9BZGp1c3QgPSBlbGVtZW50VG9BZGp1c3QtPnBhcmVudEVsZW1lbnQo
KSkgewotICAgICAgICBpZiAoZWxlbWVudFRvQWRqdXN0LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxl
bWVudFRvQWRqdXN0LT5oYXNBdHRyaWJ1dGUoZGlyQXR0cikpIHsKKyAgICAgICAgaWYgKGVsZW1l
bnRUb0FkanVzdC0+aXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnRBZmZlY3RzRGlyZWN0aW9uYWxp
dHkodG9IVE1MRWxlbWVudChlbGVtZW50VG9BZGp1c3QpKSkgewogICAgICAgICAgICAgdG9IVE1M
RWxlbWVudChlbGVtZW50VG9BZGp1c3QpLT5jYWxjdWxhdGVBbmRBZGp1c3REaXJlY3Rpb25hbGl0
eSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5oCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDYgKzkwLDcgQEAgcHVibGljOgogCiAg
ICAgSFRNTEZvcm1FbGVtZW50KiBmaW5kRm9ybUFuY2VzdG9yKCkgY29uc3Q7CiAKKyAgICBib29s
IGhhc0RpcmVjdGlvbkF1dG8oKSBjb25zdDsKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFs
aXR5SWZoYXNEaXJBdXRvQXR0cmlidXRlKGJvb2wmIGlzQXV0bykgY29uc3Q7CiAKICNpZiBFTkFC
TEUoTUlDUk9EQVRBKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTExNDY5KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMjAgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQkRJIGVsZW1lbnQgc2hv
dWxkIGhhdmUgZGlyPWF1dG8gYnkgZGVmYXVsdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IHdyaXR0ZW4gYnkgQWhhcm9uIExhbmluLgor
CisgICAgICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1
dG8tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9u
YWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8uaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMjAgIFhp
YW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIHZpc3VhbCB3b3JkIG1vdmVt
ZW50OiBjcmFzaGVzIG9uIENTUyBnZW5lcmF0ZWQgY29udGVudC4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRvLWV4cGVjdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
YmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRv
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFoYXJvbiBMYW5pbiIgaHJlZj0ibWFpbHRvOmFoYXJv
bkBnb29nbGUuY29tIj4KKyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkhUTUw1IGJpZGkg
dGVzdCBXRyIgaHJlZj0ibWFpbHRvOmh0bWw1YmlkaUBnb29nbGVncm91cHMuY29tIj4KKyAgICA8
c3R5bGU+CisgICAgICBib2R5eworICAgICAgICBmb250LXNpemU6MmVtOworICAgICAgfQorICAg
ICAgLmJveCB7CisgICAgICAgIGJvcmRlcjogbWVkaXVtIHNvbGlkIGdyYXk7CisgICAgICAgIHdp
ZHRoOiA1MDBweDsKKyAgICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgfQorICAgIDwvc3R5bGU+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgVGhlIHR3byBib3hlcyBiZWxvdyBzaG91bGQgbG9v
ayBleGFjdGx5IHRoZSBzYW1lLgorICAgIDwhLS0gS2V5IHRvIGVudGl0aWVzIHVzZWQgYmVsb3c6
CisgICAgICAmI3gwNUQwOyAuLi4gJiN4MDVENTsgLSBUaGUgZmlyc3Qgc2l4IEhlYnJldyBsZXR0
ZXJzIChzdHJvbmdseSBSVEwpLgorICAgICAgJiN4MjAyRDsgLSBUaGUgTFJPIChsZWZ0LXRvLXJp
Z2h0LW92ZXJyaWRlKSBmb3JtYXR0aW5nIGNoYXJhY3Rlci4KKyAgICAgICYjeDIwMkM7IC0gVGhl
IFBERiAocG9wIGRpcmVjdGlvbmFsIGZvcm1hdHRpbmcpIGZvcm1hdHRpbmcgY2hhcmFjdGVyOyBj
bG9zZXMgTFJPLiAtLT4KKyAgICA8ZGl2IGNsYXNzPSJib3giPgorICAgICAgPGRpdiBkaXI9Imx0
ciI+JiN4MjAyRDtbOildLCBbKy0gYSAmI3gwNUQxO10sIFtkICYjeDA1RDI7IDFdLi4uJiN4MjAy
Qzs8L2Rpdj4KKyAgICAgIDxkaXYgZGlyPSJydGwiPiYjeDIwMkQ7Li4uW2QgJiN4MDVEMjsgMV0g
LFsrLSBhICYjeDA1RDE7XSAsWzopXSYjeDIwMkM7PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iYm94Ij4KKyAgICAgIDxkaXYgZGlyPSJsdHIiPiYjeDIwMkQ7WzopXSwgWystIGEg
JiN4MDVEMTtdLCBbZCAmI3gwNUQyOyAxXS4uLiYjeDIwMkM7PC9kaXY+CisgICAgICA8ZGl2IGRp
cj0icnRsIj4mI3gyMDJEOy4uLltkICYjeDA1RDI7IDFdICxbKy0gYSAmI3gwNUQxO10gLFs6KV0m
I3gyMDJDOzwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2Jk
aS1kaXItZGVmYXVsdC10by1hdXRvLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkhUTUwgVGVzdDogQkRJ
OiBwYXJhZ3JhcGgtbGV2ZWwgY29udGFpbmVyPC90aXRsZT4KKyAgICA8bGluayByZWw9InJlZmVy
ZW5jZSIgaHJlZj0iYmRpLWF1dG8tZGlyLWRlZmF1bHQtcmVmLmh0bWwiPgorICAgIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iQWhhcm9uIExhbmluIiBocmVmPSJtYWlsdG86YWhhcm9uQGdvb2ds
ZS5jb20iPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSFRNTDUgYmlkaSB0ZXN0IFdH
IiBocmVmPSJtYWlsdG86aHRtbDViaWRpQGdvb2dsZWdyb3Vwcy5jb20iPgorICAgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1s
I3RoZS1iZGktZWxlbWVudCI+CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSIKKyAg
ICAgICdUaGUgZGlyIGdsb2JhbCBhdHRyaWJ1dGUgZGVmYXVsdHMgdG8gYXV0byBvbiB0aGlzIGVs
ZW1lbnQgKGl0IG5ldmVyIGluaGVyaXRzIGZyb20gdGhlIHBhcmVudAorICAgICAgZWxlbWVudCBs
aWtlIHdpdGggb3RoZXIgZWxlbWVudHMpLiciPgorICAgIDxzdHlsZT4KKyAgICAgIGJvZHl7Cisg
ICAgICAgIGZvbnQtc2l6ZToyZW07CisgICAgICB9CisgICAgICAuYm94IHsKKyAgICAgICAgYm9y
ZGVyOiBtZWRpdW0gc29saWQgZ3JheTsKKyAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICBt
YXJnaW46IDIwcHg7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICBUaGUgdHdvIGJveGVzIGJlbG93IHNob3VsZCBsb29rIGV4YWN0bHkgdGhlIHNhbWUuCisg
ICAgPCEtLSBLZXkgdG8gZW50aXRpZXMgdXNlZCBiZWxvdzoKKyAgICAgICYjeDA1RDA7IC4uLiAm
I3gwNUQ1OyAtIFRoZSBmaXJzdCBzaXggSGVicmV3IGxldHRlcnMgKHN0cm9uZ2x5IFJUTCkuCisg
ICAgICAmI3gyMDJEOyAtIFRoZSBMUk8gKGxlZnQtdG8tcmlnaHQtb3ZlcnJpZGUpIGZvcm1hdHRp
bmcgY2hhcmFjdGVyLgorICAgICAgJiN4MjAyQzsgLSBUaGUgUERGIChwb3AgZGlyZWN0aW9uYWwg
Zm9ybWF0dGluZykgZm9ybWF0dGluZyBjaGFyYWN0ZXI7IGNsb3NlcyBMUk8uIC0tPgorICAgIDxk
aXYgY2xhc3M9ImJveCI+CisgICAgICA8IS0tCisgICAgICAgIEluIGVhY2ggRElWIGJlbG93Ogor
ICAgICAgICAtIHRoZSBmaXJzdCBCREksIGhhdmluZyBubyBjaGFyYWN0ZXJzIHdpdGggc3Ryb25n
IGRpcmVjdGlvbiwgc2hvdWxkIGJlIExUUiBieSBkZWZhdWx0OworICAgICAgICAtIHRoZSBzZWNv
bmQgQkRJLCBoYXZpbmcgYW4gTFRSIGNoYXJhY3RlciBmaXJzdCwgc2hvdWxkIGJlIExUUiBieSBk
ZWZhdWx0OworICAgICAgICAtIHRoZSB0aGlyZCBCREksIGhhdmluZyBhbiBSVEwgY2hhcmFjdGVy
IGZpcnN0LCBzaG91bGQgYmUgUlRMIGJ5IGRlZmF1bHQuCisgICAgICAtLT4KKyAgICAgIDxkaXYg
ZGlyPSJsdHIiPjxiZGk+WzopXTwvYmRpPiwgPGJkaT5bKy0gYSAmI3gwNUQxO108L2JkaT4sIDxi
ZGk+WzEgJiN4MDVEMjsgZF08L2JkaT4uLi48L2Rpdj4KKyAgICAgIDxkaXYgZGlyPSJydGwiPjxi
ZGk+WzopXTwvYmRpPiwgPGJkaT5bKy0gYSAmI3gwNUQxO108L2JkaT4sIDxiZGk+WzEgJiN4MDVE
MjsgZF08L2JkaT4uLi48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJib3giPgor
ICAgICAgPGRpdiBkaXI9Imx0ciI+JiN4MjAyRDtbOildLCBbKy0gYSAmI3gwNUQxO10sIFtkICYj
eDA1RDI7IDFdLi4uJiN4MjAyQzs8L2Rpdj4KKyAgICAgIDxkaXYgZGlyPSJydGwiPiYjeDIwMkQ7
Li4uW2QgJiN4MDVEMjsgMV0gLFsrLSBhICYjeDA1RDE7XSAsWzopXSYjeDIwMkM7PC9kaXY+Cisg
ICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132937</attachid>
            <date>2012-03-20 17:12:06 -0700</date>
            <delta_ts>2012-03-21 15:16:35 -0700</delta_ts>
            <desc>Fixed GTK &amp; Qt builds</desc>
            <filename>bug-68773-20120320171205.patch</filename>
            <type>text/plain</type>
            <size>18899</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEJESSBlbGVtZW50IHNob3VsZCBo
YXZlIGRpcj1hdXRvIGJ5IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVHJlYXQgYmRpIGVsZW1lbnRzIHdpdGhvdXQgZGlyIGNvbnRlbnQgYXR0
cmlidXRlIGFzIGlmIHRoZXkgaGF2ZSBkaXI9YXV0byBwZXIgc3BlYzoKKyAgICAgICAgaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGV4
dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYmRpLWVsZW1lbnQKKworICAgICAgICBUZXN0czog
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZh
dWx0LXRvLWF1dG8uaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JM
aXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxCRElFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAo
SFRNTEJESUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJESUVsZW1lbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQkRJRWxlbWVudDo6SFRNTEJESUVsZW1lbnQpOiBT
ZXRzIHNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSB0byB0cnVlLgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxlbWVudEFmZmVjdHNE
aXJlY3Rpb25hbGl0eSk6IEFkZGVkLiBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBlbGVtZW50IGlz
IGJkaSBvcgorICAgICAgICBoYXMgZGlyIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6aGFzRGlyZWN0aW9uQXV0byk6IEFkZGVkLiBDaGVja3MgaWYgdGhlIHNwZWNp
ZmllZCBlbGVtZW50IHNob3VsZCBiZQorICAgICAgICB0cmVhdGVkIGFzIGlmIGl0IGhhcyBkaXI9
YXV0byAoYmRpIG9yIGVsZW1lbnQgd2l0aCBkaXI9YXV0bykuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6ZGlyZWN0aW9uYWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRl
ckNoaWxkQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6
YWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKToKKyAgICAg
ICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgIChIVE1MRWxlbWVudCk6CisKIDIwMTIt
MDMtMjAgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIHZpc3VhbCB3
b3JkIG1vdmVtZW50OiBjcmFzaGVzIG9uIENTUyBnZW5lcmF0ZWQgY29udGVudC4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjIxNiw2ICsyMjE2
LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNl
RWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAgXApJbmRleDogU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3
b3JraW5nIGNvcHkpCkBAIC0xODQ4LDYgKzE4NDgsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1s
L0hUTUxCYXNlRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaCBcCiAg
ICAgaHRtbC9IVE1MQm9keUVsZW1lbnQuaCBcCisgICAgaHRtbC9IVE1MQkRJRWxlbWVudC5oIFwK
ICAgICBodG1sL0hUTUxCUkVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5o
IFwKICAgICBodG1sL0hUTUxDYW52YXNFbGVtZW50LmggXApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQko
cmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5n
IGNvcHkpCkBAIC01MzI3LDYgKzUzMjcsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTEFyZWFF
bGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1sL0hU
TUxCRElFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEJSRWxlbWVudC5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTEJSRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDExMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NzY3NCw2ICs1
NzY3NCwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXEhUTUxCRElFbGVtZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEJvZHlFbGVtZW50LmNwcCIKIAkJCQk+CiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTM1ODQsNiArMzU4NCw3IEBACiAJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJ
bXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwRkIxOTExNDBEQjU3
OTAwMjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMEZCMThGMTQwREI1NzkwMDIyNTg4RiAvKiBIVFRQVmFs
aWRhdGlvbi5jcHAgKi87IH07CiAJCTlCMEZCMTkyMTQwREI1NzkwMDIyNTg4RiAvKiBIVFRQVmFs
aWRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUIwRkIxOTAxNDBEQjU3OTAwMjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmggKi87IH07CisJCTlC
MjRERThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3
IC8qIEhUTUxCRElFbGVtZW50LmggKi87IH07CiAJCTlCMkI3QUMxMTUwOTg1MEEwMDg5MzJDQyAv
KiBNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUIyRjdDRjcxNDU2MjEyMDAwN0Y4QjUwIC8qIE1pY3JvRGF0YUl0ZW1W
YWx1ZS5jcHAgKi87IH07CiAJCTlCMkQ4QTc5MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyRDhBNzgx
NDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIzMkNEQTkxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRl
cmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi87IH07
CkBAIC0xMDU1OSw2ICsxMDU2MCw3IEBACiAJCTk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBO
b3RJbXBsZW1lbnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RJbXBs
ZW1lbnRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjBGQjE4RjE0MERCNTc5
MDAyMjU4OEYgLyogSFRUUFZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSFRUUFZhbGlkYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QjBGQjE5MDE0MERCNTc5MDAyMjU4OEYgLyogSFRUUFZhbGlkYXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRUUFZhbGlkYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxCRElFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAv
KiBVbmRvU3RlcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbmRvU3RlcC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjJGN0NGNzE0NTYyMTIwMDA3RjhCNTAg
LyogTWljcm9EYXRhSXRlbVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1pY3JvRGF0YUl0ZW1WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCMkY3Q0Y4MTQ1NjIxMjAwMDdGOEI1MCAvKiBNaWNyb0RhdGFJdGVtVmFsdWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWljcm9EYXRhSXRlbVZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjc2OSw2ICsxNjc3MSw3IEBACiAJCQkJQThERjNG
Q0IwOTdGQTBGQjAwNTI5ODFCIC8qIEhUTUxCYXNlRm9udEVsZW1lbnQuY3BwICovLAogCQkJCUE4
REYzRkNBMDk3RkEwRkIwMDUyOTgxQiAvKiBIVE1MQmFzZUZvbnRFbGVtZW50LmggKi8sCiAJCQkJ
MUFFMkE5RjEwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCYXNlRm9udEVsZW1lbnQuaWRsICovLAor
CQkJCTlCMjRERThDMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oICovLAogCQkJ
CUE4NzFERTFEMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuY3BwICovLAogCQkJ
CUE4NzFERTIwMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAqLywKIAkJCQkx
QUUyQTlGMjBBMUNEQTU3MDBCNDJCMjUgLyogSFRNTEJvZHlFbGVtZW50LmlkbCAqLywKQEAgLTIy
Njg3LDYgKzIyNjkwLDcgQEAKIAkJCQlFNDQ2MTNBMjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1
ZGlvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURDMUYwQTE1MjA1NzAwQjEyQTY4
IC8qIEhUTUxCYXNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThERjNGRDIwOTdGQTBG
QzAwNTI5ODFCIC8qIEhUTUxCYXNlRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTlC
MjRERThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTg3MURFMkMwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxCb2R5RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThDRkY3QUEwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxCUkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUQyMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MQnV0
dG9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNjcsNyArMTM2Nyw3IEBA
IGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2FuU2hhcmVTdHlsZVdpdGgKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogI2VuZGlmCiAKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZShkaXJBdHRyKSwgImF1dG8iKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShtX2Vs
ZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoZGlyQXR0ciksICJhdXRvIikpCisgICAgaWYgKChlbGVt
ZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgdG9IVE1MRWxlbWVudChlbGVtZW50KS0+aGFzRGlyZWN0
aW9uQXV0bygpKSB8fCAobV9lbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgdG9IVE1MRWxlbWVu
dChtX2VsZW1lbnQpLT5oYXNEaXJlY3Rpb25BdXRvKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBtX2VsZW1lbnQtPmdldEF0dHJpYnV0
ZShjbGFzc0F0dHIpICE9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShjbGFzc0F0dHIpKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJESUVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJESUVsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKworI2lmbmRlZiBIVE1MQkRJRWxlbWVudF9oCisjZGVmaW5lIEhUTUxCRElFbGVtZW50
X2gKKworI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSFRNTEJESUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxCRElFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MQkRJRWxlbWVudChuYW1lLCBkb2N1bWVudCkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBIVE1MQkRJRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCisgICAgICAgIDogSFRNTEVsZW1lbnQobmFtZSwgZG9jdW1lbnQpCisg
ICAgeworICAgICAgICAvLyBGSVhNRTogUmVuYW1lIHNldFNlbGZPckFuY2VzdG9ySGFzRGlyQXV0
b0F0dHJpYnV0ZSB0byByZWZsZWN0IHRoZSBmYWN0IGJkaSBhbHNvIHVzZXMgdGhpcyBmbGFnLgor
ICAgICAgICBzZXRTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUodHJ1ZSk7CisgICAg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5NSw2ICs3OTUsMTEgQEAgSFRNTEZv
cm1FbGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcgogICAgIHJldHVybiBmaW5kRm9ybUFu
Y2VzdG9yKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBlbGVtZW50QWZmZWN0c0RpcmVjdGlv
bmFsaXR5KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGVsZW1lbnQtPmhh
c1RhZ05hbWUoYmRpVGFnKSB8fCBlbGVtZW50LT5oYXNBdHRyaWJ1dGUoZGlyQXR0cik7Cit9CisK
IHN0YXRpYyB2b2lkIHNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZlbHkoTm9kZSogZmlyc3ROb2Rl
LCBib29sIGZsYWcsIE5vZGUqIGxhc3ROb2RlID0gMCkKIHsKICAgICBmaXJzdE5vZGUtPnNldFNl
bGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZShmbGFnKTsKQEAgLTgwNSw3ICs4MTAsNyBA
QCBzdGF0aWMgdm9pZCBzZXRIYXNEaXJBdXRvRmxhZ1JlY3Vyc2l2ZWx5CiAgICAgICAgIGlmIChu
b2RlLT5zZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUoKSA9PSBmbGFnKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgdG9F
bGVtZW50KG5vZGUpLT5oYXNBdHRyaWJ1dGUoZGlyQXR0cikpIHsKKyAgICAgICAgaWYgKG5vZGUt
PmlzSFRNTEVsZW1lbnQoKSAmJiBlbGVtZW50QWZmZWN0c0RpcmVjdGlvbmFsaXR5KHRvSFRNTEVs
ZW1lbnQobm9kZSkpKSB7CiAgICAgICAgICAgICBpZiAobm9kZSA9PSBsYXN0Tm9kZSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0
U2libGluZyhmaXJzdE5vZGUpOwpAQCAtODI0LDkgKzgyOSwxNCBAQCB2b2lkIEhUTUxFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjCiAgICAgYWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRl
ZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKGJlZm9yZUNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0K
IAorYm9vbCBIVE1MRWxlbWVudDo6aGFzRGlyZWN0aW9uQXV0bygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGhhc1RhZ05hbWUoYmRpVGFnKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShmYXN0R2V0QXR0cmli
dXRlKGRpckF0dHIpLCAiYXV0byIpOworfQorCiBUZXh0RGlyZWN0aW9uIEhUTUxFbGVtZW50Ojpk
aXJlY3Rpb25hbGl0eUlmaGFzRGlyQXV0b0F0dHJpYnV0ZShib29sJiBpc0F1dG8pIGNvbnN0CiB7
Ci0gICAgaWYgKCEoc2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKCkgJiYgZXF1YWxJ
Z25vcmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGRpckF0dHIpLCAiYXV0byIpKSkgeworICAgIGlmICgh
KHNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSgpICYmIGhhc0RpcmVjdGlvbkF1dG8o
KSkpIHsKICAgICAgICAgaXNBdXRvID0gZmFsc2U7CiAgICAgICAgIHJldHVybiBMVFI7CiAgICAg
fQpAQCAtODk5LDcgKzkwOSw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFs
aXR5SWYKICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpICYmIHJlbmRl
cmVyKCktPnN0eWxlKCktPmRpcmVjdGlvbigpICE9IHRleHREaXJlY3Rpb24pIHsKICAgICAgICAg
RWxlbWVudCogZWxlbWVudFRvQWRqdXN0ID0gdGhpczsKICAgICAgICAgZm9yICg7IGVsZW1lbnRU
b0FkanVzdDsgZWxlbWVudFRvQWRqdXN0ID0gZWxlbWVudFRvQWRqdXN0LT5wYXJlbnRFbGVtZW50
KCkpIHsKLSAgICAgICAgICAgIGlmIChlbGVtZW50VG9BZGp1c3QtPmhhc0F0dHJpYnV0ZShkaXJB
dHRyKSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnRBZmZlY3RzRGlyZWN0aW9uYWxpdHkoZWxl
bWVudFRvQWRqdXN0KSkgewogICAgICAgICAgICAgICAgIGVsZW1lbnRUb0FkanVzdC0+c2V0TmVl
ZHNTdHlsZVJlY2FsYygpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
QEAgLTkyMSw3ICs5MzEsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjphZGp1c3REaXJlY3Rpb25hbGl0
eUlmCiAgICAgaWYgKCghZG9jdW1lbnQoKSB8fCBkb2N1bWVudCgpLT5yZW5kZXJlcigpKSAmJiBj
aGlsZENvdW50RGVsdGEgPCAwKSB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBiZWZvcmVDaGFuZ2Ug
PyBiZWZvcmVDaGFuZ2UtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKSA6IDA7CiAgICAgICAgIGZvciAo
aW50IGNvdW50ZXIgPSAwOyBub2RlICYmIGNvdW50ZXIgPCBjaGlsZENvdW50RGVsdGE7IGNvdW50
ZXIrKywgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAg
aWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc0F0dHJpYnV0
ZShkaXJBdHRyKSkKKyAgICAgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgZWxl
bWVudEFmZmVjdHNEaXJlY3Rpb25hbGl0eSh0b0hUTUxFbGVtZW50KG5vZGUpKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgc2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNp
dmVseShub2RlLCBmYWxzZSk7CkBAIC05MzIsMTMgKzk0MiwxMyBAQCB2b2lkIEhUTUxFbGVtZW50
OjphZGp1c3REaXJlY3Rpb25hbGl0eUlmCiAgICAgICAgIHJldHVybjsKIAogICAgIE5vZGUqIG9s
ZE1hcmtlZE5vZGUgPSBiZWZvcmVDaGFuZ2UgPyBiZWZvcmVDaGFuZ2UtPnRyYXZlcnNlTmV4dFNp
YmxpbmcoKSA6IDA7Ci0gICAgd2hpbGUgKG9sZE1hcmtlZE5vZGUgJiYgb2xkTWFya2VkTm9kZS0+
aXNIVE1MRWxlbWVudCgpICYmIHRvSFRNTEVsZW1lbnQob2xkTWFya2VkTm9kZSktPmhhc0F0dHJp
YnV0ZShkaXJBdHRyKSkKKyAgICB3aGlsZSAob2xkTWFya2VkTm9kZSAmJiBvbGRNYXJrZWROb2Rl
LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25hbGl0eSh0b0hUTUxF
bGVtZW50KG9sZE1hcmtlZE5vZGUpKSkKICAgICAgICAgb2xkTWFya2VkTm9kZSA9IG9sZE1hcmtl
ZE5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcodGhpcyk7CiAgICAgaWYgKG9sZE1hcmtlZE5vZGUp
CiAgICAgICAgIHNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZlbHkob2xkTWFya2VkTm9kZSwgZmFs
c2UpOwogCiAgICAgZm9yIChFbGVtZW50KiBlbGVtZW50VG9BZGp1c3QgPSB0aGlzOyBlbGVtZW50
VG9BZGp1c3Q7IGVsZW1lbnRUb0FkanVzdCA9IGVsZW1lbnRUb0FkanVzdC0+cGFyZW50RWxlbWVu
dCgpKSB7Ci0gICAgICAgIGlmIChlbGVtZW50VG9BZGp1c3QtPmlzSFRNTEVsZW1lbnQoKSAmJiBl
bGVtZW50VG9BZGp1c3QtPmhhc0F0dHJpYnV0ZShkaXJBdHRyKSkgeworICAgICAgICBpZiAoZWxl
bWVudFRvQWRqdXN0LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25h
bGl0eSh0b0hUTUxFbGVtZW50KGVsZW1lbnRUb0FkanVzdCkpKSB7CiAgICAgICAgICAgICB0b0hU
TUxFbGVtZW50KGVsZW1lbnRUb0FkanVzdCktPmNhbGN1bGF0ZUFuZEFkanVzdERpcmVjdGlvbmFs
aXR5KCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDExMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAK
ICAgICBIVE1MRm9ybUVsZW1lbnQqIGZpbmRGb3JtQW5jZXN0b3IoKSBjb25zdDsKIAorICAgIGJv
b2wgaGFzRGlyZWN0aW9uQXV0bygpIGNvbnN0OwogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9u
YWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUoYm9vbCYgaXNBdXRvKSBjb25zdDsKIAogI2lmIEVO
QUJMRShNSUNST0RBVEEpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTE0NjkpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0yMCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBCREkgZWxlbWVudCBz
aG91bGQgaGF2ZSBkaXI9YXV0byBieSBkZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3Qgd3JpdHRlbiBieSBBaGFyb24gTGFuaW4u
CisKKyAgICAgICAgKiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9iZGktZGlyLWRlZmF1bHQtdG8t
YXV0by1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvaW50ZXJuYXRp
b25hbC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by5odG1sOiBBZGRlZC4KKwogMjAxMi0wMy0yMCAg
WGlhb21laSBKaSAgPHhqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgdmlzdWFsIHdvcmQgbW92
ZW1lbnQ6IGNyYXNoZXMgb24gQ1NTIGdlbmVyYXRlZCBjb250ZW50LgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25h
bC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1
dG8tZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAg
IDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWhhcm9uIExhbmluIiBocmVmPSJtYWlsdG86YWhh
cm9uQGdvb2dsZS5jb20iPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSFRNTDUgYmlk
aSB0ZXN0IFdHIiBocmVmPSJtYWlsdG86aHRtbDViaWRpQGdvb2dsZWdyb3Vwcy5jb20iPgorICAg
IDxzdHlsZT4KKyAgICAgIGJvZHl7CisgICAgICAgIGZvbnQtc2l6ZToyZW07CisgICAgICB9Cisg
ICAgICAuYm94IHsKKyAgICAgICAgYm9yZGVyOiBtZWRpdW0gc29saWQgZ3JheTsKKyAgICAgICAg
d2lkdGg6IDUwMHB4OworICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICBUaGUgdHdvIGJveGVzIGJlbG93IHNob3VsZCBs
b29rIGV4YWN0bHkgdGhlIHNhbWUuCisgICAgPCEtLSBLZXkgdG8gZW50aXRpZXMgdXNlZCBiZWxv
dzoKKyAgICAgICYjeDA1RDA7IC4uLiAmI3gwNUQ1OyAtIFRoZSBmaXJzdCBzaXggSGVicmV3IGxl
dHRlcnMgKHN0cm9uZ2x5IFJUTCkuCisgICAgICAmI3gyMDJEOyAtIFRoZSBMUk8gKGxlZnQtdG8t
cmlnaHQtb3ZlcnJpZGUpIGZvcm1hdHRpbmcgY2hhcmFjdGVyLgorICAgICAgJiN4MjAyQzsgLSBU
aGUgUERGIChwb3AgZGlyZWN0aW9uYWwgZm9ybWF0dGluZykgZm9ybWF0dGluZyBjaGFyYWN0ZXI7
IGNsb3NlcyBMUk8uIC0tPgorICAgIDxkaXYgY2xhc3M9ImJveCI+CisgICAgICA8ZGl2IGRpcj0i
bHRyIj4mI3gyMDJEO1s6KV0sIFsrLSBhICYjeDA1RDE7XSwgW2QgJiN4MDVEMjsgMV0uLi4mI3gy
MDJDOzwvZGl2PgorICAgICAgPGRpdiBkaXI9InJ0bCI+JiN4MjAyRDsuLi5bZCAmI3gwNUQyOyAx
XSAsWystIGEgJiN4MDVEMTtdICxbOildJiN4MjAyQzs8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJib3giPgorICAgICAgPGRpdiBkaXI9Imx0ciI+JiN4MjAyRDtbOildLCBbKy0g
YSAmI3gwNUQxO10sIFtkICYjeDA1RDI7IDFdLi4uJiN4MjAyQzs8L2Rpdj4KKyAgICAgIDxkaXYg
ZGlyPSJydGwiPiYjeDIwMkQ7Li4uW2QgJiN4MDVEMjsgMV0gLFsrLSBhICYjeDA1RDE7XSAsWzop
XSYjeDIwMkM7PC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRv
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
YmRpLWRpci1kZWZhdWx0LXRvLWF1dG8uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRvLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+SFRNTCBUZXN0OiBC
REk6IHBhcmFncmFwaC1sZXZlbCBjb250YWluZXI8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0icmVm
ZXJlbmNlIiBocmVmPSJiZGktYXV0by1kaXItZGVmYXVsdC1yZWYuaHRtbCI+CisgICAgPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJBaGFyb24gTGFuaW4iIGhyZWY9Im1haWx0bzphaGFyb25AZ29v
Z2xlLmNvbSI+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJIVE1MNSBiaWRpIHRlc3Qg
V0ciIGhyZWY9Im1haWx0bzpodG1sNWJpZGlAZ29vZ2xlZ3JvdXBzLmNvbSI+CisgICAgPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0
bWwjdGhlLWJkaS1lbGVtZW50Ij4KKyAgICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Igor
ICAgICAgJ1RoZSBkaXIgZ2xvYmFsIGF0dHJpYnV0ZSBkZWZhdWx0cyB0byBhdXRvIG9uIHRoaXMg
ZWxlbWVudCAoaXQgbmV2ZXIgaW5oZXJpdHMgZnJvbSB0aGUgcGFyZW50CisgICAgICBlbGVtZW50
IGxpa2Ugd2l0aCBvdGhlciBlbGVtZW50cykuJyI+CisgICAgPHN0eWxlPgorICAgICAgYm9keXsK
KyAgICAgICAgZm9udC1zaXplOjJlbTsKKyAgICAgIH0KKyAgICAgIC5ib3ggeworICAgICAgICBi
b3JkZXI6IG1lZGl1bSBzb2xpZCBncmF5OworICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAg
IG1hcmdpbjogMjBweDsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5
PgorICAgIFRoZSB0d28gYm94ZXMgYmVsb3cgc2hvdWxkIGxvb2sgZXhhY3RseSB0aGUgc2FtZS4K
KyAgICA8IS0tIEtleSB0byBlbnRpdGllcyB1c2VkIGJlbG93OgorICAgICAgJiN4MDVEMDsgLi4u
ICYjeDA1RDU7IC0gVGhlIGZpcnN0IHNpeCBIZWJyZXcgbGV0dGVycyAoc3Ryb25nbHkgUlRMKS4K
KyAgICAgICYjeDIwMkQ7IC0gVGhlIExSTyAobGVmdC10by1yaWdodC1vdmVycmlkZSkgZm9ybWF0
dGluZyBjaGFyYWN0ZXIuCisgICAgICAmI3gyMDJDOyAtIFRoZSBQREYgKHBvcCBkaXJlY3Rpb25h
bCBmb3JtYXR0aW5nKSBmb3JtYXR0aW5nIGNoYXJhY3RlcjsgY2xvc2VzIExSTy4gLS0+CisgICAg
PGRpdiBjbGFzcz0iYm94Ij4KKyAgICAgIDwhLS0KKyAgICAgICAgSW4gZWFjaCBESVYgYmVsb3c6
CisgICAgICAgIC0gdGhlIGZpcnN0IEJESSwgaGF2aW5nIG5vIGNoYXJhY3RlcnMgd2l0aCBzdHJv
bmcgZGlyZWN0aW9uLCBzaG91bGQgYmUgTFRSIGJ5IGRlZmF1bHQ7CisgICAgICAgIC0gdGhlIHNl
Y29uZCBCREksIGhhdmluZyBhbiBMVFIgY2hhcmFjdGVyIGZpcnN0LCBzaG91bGQgYmUgTFRSIGJ5
IGRlZmF1bHQ7CisgICAgICAgIC0gdGhlIHRoaXJkIEJESSwgaGF2aW5nIGFuIFJUTCBjaGFyYWN0
ZXIgZmlyc3QsIHNob3VsZCBiZSBSVEwgYnkgZGVmYXVsdC4KKyAgICAgIC0tPgorICAgICAgPGRp
diBkaXI9Imx0ciI+PGJkaT5bOildPC9iZGk+LCA8YmRpPlsrLSBhICYjeDA1RDE7XTwvYmRpPiwg
PGJkaT5bMSAmI3gwNUQyOyBkXTwvYmRpPi4uLjwvZGl2PgorICAgICAgPGRpdiBkaXI9InJ0bCI+
PGJkaT5bOildPC9iZGk+LCA8YmRpPlsrLSBhICYjeDA1RDE7XTwvYmRpPiwgPGJkaT5bMSAmI3gw
NUQyOyBkXTwvYmRpPi4uLjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImJveCI+
CisgICAgICA8ZGl2IGRpcj0ibHRyIj4mI3gyMDJEO1s6KV0sIFsrLSBhICYjeDA1RDE7XSwgW2Qg
JiN4MDVEMjsgMV0uLi4mI3gyMDJDOzwvZGl2PgorICAgICAgPGRpdiBkaXI9InJ0bCI+JiN4MjAy
RDsuLi5bZCAmI3gwNUQyOyAxXSAsWystIGEgJiN4MDVEMTtdICxbOildJiN4MjAyQzs8L2Rpdj4K
KyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133123</attachid>
            <date>2012-03-21 15:16:51 -0700</date>
            <delta_ts>2012-03-21 15:46:44 -0700</delta_ts>
            <desc>Fixed a bug</desc>
            <filename>bug-68773-20120321151650.patch</filename>
            <type>text/plain</type>
            <size>21578</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTYwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgwIEBACisyMDEyLTAzLTIxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEJESSBlbGVtZW50IHNob3VsZCBo
YXZlIGRpcj1hdXRvIGJ5IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVHJlYXQgYmRpIGVsZW1lbnRzIHdpdGhvdXQgZGlyIGNvbnRlbnQgYXR0
cmlidXRlIGFzIGlmIHRoZXkgaGF2ZSBkaXI9YXV0byBwZXIgc3BlYzoKKyAgICAgICAgaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGV4
dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYmRpLWVsZW1lbnQKKworICAgICAgICBUZXN0czog
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZh
dWx0LXRvLWF1dG8uaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JM
aXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxCRElFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChIVE1MQkRJRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQkRJRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCRElFbGVtZW50
OjpIVE1MQkRJRWxlbWVudCk6IFNldHMgc2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRl
IHRvIHRydWUgYmVjYXVzZQorICAgICAgICBiZGkgZWxlbWVudHMgYXJlIHRyZWF0ZWQgYXMgaWYg
aXQgaGFzIGRpcj1hdXRvIGJ5IGRlZmF1bHQuCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjplbGVtZW50QWZmZWN0c0RpcmVjdGlvbmFsaXR5KTogQWRk
ZWQuIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgaXMgYmRpIG9yCisgICAgICAgIGhh
cyBkaXIgY29udGVudCBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZlbHkpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6Omhhc0RpcmVjdGlvbkF1dG8pOiBBZGRlZC4gQ2hlY2tzIGlmIHRoZSBzcGVj
aWZpZWQgZWxlbWVudCBzaG91bGQgYmUgdHJlYXRlZAorICAgICAgICBhcyBpZiBpdCBoYXMgZGly
PWF1dG8gKGJkaSBvciBlbGVtZW50IHdpdGggZGlyPWF1dG8pLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6OmRpcmVjdGlvbmFsaXR5SWZoYXNEaXJBdXRvQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjphZGp1c3REaXJlY3Rpb25hbGl0eUlmTmVlZGVkQWZ0
ZXJDaGlsZEF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6
OmFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkcmVuQ2hhbmdlZCk6CisgICAg
ICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAoSFRNTEVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhZ05hbWVzLmluOiBVc2UgSFRNTEJESUVsZW1lbnQgaW5zdGVhZCBvZiBI
VE1MRWxlbWVudCBmb3IgY29uc3RydWN0aW5nIGJkaSBlbGVtZW50CisgICAgICAgIHRvIHNldCBz
ZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUgdHJ1ZSBidXQgc3RpbGwgdXNlIEhUTUxF
bGVtZW50IGZvciBiaW5kaW5nLgorCisyMDEyLTAzLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgorCisgICAgICAgIEJESSBlbGVtZW50IHNob3VsZCBoYXZlIGRpcj1hdXRvIGJ5
IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY4NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VHJlYXQgYmRpIGVsZW1lbnRzIHdpdGhvdXQgZGlyIGNvbnRlbnQgYXR0cmlidXRlIGFzIGlmIHRo
ZXkgaGF2ZSBkaXI9YXV0byBwZXIgc3BlYzoKKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MuaHRtbCN0aGUtYmRpLWVsZW1lbnQKKworICAgICAgICBUZXN0czogZmFzdC90ZXh0L2ludGVy
bmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8uaHRt
bAorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJp
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3R5bGVTZWxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAg
KiBodG1sL0hUTUxCRElFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoSFRNTEJESUVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJESUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQkRJRWxlbWVudDo6SFRNTEJESUVsZW1lbnQpOiBTZXRzIHNlbGZPckFuY2Vz
dG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSB0byB0cnVlLgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25hbGl0eSk6
IEFkZGVkLiBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBlbGVtZW50IGlzIGJkaSBvcgorICAgICAg
ICBoYXMgZGlyIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6c2V0SGFzRGly
QXV0b0ZsYWdSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aGFz
RGlyZWN0aW9uQXV0byk6IEFkZGVkLiBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBlbGVtZW50IHNo
b3VsZCBiZQorICAgICAgICB0cmVhdGVkIGFzIGlmIGl0IGhhcyBkaXI9YXV0byAoYmRpIG9yIGVs
ZW1lbnQgd2l0aCBkaXI9YXV0bykuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6ZGly
ZWN0aW9uYWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6YWRqdXN0RGlyZWN0aW9u
YWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxF
bGVtZW50Lmg6CisgICAgICAgIChIVE1MRWxlbWVudCk6CisKIDIwMTItMDMtMjEgIE1hcmsgUGls
Z3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlYWxwaGFiZXRpemUgYWJv
dXQgd2ViYXVkaW8gbW92ZQpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZp
c2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjE2LDYgKzIyMTYsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJhc2VGb250RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJh
c2VGb250RWxlbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCRElFbGVtZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QlJFbGVtZW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDExMTQyMykKKysrIFNv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE4NDgsNiArMTg0OCw3
IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvSFRNTEJhc2VFbGVtZW50LmggXAogICAgIGh0bWwv
SFRNTEJhc2VGb250RWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxCb2R5RWxlbWVudC5oIFwKKyAg
ICBodG1sL0hUTUxCRElFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTEJSRWxlbWVudC5oIFwKICAg
ICBodG1sL0hUTUxCdXR0b25FbGVtZW50LmggXAogICAgIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTUzMjcsNiArNTMyNyw3IEBACiAg
ICAgICAgICAgICAnaHRtbC9IVE1MQXJlYUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MQXVkaW9FbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MQXVkaW9FbGVtZW50
LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTEJESUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAn
aHRtbC9IVE1MQlJFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MQlJFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcCcsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMTEx
NDIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdv
cmtpbmcgY29weSkKQEAgLTU3Njc0LDYgKzU3Njc0LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEJESUVsZW1lbnQuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1M
Qm9keUVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDExMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzU4NCw2ICszNTg0LDcgQEAKIAkJOThFQjFG
OTUxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OEVCMUY5NDEzMTNGRTA1MDBEMEUxRUEgLyog
Tm90SW1wbGVtZW50ZWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5QjBGQjE5MTE0MERCNTc5MDAyMjU4OEYgLyogSFRUUFZhbGlkYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwRkIxOEYx
NDBEQjU3OTAwMjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmNwcCAqLzsgfTsKIAkJOUIwRkIxOTIx
NDBEQjU3OTAwMjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjBGQjE5MDE0MERCNTc5MDAyMjU4OEYgLyogSFRU
UFZhbGlkYXRpb24uaCAqLzsgfTsKKwkJOUIyNERFOEUxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxC
RElFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLzsgfTsKIAkJ
OUIyQjdBQzExNTA5ODUwQTAwODkzMkNDIC8qIE1pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjJGN0NGNzE0NTYyMTIw
MDA3RjhCNTAgLyogTWljcm9EYXRhSXRlbVZhbHVlLmNwcCAqLzsgfTsKIAkJOUIyRDhBNzkxNDk5
N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjMyQ0RB
OTEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8q
IFJlbmRlcmVkUG9zaXRpb24uaCAqLzsgfTsKQEAgLTEwNTU5LDYgKzEwNTYwLDcgQEAKIAkJOThF
QjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5vdEltcGxlbWVudGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlCMEZCMThGMTQwREI1NzkwMDIyNTg4RiAvKiBIVFRQVmFsaWRhdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQVmFsaWRhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMEZCMTkwMTQwREI1NzkwMDIyNTg4RiAv
KiBIVFRQVmFsaWRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVFRQ
VmFsaWRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjI0REU4QzE1MTk0
Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSFRNTEJESUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVuZG9TdGVwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCMkY3Q0Y3MTQ1NjIxMjAwMDdGOEI1MCAvKiBNaWNyb0RhdGFJdGVtVmFsdWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWljcm9EYXRhSXRlbVZhbHVlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIyRjdDRjgxNDU2MjEyMDAwN0Y4QjUwIC8q
IE1pY3JvRGF0YUl0ZW1WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
aWNyb0RhdGFJdGVtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NzY5
LDYgKzE2NzcxLDcgQEAKIAkJCQlBOERGM0ZDQjA5N0ZBMEZCMDA1Mjk4MUIgLyogSFRNTEJhc2VG
b250RWxlbWVudC5jcHAgKi8sCiAJCQkJQThERjNGQ0EwOTdGQTBGQjAwNTI5ODFCIC8qIEhUTUxC
YXNlRm9udEVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQTlGMTBBMUNEQTU3MDBCNDJCMjUgLyogSFRN
TEJhc2VGb250RWxlbWVudC5pZGwgKi8sCisJCQkJOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8q
IEhUTUxCRElFbGVtZW50LmggKi8sCiAJCQkJQTg3MURFMUQwQTE1MkFDODAwQjEyQTY4IC8qIEhU
TUxCb2R5RWxlbWVudC5jcHAgKi8sCiAJCQkJQTg3MURFMjAwQTE1MkFDODAwQjEyQTY4IC8qIEhU
TUxCb2R5RWxlbWVudC5oICovLAogCQkJCTFBRTJBOUYyMEExQ0RBNTcwMEI0MkIyNSAvKiBIVE1M
Qm9keUVsZW1lbnQuaWRsICovLApAQCAtMjI2ODcsNiArMjI2OTAsNyBAQAogCQkJCUU0NDYxM0Ey
MENENjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODcxREMxRjBBMTUyMDU3MDBCMTJBNjggLyogSFRNTEJhc2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOERGM0ZEMjA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTEJhc2VGb250RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIyNERFOEUxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxC
RElFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREUyQzBBMTUyQUM4MDBCMTJBNjgg
LyogSFRNTEJvZHlFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjdBQTBBMTU2OTc4
MDAwQTQyMzQgLyogSFRNTEJSRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RDIw
OTczNzRGNjAwRDc0NDYzIC8qIEhUTUxCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDExMTQy
MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTM2Nyw3ICsxMzY3LDcgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjYW5TaGFy
ZVN0eWxlV2l0aAogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAotICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGRpckF0dHIpLCAiYXV0byIp
IHx8IGVxdWFsSWdub3JpbmdDYXNlKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShkaXJBdHRy
KSwgImF1dG8iKSkKKyAgICBpZiAoKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSAmJiB0b0hUTUxF
bGVtZW50KGVsZW1lbnQpLT5oYXNEaXJlY3Rpb25BdXRvKCkpIHx8IChtX2VsZW1lbnQtPmlzSFRN
TEVsZW1lbnQoKSAmJiB0b0hUTUxFbGVtZW50KG1fZWxlbWVudCktPmhhc0RpcmVjdGlvbkF1dG8o
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChlbGVtZW50LT5oYXNDbGFzcygp
ICYmIG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgIT0gZWxlbWVudC0+Z2V0QXR0
cmlidXRlKGNsYXNzQXR0cikpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCRElFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIEhUTUxCRElFbGVtZW50
X2gKKyNkZWZpbmUgSFRNTEJESUVsZW1lbnRfaAorCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MQkRJRWxlbWVudCA6IHB1YmxpYyBI
VE1MRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEJESUVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxCRElFbGVtZW50KG5hbWUs
IGRvY3VtZW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIEhUTUxCRElFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICAgICAgOiBIVE1M
RWxlbWVudChuYW1lLCBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBSZW5hbWUg
c2V0U2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlIHRvIHJlZmxlY3QgdGhlIGZhY3Qg
YmRpIGFsc28gdXNlcyB0aGlzIGZsYWcuCisgICAgICAgIHNldFNlbGZPckFuY2VzdG9ySGFzRGly
QXV0b0F0dHJpYnV0ZSh0cnVlKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJIVE1MQkRJRWxl
bWVudDolc1xuIiwgc2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKCkgPyAidHJ1ZSIg
OiAiZmFsc2UiKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzk1LDYg
Kzc5NSwxMSBAQCBIVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojp2aXJ0dWFsRm9yCiAgICAg
cmV0dXJuIGZpbmRGb3JtQW5jZXN0b3IoKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGVsZW1l
bnRBZmZlY3RzRGlyZWN0aW9uYWxpdHkoY29uc3QgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShiZGlUYWcpIHx8IGVsZW1lbnQtPmhhc0F0dHJpYnV0
ZShkaXJBdHRyKTsKK30KKwogc3RhdGljIHZvaWQgc2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNpdmVs
eShOb2RlKiBmaXJzdE5vZGUsIGJvb2wgZmxhZywgTm9kZSogbGFzdE5vZGUgPSAwKQogewogICAg
IGZpcnN0Tm9kZS0+c2V0U2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKGZsYWcpOwpA
QCAtODA1LDcgKzgxMCw3IEBAIHN0YXRpYyB2b2lkIHNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZl
bHkKICAgICAgICAgaWYgKG5vZGUtPnNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSgp
ID09IGZsYWcpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKG5vZGUtPmlzSFRN
TEVsZW1lbnQoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc0F0dHJpYnV0ZShkaXJBdHRyKSkgewor
ICAgICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnRBZmZlY3RzRGlyZWN0
aW9uYWxpdHkodG9IVE1MRWxlbWVudChub2RlKSkpIHsKICAgICAgICAgICAgIGlmIChub2RlID09
IGxhc3ROb2RlKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIG5vZGUgPSBu
b2RlLT50cmF2ZXJzZU5leHRTaWJsaW5nKGZpcnN0Tm9kZSk7CkBAIC04MjQsOSArODI5LDE0IEBA
IHZvaWQgSFRNTEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGMKICAgICBhZGp1c3REaXJl
Y3Rpb25hbGl0eUlmTmVlZGVkQWZ0ZXJDaGlsZHJlbkNoYW5nZWQoYmVmb3JlQ2hhbmdlLCBjaGls
ZENvdW50RGVsdGEpOwogfQogCitib29sIEhUTUxFbGVtZW50OjpoYXNEaXJlY3Rpb25BdXRvKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gaGFzVGFnTmFtZShiZGlUYWcpIHx8IGVxdWFsSWdub3JpbmdD
YXNlKGZhc3RHZXRBdHRyaWJ1dGUoZGlyQXR0ciksICJhdXRvIik7Cit9CisKIFRleHREaXJlY3Rp
b24gSFRNTEVsZW1lbnQ6OmRpcmVjdGlvbmFsaXR5SWZoYXNEaXJBdXRvQXR0cmlidXRlKGJvb2wm
IGlzQXV0bykgY29uc3QKIHsKLSAgICBpZiAoIShzZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRy
aWJ1dGUoKSAmJiBlcXVhbElnbm9yaW5nQ2FzZShnZXRBdHRyaWJ1dGUoZGlyQXR0ciksICJhdXRv
IikpKSB7CisgICAgaWYgKCEoc2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKCkgJiYg
aGFzRGlyZWN0aW9uQXV0bygpKSkgewogICAgICAgICBpc0F1dG8gPSBmYWxzZTsKICAgICAgICAg
cmV0dXJuIExUUjsKICAgICB9CkBAIC04OTksNyArOTA5LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6
YWRqdXN0RGlyZWN0aW9uYWxpdHlJZgogICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCkt
PnN0eWxlKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkgIT0gdGV4dERpcmVj
dGlvbikgewogICAgICAgICBFbGVtZW50KiBlbGVtZW50VG9BZGp1c3QgPSB0aGlzOwogICAgICAg
ICBmb3IgKDsgZWxlbWVudFRvQWRqdXN0OyBlbGVtZW50VG9BZGp1c3QgPSBlbGVtZW50VG9BZGp1
c3QtPnBhcmVudEVsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKGVsZW1lbnRUb0FkanVzdC0+
aGFzQXR0cmlidXRlKGRpckF0dHIpKSB7CisgICAgICAgICAgICBpZiAoZWxlbWVudEFmZmVjdHNE
aXJlY3Rpb25hbGl0eShlbGVtZW50VG9BZGp1c3QpKSB7CiAgICAgICAgICAgICAgICAgZWxlbWVu
dFRvQWRqdXN0LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQpAQCAtOTIxLDcgKzkzMSw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmFk
anVzdERpcmVjdGlvbmFsaXR5SWYKICAgICBpZiAoKCFkb2N1bWVudCgpIHx8IGRvY3VtZW50KCkt
PnJlbmRlcmVyKCkpICYmIGNoaWxkQ291bnREZWx0YSA8IDApIHsKICAgICAgICAgTm9kZSogbm9k
ZSA9IGJlZm9yZUNoYW5nZSA/IGJlZm9yZUNoYW5nZS0+dHJhdmVyc2VOZXh0U2libGluZygpIDog
MDsKICAgICAgICAgZm9yIChpbnQgY291bnRlciA9IDA7IG5vZGUgJiYgY291bnRlciA8IGNoaWxk
Q291bnREZWx0YTsgY291bnRlcisrLCBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0U2libGluZygp
KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChu
b2RlKS0+aGFzQXR0cmlidXRlKGRpckF0dHIpKQorICAgICAgICAgICAgaWYgKG5vZGUtPmlzRWxl
bWVudE5vZGUoKSAmJiBlbGVtZW50QWZmZWN0c0RpcmVjdGlvbmFsaXR5KHRvSFRNTEVsZW1lbnQo
bm9kZSkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBzZXRIYXNE
aXJBdXRvRmxhZ1JlY3Vyc2l2ZWx5KG5vZGUsIGZhbHNlKTsKQEAgLTkzMiwxMyArOTQyLDEzIEBA
IHZvaWQgSFRNTEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFsaXR5SWYKICAgICAgICAgcmV0dXJu
OwogCiAgICAgTm9kZSogb2xkTWFya2VkTm9kZSA9IGJlZm9yZUNoYW5nZSA/IGJlZm9yZUNoYW5n
ZS0+dHJhdmVyc2VOZXh0U2libGluZygpIDogMDsKLSAgICB3aGlsZSAob2xkTWFya2VkTm9kZSAm
JiBvbGRNYXJrZWROb2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgdG9IVE1MRWxlbWVudChvbGRNYXJr
ZWROb2RlKS0+aGFzQXR0cmlidXRlKGRpckF0dHIpKQorICAgIHdoaWxlIChvbGRNYXJrZWROb2Rl
ICYmIG9sZE1hcmtlZE5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBlbGVtZW50QWZmZWN0c0RpcmVj
dGlvbmFsaXR5KHRvSFRNTEVsZW1lbnQob2xkTWFya2VkTm9kZSkpKQogICAgICAgICBvbGRNYXJr
ZWROb2RlID0gb2xkTWFya2VkTm9kZS0+dHJhdmVyc2VOZXh0U2libGluZyh0aGlzKTsKICAgICBp
ZiAob2xkTWFya2VkTm9kZSkKICAgICAgICAgc2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNpdmVseShv
bGRNYXJrZWROb2RlLCBmYWxzZSk7CiAKICAgICBmb3IgKEVsZW1lbnQqIGVsZW1lbnRUb0FkanVz
dCA9IHRoaXM7IGVsZW1lbnRUb0FkanVzdDsgZWxlbWVudFRvQWRqdXN0ID0gZWxlbWVudFRvQWRq
dXN0LT5wYXJlbnRFbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKGVsZW1lbnRUb0FkanVzdC0+aXNI
VE1MRWxlbWVudCgpICYmIGVsZW1lbnRUb0FkanVzdC0+aGFzQXR0cmlidXRlKGRpckF0dHIpKSB7
CisgICAgICAgIGlmIChlbGVtZW50VG9BZGp1c3QtPmlzSFRNTEVsZW1lbnQoKSAmJiBlbGVtZW50
QWZmZWN0c0RpcmVjdGlvbmFsaXR5KHRvSFRNTEVsZW1lbnQoZWxlbWVudFRvQWRqdXN0KSkpIHsK
ICAgICAgICAgICAgIHRvSFRNTEVsZW1lbnQoZWxlbWVudFRvQWRqdXN0KS0+Y2FsY3VsYXRlQW5k
QWRqdXN0RGlyZWN0aW9uYWxpdHkoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24gMTExNDIzKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5
MCw3IEBAIHB1YmxpYzoKIAogICAgIEhUTUxGb3JtRWxlbWVudCogZmluZEZvcm1BbmNlc3Rvcigp
IGNvbnN0OwogCisgICAgYm9vbCBoYXNEaXJlY3Rpb25BdXRvKCkgY29uc3Q7CiAgICAgVGV4dERp
cmVjdGlvbiBkaXJlY3Rpb25hbGl0eUlmaGFzRGlyQXV0b0F0dHJpYnV0ZShib29sJiBpc0F1dG8p
IGNvbnN0OwogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhZ05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhZ05hbWVzLmluCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTUsNyArMTUsNyBAQCBhdWRpbyB3cmFw
cGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uCiBiIGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKIGJhc2UKIGJhc2Vmb250IGludGVyZmFjZU5hbWU9SFRNTEJhc2VGb250RWxlbWVudAotYmRp
IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKK2JkaSBpbnRlcmZhY2VOYW1lPUhUTUxCRElFbGVt
ZW50LCBKU0ludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGJkbyBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50CiBiZ3NvdW5kIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGJpZyBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTE0NjkpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0yMSAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBCREkgZWxlbWVudCBz
aG91bGQgaGF2ZSBkaXI9YXV0byBieSBkZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3Qgd3JpdHRlbiBieSBBaGFyb24gTGFuaW4u
CisKKyAgICAgICAgKiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9iZGktZGlyLWRlZmF1bHQtdG8t
YXV0by1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvaW50ZXJuYXRp
b25hbC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by5odG1sOiBBZGRlZC4KKwogMjAxMi0wMy0yMCAg
WGlhb21laSBKaSAgPHhqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgdmlzdWFsIHdvcmQgbW92
ZW1lbnQ6IGNyYXNoZXMgb24gQ1NTIGdlbmVyYXRlZCBjb250ZW50LgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25h
bC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1
dG8tZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAg
IDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWhhcm9uIExhbmluIiBocmVmPSJtYWlsdG86YWhh
cm9uQGdvb2dsZS5jb20iPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSFRNTDUgYmlk
aSB0ZXN0IFdHIiBocmVmPSJtYWlsdG86aHRtbDViaWRpQGdvb2dsZWdyb3Vwcy5jb20iPgorICAg
IDxzdHlsZT4KKyAgICAgIGJvZHl7CisgICAgICAgIGZvbnQtc2l6ZToyZW07CisgICAgICB9Cisg
ICAgICAuYm94IHsKKyAgICAgICAgYm9yZGVyOiBtZWRpdW0gc29saWQgZ3JheTsKKyAgICAgICAg
d2lkdGg6IDUwMHB4OworICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICBUaGUgdHdvIGJveGVzIGJlbG93IHNob3VsZCBs
b29rIGV4YWN0bHkgdGhlIHNhbWUuCisgICAgPCEtLSBLZXkgdG8gZW50aXRpZXMgdXNlZCBiZWxv
dzoKKyAgICAgICYjeDA1RDA7IC4uLiAmI3gwNUQ1OyAtIFRoZSBmaXJzdCBzaXggSGVicmV3IGxl
dHRlcnMgKHN0cm9uZ2x5IFJUTCkuCisgICAgICAmI3gyMDJEOyAtIFRoZSBMUk8gKGxlZnQtdG8t
cmlnaHQtb3ZlcnJpZGUpIGZvcm1hdHRpbmcgY2hhcmFjdGVyLgorICAgICAgJiN4MjAyQzsgLSBU
aGUgUERGIChwb3AgZGlyZWN0aW9uYWwgZm9ybWF0dGluZykgZm9ybWF0dGluZyBjaGFyYWN0ZXI7
IGNsb3NlcyBMUk8uIC0tPgorICAgIDxkaXYgY2xhc3M9ImJveCI+CisgICAgICA8ZGl2IGRpcj0i
bHRyIj4mI3gyMDJEO1s6KV0sIFsrLSBhICYjeDA1RDE7XSwgW2QgJiN4MDVEMjsgMV0uLi4mI3gy
MDJDOzwvZGl2PgorICAgICAgPGRpdiBkaXI9InJ0bCI+JiN4MjAyRDsuLi5bZCAmI3gwNUQyOyAx
XSAsWystIGEgJiN4MDVEMTtdICxbOildJiN4MjAyQzs8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJib3giPgorICAgICAgPGRpdiBkaXI9Imx0ciI+JiN4MjAyRDtbOildLCBbKy0g
YSAmI3gwNUQxO10sIFtkICYjeDA1RDI7IDFdLi4uJiN4MjAyQzs8L2Rpdj4KKyAgICAgIDxkaXYg
ZGlyPSJydGwiPiYjeDIwMkQ7Li4uW2QgJiN4MDVEMjsgMV0gLFsrLSBhICYjeDA1RDE7XSAsWzop
XSYjeDIwMkM7PC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRv
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
YmRpLWRpci1kZWZhdWx0LXRvLWF1dG8uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRvLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+SFRNTCBUZXN0OiBC
REk6IHBhcmFncmFwaC1sZXZlbCBjb250YWluZXI8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0icmVm
ZXJlbmNlIiBocmVmPSJiZGktYXV0by1kaXItZGVmYXVsdC1yZWYuaHRtbCI+CisgICAgPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJBaGFyb24gTGFuaW4iIGhyZWY9Im1haWx0bzphaGFyb25AZ29v
Z2xlLmNvbSI+CisgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJIVE1MNSBiaWRpIHRlc3Qg
V0ciIGhyZWY9Im1haWx0bzpodG1sNWJpZGlAZ29vZ2xlZ3JvdXBzLmNvbSI+CisgICAgPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0
bWwjdGhlLWJkaS1lbGVtZW50Ij4KKyAgICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Igor
ICAgICAgJ1RoZSBkaXIgZ2xvYmFsIGF0dHJpYnV0ZSBkZWZhdWx0cyB0byBhdXRvIG9uIHRoaXMg
ZWxlbWVudCAoaXQgbmV2ZXIgaW5oZXJpdHMgZnJvbSB0aGUgcGFyZW50CisgICAgICBlbGVtZW50
IGxpa2Ugd2l0aCBvdGhlciBlbGVtZW50cykuJyI+CisgICAgPHN0eWxlPgorICAgICAgYm9keXsK
KyAgICAgICAgZm9udC1zaXplOjJlbTsKKyAgICAgIH0KKyAgICAgIC5ib3ggeworICAgICAgICBi
b3JkZXI6IG1lZGl1bSBzb2xpZCBncmF5OworICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAg
IG1hcmdpbjogMjBweDsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5
PgorICAgIFRoZSB0d28gYm94ZXMgYmVsb3cgc2hvdWxkIGxvb2sgZXhhY3RseSB0aGUgc2FtZS4K
KyAgICA8IS0tIEtleSB0byBlbnRpdGllcyB1c2VkIGJlbG93OgorICAgICAgJiN4MDVEMDsgLi4u
ICYjeDA1RDU7IC0gVGhlIGZpcnN0IHNpeCBIZWJyZXcgbGV0dGVycyAoc3Ryb25nbHkgUlRMKS4K
KyAgICAgICYjeDIwMkQ7IC0gVGhlIExSTyAobGVmdC10by1yaWdodC1vdmVycmlkZSkgZm9ybWF0
dGluZyBjaGFyYWN0ZXIuCisgICAgICAmI3gyMDJDOyAtIFRoZSBQREYgKHBvcCBkaXJlY3Rpb25h
bCBmb3JtYXR0aW5nKSBmb3JtYXR0aW5nIGNoYXJhY3RlcjsgY2xvc2VzIExSTy4gLS0+CisgICAg
PGRpdiBjbGFzcz0iYm94Ij4KKyAgICAgIDwhLS0KKyAgICAgICAgSW4gZWFjaCBESVYgYmVsb3c6
CisgICAgICAgIC0gdGhlIGZpcnN0IEJESSwgaGF2aW5nIG5vIGNoYXJhY3RlcnMgd2l0aCBzdHJv
bmcgZGlyZWN0aW9uLCBzaG91bGQgYmUgTFRSIGJ5IGRlZmF1bHQ7CisgICAgICAgIC0gdGhlIHNl
Y29uZCBCREksIGhhdmluZyBhbiBMVFIgY2hhcmFjdGVyIGZpcnN0LCBzaG91bGQgYmUgTFRSIGJ5
IGRlZmF1bHQ7CisgICAgICAgIC0gdGhlIHRoaXJkIEJESSwgaGF2aW5nIGFuIFJUTCBjaGFyYWN0
ZXIgZmlyc3QsIHNob3VsZCBiZSBSVEwgYnkgZGVmYXVsdC4KKyAgICAgIC0tPgorICAgICAgPGRp
diBkaXI9Imx0ciI+PGJkaT5bOildPC9iZGk+LCA8YmRpPlsrLSBhICYjeDA1RDE7XTwvYmRpPiwg
PGJkaT5bMSAmI3gwNUQyOyBkXTwvYmRpPi4uLjwvZGl2PgorICAgICAgPGRpdiBkaXI9InJ0bCI+
PGJkaT5bOildPC9iZGk+LCA8YmRpPlsrLSBhICYjeDA1RDE7XTwvYmRpPiwgPGJkaT5bMSAmI3gw
NUQyOyBkXTwvYmRpPi4uLjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImJveCI+
CisgICAgICA8ZGl2IGRpcj0ibHRyIj4mI3gyMDJEO1s6KV0sIFsrLSBhICYjeDA1RDE7XSwgW2Qg
JiN4MDVEMjsgMV0uLi4mI3gyMDJDOzwvZGl2PgorICAgICAgPGRpdiBkaXI9InJ0bCI+JiN4MjAy
RDsuLi5bZCAmI3gwNUQyOyAxXSAsWystIGEgJiN4MDVEMTtdICxbOildJiN4MjAyQzs8L2Rpdj4K
KyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133130</attachid>
            <date>2012-03-21 15:46:49 -0700</date>
            <delta_ts>2012-03-21 18:04:09 -0700</delta_ts>
            <desc>Removed the extra change log entry</desc>
            <filename>bug-68773-20120321154648.patch</filename>
            <type>text/plain</type>
            <size>20364</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTYwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTIxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEJESSBlbGVtZW50IHNob3VsZCBo
YXZlIGRpcj1hdXRvIGJ5IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVHJlYXQgYmRpIGVsZW1lbnRzIHdpdGhvdXQgZGlyIGNvbnRlbnQgYXR0
cmlidXRlIGFzIGlmIHRoZXkgaGF2ZSBkaXI9YXV0byBwZXIgc3BlYzoKKyAgICAgICAgaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGV4
dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYmRpLWVsZW1lbnQKKworICAgICAgICBUaGUgcGF0
Y2ggdHJpZXMgdG8gZW5jYXBzdWxhdGUgdGhlIGxvZ2ljIHRvIGxvb2sgZm9yIGRpciBjb250ZW50
IGF0dHJpYnV0ZSBhbmQgZGlyPWF1dG8uCisKKyAgICAgICAgSXQgYWxzbyBhZGRzIEhUTUxCRElF
bGVtZW50IGludGVyZmFjZSAoYmluZGluZyByZW1haW5zIHRvIHVzZSBIVE1MRWxlbWVudCkgdG8g
c2V0CisgICAgICAgIHNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSBmbGFnIHRydWUg
YnkgZGVmYXVsdCwgd2hpY2ggaXMgdXNlZCBieSBmdW5jdGlvbnMgbGlrZQorICAgICAgICBkaXJl
Y3Rpb25hbGl0eUlmaGFzRGlyQXV0b0F0dHJpYnV0ZSB0byBsb29rIGZvciBlbGVtZW50cyB3aXRo
IGRpcj1hdXRvLiBTaW5jZSBkaXI9YXV0by1uZXNzIG9mIGJkaQorICAgICAgICBlbGVtZW50cyBj
YW4gYmUgb3ZlcnJpZGRlbiBieSBkaXIgY29udGVudCBhdHRyaWJ1dGUsIHdlIG11c3QgY2hhbmdl
IGFuZCBvbmx5IGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZS4KKworICAgICAgICBUZXN0czogZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0
LXRvLWF1dG8uaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxCRElFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChIVE1MQkRJRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
QkRJRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCRElFbGVtZW50OjpI
VE1MQkRJRWxlbWVudCk6IFNldHMgc2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlIHRv
IHRydWUgYmVjYXVzZQorICAgICAgICBiZGkgZWxlbWVudHMgYXJlIHRyZWF0ZWQgYXMgaWYgaXQg
aGFzIGRpcj1hdXRvIGJ5IGRlZmF1bHQuCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjplbGVtZW50QWZmZWN0c0RpcmVjdGlvbmFsaXR5KTogQWRkZWQu
IENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgaXMgYmRpIG9yCisgICAgICAgIGhhcyBk
aXIgY29udGVudCBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZlbHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6Omhhc0RpcmVjdGlvbkF1dG8pOiBBZGRlZC4gQ2hlY2tzIGlmIHRoZSBzcGVjaWZp
ZWQgZWxlbWVudCBzaG91bGQgYmUgdHJlYXRlZAorICAgICAgICBhcyBpZiBpdCBoYXMgZGlyPWF1
dG8gKGJkaSBvciBlbGVtZW50IHdpdGggZGlyPWF1dG8pLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OmRpcmVjdGlvbmFsaXR5SWZoYXNEaXJBdXRvQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxFbGVtZW50OjphZGp1c3REaXJlY3Rpb25hbGl0eUlmTmVlZGVkQWZ0ZXJD
aGlsZEF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmFk
anVzdERpcmVjdGlvbmFsaXR5SWZOZWVkZWRBZnRlckNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAg
ICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAoSFRNTEVsZW1lbnQpOgorICAgICAgICAq
IGh0bWwvSFRNTFRhZ05hbWVzLmluOiBVc2UgSFRNTEJESUVsZW1lbnQgaW5zdGVhZCBvZiBIVE1M
RWxlbWVudCBmb3IgY29uc3RydWN0aW5nIGJkaSBlbGVtZW50CisgICAgICAgIHRvIHNldCBzZWxm
T3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUgdHJ1ZSBidXQgc3RpbGwgdXNlIEhUTUxFbGVt
ZW50IGZvciBiaW5kaW5nLgorCiAyMDEyLTAzLTIxICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZWFscGhhYmV0aXplIGFib3V0IHdlYmF1ZGlvIG1vdmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTExNDIzKQorKysg
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjIx
Niw2ICsyMjE2LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCYXNlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVs
ZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaCBc
CisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJv
ZHlFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAgXApJ
bmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xODQ4LDYgKzE4NDgsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBodG1sL0hUTUxCYXNlRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxCYXNlRm9udEVsZW1l
bnQuaCBcCiAgICAgaHRtbC9IVE1MQm9keUVsZW1lbnQuaCBcCisgICAgaHRtbC9IVE1MQkRJRWxl
bWVudC5oIFwKICAgICBodG1sL0hUTUxCUkVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxDYW52YXNFbGVtZW50LmggXApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CSh3b3JraW5nIGNvcHkpCkBAIC01MzI3LDYgKzUzMjcsNyBAQAogICAgICAgICAgICAgJ2h0bWwv
SFRNTEFyZWFFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oJywKKyAgICAgICAgICAg
ICdodG1sL0hUTUxCRElFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEJSRWxlbWVu
dC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEJSRWxlbWVudC5oJywKICAgICAgICAgICAg
ICdodG1sL0hUTUxCYXNlRWxlbWVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDExMTQyMykKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01
NzY3NCw2ICs1NzY3NCwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxodG1sXEhUTUxCRElFbGVtZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEJvZHlFbGVtZW50LmNwcCIK
IAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMTE0MjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTM1ODQsNiArMzU4NCw3IEBACiAJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFF
QSAvKiBOb3RJbXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwRkIx
OTExNDBEQjU3OTAwMjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMEZCMThGMTQwREI1NzkwMDIyNTg4RiAv
KiBIVFRQVmFsaWRhdGlvbi5jcHAgKi87IH07CiAJCTlCMEZCMTkyMTQwREI1NzkwMDIyNTg4RiAv
KiBIVFRQVmFsaWRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUIwRkIxOTAxNDBEQjU3OTAwMjI1ODhGIC8qIEhUVFBWYWxpZGF0aW9uLmggKi87
IH07CisJCTlCMjRERThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNERFOEMxNTE5NEI5
NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggKi87IH07CiAJCTlCMkI3QUMxMTUwOTg1MEEw
MDg5MzJDQyAvKiBNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyRjdDRjcxNDU2MjEyMDAwN0Y4QjUwIC8qIE1pY3Jv
RGF0YUl0ZW1WYWx1ZS5jcHAgKi87IH07CiAJCTlCMkQ4QTc5MTQ5OTdDQ0YwMEVDRUYzRSAvKiBV
bmRvU3RlcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIzMkNEQTkxM0RGN0ZBOTAwRjM0RDEz
IC8qIFJlbmRlcmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9u
LmggKi87IH07CkBAIC0xMDU1OSw2ICsxMDU2MCw3IEBACiAJCTk4RUIxRjk0MTMxM0ZFMDUwMEQw
RTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOb3RJbXBsZW1lbnRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjBGQjE4
RjE0MERCNTc5MDAyMjU4OEYgLyogSFRUUFZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUFZhbGlkYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5QjBGQjE5MDE0MERCNTc5MDAyMjU4OEYgLyogSFRUUFZhbGlkYXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRUUFZhbGlkYXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8qIEhU
TUxCRElFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxCRElF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMkQ4QTc4MTQ5OTdDQ0Yw
MEVDRUYzRSAvKiBVbmRvU3RlcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
bmRvU3RlcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjJGN0NGNzE0NTYyMTIw
MDA3RjhCNTAgLyogTWljcm9EYXRhSXRlbVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1pY3JvRGF0YUl0ZW1WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCMkY3Q0Y4MTQ1NjIxMjAwMDdGOEI1MCAvKiBNaWNyb0RhdGFJdGVtVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWljcm9EYXRhSXRlbVZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjc2OSw2ICsxNjc3MSw3IEBACiAJ
CQkJQThERjNGQ0IwOTdGQTBGQjAwNTI5ODFCIC8qIEhUTUxCYXNlRm9udEVsZW1lbnQuY3BwICov
LAogCQkJCUE4REYzRkNBMDk3RkEwRkIwMDUyOTgxQiAvKiBIVE1MQmFzZUZvbnRFbGVtZW50Lmgg
Ki8sCiAJCQkJMUFFMkE5RjEwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCYXNlRm9udEVsZW1lbnQu
aWRsICovLAorCQkJCTlCMjRERThDMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5o
ICovLAogCQkJCUE4NzFERTFEMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuY3Bw
ICovLAogCQkJCUE4NzFERTIwMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAq
LywKIAkJCQkxQUUyQTlGMjBBMUNEQTU3MDBCNDJCMjUgLyogSFRNTEJvZHlFbGVtZW50LmlkbCAq
LywKQEAgLTIyNjg3LDYgKzIyNjkwLDcgQEAKIAkJCQlFNDQ2MTNBMjBDRDYzMzEwMDBGQURBNzUg
LyogSFRNTEF1ZGlvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURDMUYwQTE1MjA1
NzAwQjEyQTY4IC8qIEhUTUxCYXNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThERjNG
RDIwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxCYXNlRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTlCMjRERThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTg3MURFMkMwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxCb2R5RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY3QUEwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxC
UkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUQyMDk3Mzc0RjYwMEQ3NDQ2MyAv
KiBIVE1MQnV0dG9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxMTE0MjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNjcsNyAr
MTM2Nyw3IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2FuU2hhcmVTdHlsZVdpdGgKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZWxl
bWVudC0+ZmFzdEdldEF0dHJpYnV0ZShkaXJBdHRyKSwgImF1dG8iKSB8fCBlcXVhbElnbm9yaW5n
Q2FzZShtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoZGlyQXR0ciksICJhdXRvIikpCisgICAg
aWYgKChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgdG9IVE1MRWxlbWVudChlbGVtZW50KS0+
aGFzRGlyZWN0aW9uQXV0bygpKSB8fCAobV9lbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgdG9I
VE1MRWxlbWVudChtX2VsZW1lbnQpLT5oYXNEaXJlY3Rpb25BdXRvKCkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAoZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBtX2VsZW1lbnQtPmdl
dEF0dHJpYnV0ZShjbGFzc0F0dHIpICE9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShjbGFzc0F0dHIp
KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJESUVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJESUVsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBIVE1MQkRJRWxlbWVudF9oCisjZGVmaW5lIEhUTUxC
RElFbGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgSFRNTEJESUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxCRElFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQkRJRWxlbWVudChuYW1lLCBkb2N1bWVudCkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBIVE1MQkRJRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgICAgIDogSFRNTEVsZW1lbnQobmFtZSwgZG9j
dW1lbnQpCisgICAgeworICAgICAgICAvLyBGSVhNRTogUmVuYW1lIHNldFNlbGZPckFuY2VzdG9y
SGFzRGlyQXV0b0F0dHJpYnV0ZSB0byByZWZsZWN0IHRoZSBmYWN0IGJkaSBhbHNvIHVzZXMgdGhp
cyBmbGFnLgorICAgICAgICBzZXRTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUodHJ1
ZSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSFRNTEJESUVsZW1lbnQ6JXNcbiIsIHNlbGZP
ckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSgpID8gInRydWUiIDogImZhbHNlIik7CisgICAg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAkocmV2aXNpb24gMTExNDIzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5NSw2ICs3OTUsMTEgQEAgSFRNTEZv
cm1FbGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcgogICAgIHJldHVybiBmaW5kRm9ybUFu
Y2VzdG9yKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBlbGVtZW50QWZmZWN0c0RpcmVjdGlv
bmFsaXR5KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGVsZW1lbnQtPmhh
c1RhZ05hbWUoYmRpVGFnKSB8fCBlbGVtZW50LT5oYXNBdHRyaWJ1dGUoZGlyQXR0cik7Cit9CisK
IHN0YXRpYyB2b2lkIHNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZlbHkoTm9kZSogZmlyc3ROb2Rl
LCBib29sIGZsYWcsIE5vZGUqIGxhc3ROb2RlID0gMCkKIHsKICAgICBmaXJzdE5vZGUtPnNldFNl
bGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZShmbGFnKTsKQEAgLTgwNSw3ICs4MTAsNyBA
QCBzdGF0aWMgdm9pZCBzZXRIYXNEaXJBdXRvRmxhZ1JlY3Vyc2l2ZWx5CiAgICAgICAgIGlmIChu
b2RlLT5zZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRyaWJ1dGUoKSA9PSBmbGFnKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgdG9F
bGVtZW50KG5vZGUpLT5oYXNBdHRyaWJ1dGUoZGlyQXR0cikpIHsKKyAgICAgICAgaWYgKG5vZGUt
PmlzSFRNTEVsZW1lbnQoKSAmJiBlbGVtZW50QWZmZWN0c0RpcmVjdGlvbmFsaXR5KHRvSFRNTEVs
ZW1lbnQobm9kZSkpKSB7CiAgICAgICAgICAgICBpZiAobm9kZSA9PSBsYXN0Tm9kZSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0
U2libGluZyhmaXJzdE5vZGUpOwpAQCAtODI0LDkgKzgyOSwxNCBAQCB2b2lkIEhUTUxFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjCiAgICAgYWRqdXN0RGlyZWN0aW9uYWxpdHlJZk5lZWRl
ZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKGJlZm9yZUNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0K
IAorYm9vbCBIVE1MRWxlbWVudDo6aGFzRGlyZWN0aW9uQXV0bygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGhhc1RhZ05hbWUoYmRpVGFnKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShmYXN0R2V0QXR0cmli
dXRlKGRpckF0dHIpLCAiYXV0byIpOworfQorCiBUZXh0RGlyZWN0aW9uIEhUTUxFbGVtZW50Ojpk
aXJlY3Rpb25hbGl0eUlmaGFzRGlyQXV0b0F0dHJpYnV0ZShib29sJiBpc0F1dG8pIGNvbnN0CiB7
Ci0gICAgaWYgKCEoc2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvQXR0cmlidXRlKCkgJiYgZXF1YWxJ
Z25vcmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGRpckF0dHIpLCAiYXV0byIpKSkgeworICAgIGlmICgh
KHNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSgpICYmIGhhc0RpcmVjdGlvbkF1dG8o
KSkpIHsKICAgICAgICAgaXNBdXRvID0gZmFsc2U7CiAgICAgICAgIHJldHVybiBMVFI7CiAgICAg
fQpAQCAtODk5LDcgKzkwOSw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFs
aXR5SWYKICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpICYmIHJlbmRl
cmVyKCktPnN0eWxlKCktPmRpcmVjdGlvbigpICE9IHRleHREaXJlY3Rpb24pIHsKICAgICAgICAg
RWxlbWVudCogZWxlbWVudFRvQWRqdXN0ID0gdGhpczsKICAgICAgICAgZm9yICg7IGVsZW1lbnRU
b0FkanVzdDsgZWxlbWVudFRvQWRqdXN0ID0gZWxlbWVudFRvQWRqdXN0LT5wYXJlbnRFbGVtZW50
KCkpIHsKLSAgICAgICAgICAgIGlmIChlbGVtZW50VG9BZGp1c3QtPmhhc0F0dHJpYnV0ZShkaXJB
dHRyKSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnRBZmZlY3RzRGlyZWN0aW9uYWxpdHkoZWxl
bWVudFRvQWRqdXN0KSkgewogICAgICAgICAgICAgICAgIGVsZW1lbnRUb0FkanVzdC0+c2V0TmVl
ZHNTdHlsZVJlY2FsYygpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
QEAgLTkyMSw3ICs5MzEsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjphZGp1c3REaXJlY3Rpb25hbGl0
eUlmCiAgICAgaWYgKCghZG9jdW1lbnQoKSB8fCBkb2N1bWVudCgpLT5yZW5kZXJlcigpKSAmJiBj
aGlsZENvdW50RGVsdGEgPCAwKSB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBiZWZvcmVDaGFuZ2Ug
PyBiZWZvcmVDaGFuZ2UtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKSA6IDA7CiAgICAgICAgIGZvciAo
aW50IGNvdW50ZXIgPSAwOyBub2RlICYmIGNvdW50ZXIgPCBjaGlsZENvdW50RGVsdGE7IGNvdW50
ZXIrKywgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAg
aWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc0F0dHJpYnV0
ZShkaXJBdHRyKSkKKyAgICAgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgZWxl
bWVudEFmZmVjdHNEaXJlY3Rpb25hbGl0eSh0b0hUTUxFbGVtZW50KG5vZGUpKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgc2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNp
dmVseShub2RlLCBmYWxzZSk7CkBAIC05MzIsMTMgKzk0MiwxMyBAQCB2b2lkIEhUTUxFbGVtZW50
OjphZGp1c3REaXJlY3Rpb25hbGl0eUlmCiAgICAgICAgIHJldHVybjsKIAogICAgIE5vZGUqIG9s
ZE1hcmtlZE5vZGUgPSBiZWZvcmVDaGFuZ2UgPyBiZWZvcmVDaGFuZ2UtPnRyYXZlcnNlTmV4dFNp
YmxpbmcoKSA6IDA7Ci0gICAgd2hpbGUgKG9sZE1hcmtlZE5vZGUgJiYgb2xkTWFya2VkTm9kZS0+
aXNIVE1MRWxlbWVudCgpICYmIHRvSFRNTEVsZW1lbnQob2xkTWFya2VkTm9kZSktPmhhc0F0dHJp
YnV0ZShkaXJBdHRyKSkKKyAgICB3aGlsZSAob2xkTWFya2VkTm9kZSAmJiBvbGRNYXJrZWROb2Rl
LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25hbGl0eSh0b0hUTUxF
bGVtZW50KG9sZE1hcmtlZE5vZGUpKSkKICAgICAgICAgb2xkTWFya2VkTm9kZSA9IG9sZE1hcmtl
ZE5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcodGhpcyk7CiAgICAgaWYgKG9sZE1hcmtlZE5vZGUp
CiAgICAgICAgIHNldEhhc0RpckF1dG9GbGFnUmVjdXJzaXZlbHkob2xkTWFya2VkTm9kZSwgZmFs
c2UpOwogCiAgICAgZm9yIChFbGVtZW50KiBlbGVtZW50VG9BZGp1c3QgPSB0aGlzOyBlbGVtZW50
VG9BZGp1c3Q7IGVsZW1lbnRUb0FkanVzdCA9IGVsZW1lbnRUb0FkanVzdC0+cGFyZW50RWxlbWVu
dCgpKSB7Ci0gICAgICAgIGlmIChlbGVtZW50VG9BZGp1c3QtPmlzSFRNTEVsZW1lbnQoKSAmJiBl
bGVtZW50VG9BZGp1c3QtPmhhc0F0dHJpYnV0ZShkaXJBdHRyKSkgeworICAgICAgICBpZiAoZWxl
bWVudFRvQWRqdXN0LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVudEFmZmVjdHNEaXJlY3Rpb25h
bGl0eSh0b0hUTUxFbGVtZW50KGVsZW1lbnRUb0FkanVzdCkpKSB7CiAgICAgICAgICAgICB0b0hU
TUxFbGVtZW50KGVsZW1lbnRUb0FkanVzdCktPmNhbGN1bGF0ZUFuZEFkanVzdERpcmVjdGlvbmFs
aXR5KCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDExMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAK
ICAgICBIVE1MRm9ybUVsZW1lbnQqIGZpbmRGb3JtQW5jZXN0b3IoKSBjb25zdDsKIAorICAgIGJv
b2wgaGFzRGlyZWN0aW9uQXV0bygpIGNvbnN0OwogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9u
YWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUoYm9vbCYgaXNBdXRvKSBjb25zdDsKIAogI2lmIEVO
QUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgkocmV2
aXNpb24gMTExNDIzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgYXVkaW8gd3JhcHBlck9ubHlJZk1lZGlhSXNB
dmFpbGFibGUsIGNvbgogYiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBiYXNlCiBiYXNlZm9u
dCBpbnRlcmZhY2VOYW1lPUhUTUxCYXNlRm9udEVsZW1lbnQKLWJkaSBpbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50CitiZGkgaW50ZXJmYWNlTmFtZT1IVE1MQkRJRWxlbWVudCwgSlNJbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBiZG8gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogYmdzb3VuZCBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBiaWcgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudApJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMTExNDY5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMjEgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQkRJIGVsZW1lbnQgc2hvdWxkIGhhdmUgZGlyPWF1
dG8gYnkgZGVmYXVsdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njg3NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSB0ZXN0IHdyaXR0ZW4gYnkgQWhhcm9uIExhbmluLgorCisgICAgICAgICogZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0LXRvLWF1dG8tZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZh
dWx0LXRvLWF1dG8uaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMjAgIFhpYW9tZWkgSmkgIDx4amlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIHZpc3VhbCB3b3JkIG1vdmVtZW50OiBjcmFzaGVzIG9u
IENTUyBnZW5lcmF0ZWQgY29udGVudC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRvLWV4cGVjdGVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmRpLWRpci1kZWZhdWx0
LXRvLWF1dG8tZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
dGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10by1hdXRvLWV4cGVjdGVkLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9IkFoYXJvbiBMYW5pbiIgaHJlZj0ibWFpbHRvOmFoYXJvbkBnb29nbGUuY29tIj4K
KyAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkhUTUw1IGJpZGkgdGVzdCBXRyIgaHJlZj0i
bWFpbHRvOmh0bWw1YmlkaUBnb29nbGVncm91cHMuY29tIj4KKyAgICA8c3R5bGU+CisgICAgICBi
b2R5eworICAgICAgICBmb250LXNpemU6MmVtOworICAgICAgfQorICAgICAgLmJveCB7CisgICAg
ICAgIGJvcmRlcjogbWVkaXVtIHNvbGlkIGdyYXk7CisgICAgICAgIHdpZHRoOiA1MDBweDsKKyAg
ICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAg
PGJvZHk+CisgICAgVGhlIHR3byBib3hlcyBiZWxvdyBzaG91bGQgbG9vayBleGFjdGx5IHRoZSBz
YW1lLgorICAgIDwhLS0gS2V5IHRvIGVudGl0aWVzIHVzZWQgYmVsb3c6CisgICAgICAmI3gwNUQw
OyAuLi4gJiN4MDVENTsgLSBUaGUgZmlyc3Qgc2l4IEhlYnJldyBsZXR0ZXJzIChzdHJvbmdseSBS
VEwpLgorICAgICAgJiN4MjAyRDsgLSBUaGUgTFJPIChsZWZ0LXRvLXJpZ2h0LW92ZXJyaWRlKSBm
b3JtYXR0aW5nIGNoYXJhY3Rlci4KKyAgICAgICYjeDIwMkM7IC0gVGhlIFBERiAocG9wIGRpcmVj
dGlvbmFsIGZvcm1hdHRpbmcpIGZvcm1hdHRpbmcgY2hhcmFjdGVyOyBjbG9zZXMgTFJPLiAtLT4K
KyAgICA8ZGl2IGNsYXNzPSJib3giPgorICAgICAgPGRpdiBkaXI9Imx0ciI+JiN4MjAyRDtbOild
LCBbKy0gYSAmI3gwNUQxO10sIFtkICYjeDA1RDI7IDFdLi4uJiN4MjAyQzs8L2Rpdj4KKyAgICAg
IDxkaXYgZGlyPSJydGwiPiYjeDIwMkQ7Li4uW2QgJiN4MDVEMjsgMV0gLFsrLSBhICYjeDA1RDE7
XSAsWzopXSYjeDIwMkM7PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iYm94Ij4K
KyAgICAgIDxkaXYgZGlyPSJsdHIiPiYjeDIwMkQ7WzopXSwgWystIGEgJiN4MDVEMTtdLCBbZCAm
I3gwNUQyOyAxXS4uLiYjeDIwMkM7PC9kaXY+CisgICAgICA8ZGl2IGRpcj0icnRsIj4mI3gyMDJE
Oy4uLltkICYjeDA1RDI7IDFdICxbKy0gYSAmI3gwNUQxO10gLFs6KV0mI3gyMDJDOzwvZGl2Pgor
ICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvaW50ZXJuYXRpb25hbC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2JkaS1kaXItZGVmYXVsdC10
by1hdXRvLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9iZGktZGlyLWRlZmF1bHQtdG8tYXV0by5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkhUTUwgVGVzdDogQkRJOiBwYXJhZ3JhcGgtbGV2
ZWwgY29udGFpbmVyPC90aXRsZT4KKyAgICA8bGluayByZWw9InJlZmVyZW5jZSIgaHJlZj0iYmRp
LWF1dG8tZGlyLWRlZmF1bHQtcmVmLmh0bWwiPgorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iQWhhcm9uIExhbmluIiBocmVmPSJtYWlsdG86YWhhcm9uQGdvb2dsZS5jb20iPgorICAgIDxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSFRNTDUgYmlkaSB0ZXN0IFdHIiBocmVmPSJtYWlsdG86
aHRtbDViaWRpQGdvb2dsZWdyb3Vwcy5jb20iPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1iZGktZWxlbWVu
dCI+CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSIKKyAgICAgICdUaGUgZGlyIGds
b2JhbCBhdHRyaWJ1dGUgZGVmYXVsdHMgdG8gYXV0byBvbiB0aGlzIGVsZW1lbnQgKGl0IG5ldmVy
IGluaGVyaXRzIGZyb20gdGhlIHBhcmVudAorICAgICAgZWxlbWVudCBsaWtlIHdpdGggb3RoZXIg
ZWxlbWVudHMpLiciPgorICAgIDxzdHlsZT4KKyAgICAgIGJvZHl7CisgICAgICAgIGZvbnQtc2l6
ZToyZW07CisgICAgICB9CisgICAgICAuYm94IHsKKyAgICAgICAgYm9yZGVyOiBtZWRpdW0gc29s
aWQgZ3JheTsKKyAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICBtYXJnaW46IDIwcHg7Cisg
ICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICBUaGUgdHdvIGJv
eGVzIGJlbG93IHNob3VsZCBsb29rIGV4YWN0bHkgdGhlIHNhbWUuCisgICAgPCEtLSBLZXkgdG8g
ZW50aXRpZXMgdXNlZCBiZWxvdzoKKyAgICAgICYjeDA1RDA7IC4uLiAmI3gwNUQ1OyAtIFRoZSBm
aXJzdCBzaXggSGVicmV3IGxldHRlcnMgKHN0cm9uZ2x5IFJUTCkuCisgICAgICAmI3gyMDJEOyAt
IFRoZSBMUk8gKGxlZnQtdG8tcmlnaHQtb3ZlcnJpZGUpIGZvcm1hdHRpbmcgY2hhcmFjdGVyLgor
ICAgICAgJiN4MjAyQzsgLSBUaGUgUERGIChwb3AgZGlyZWN0aW9uYWwgZm9ybWF0dGluZykgZm9y
bWF0dGluZyBjaGFyYWN0ZXI7IGNsb3NlcyBMUk8uIC0tPgorICAgIDxkaXYgY2xhc3M9ImJveCI+
CisgICAgICA8IS0tCisgICAgICAgIEluIGVhY2ggRElWIGJlbG93OgorICAgICAgICAtIHRoZSBm
aXJzdCBCREksIGhhdmluZyBubyBjaGFyYWN0ZXJzIHdpdGggc3Ryb25nIGRpcmVjdGlvbiwgc2hv
dWxkIGJlIExUUiBieSBkZWZhdWx0OworICAgICAgICAtIHRoZSBzZWNvbmQgQkRJLCBoYXZpbmcg
YW4gTFRSIGNoYXJhY3RlciBmaXJzdCwgc2hvdWxkIGJlIExUUiBieSBkZWZhdWx0OworICAgICAg
ICAtIHRoZSB0aGlyZCBCREksIGhhdmluZyBhbiBSVEwgY2hhcmFjdGVyIGZpcnN0LCBzaG91bGQg
YmUgUlRMIGJ5IGRlZmF1bHQuCisgICAgICAtLT4KKyAgICAgIDxkaXYgZGlyPSJsdHIiPjxiZGk+
WzopXTwvYmRpPiwgPGJkaT5bKy0gYSAmI3gwNUQxO108L2JkaT4sIDxiZGk+WzEgJiN4MDVEMjsg
ZF08L2JkaT4uLi48L2Rpdj4KKyAgICAgIDxkaXYgZGlyPSJydGwiPjxiZGk+WzopXTwvYmRpPiwg
PGJkaT5bKy0gYSAmI3gwNUQxO108L2JkaT4sIDxiZGk+WzEgJiN4MDVEMjsgZF08L2JkaT4uLi48
L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJib3giPgorICAgICAgPGRpdiBkaXI9
Imx0ciI+JiN4MjAyRDtbOildLCBbKy0gYSAmI3gwNUQxO10sIFtkICYjeDA1RDI7IDFdLi4uJiN4
MjAyQzs8L2Rpdj4KKyAgICAgIDxkaXYgZGlyPSJydGwiPiYjeDIwMkQ7Li4uW2QgJiN4MDVEMjsg
MV0gLFsrLSBhICYjeDA1RDE7XSAsWzopXSYjeDIwMkM7PC9kaXY+CisgICAgPC9kaXY+CisgIDwv
Ym9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="137022"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="137043"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>