<?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>101332</bug_id>
          
          <creation_ts>2012-11-06 04:09:09 -0800</creation_ts>
          <short_desc>[CSS Regions] Add Region info for RootLineBoxes and pack the pagination data</short_desc>
          <delta_ts>2012-11-26 12:01:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>AdobeTracked</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>102140</dependson>
          <blocked>95559</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrei Bucur">abucur</reporter>
          <assigned_to name="Andrei Bucur">abucur</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>mihnea</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>759512</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-06 04:09:09 -0800</bug_when>
    <thetext>Pagination data is held on the RootInlineBoxes even though it&apos;s not a pagination layout. Currently, it&apos;s about the m_paginatedLineWidth and the m_paginationStrut. A new one is necessary, the current Region, that can be used to detect when lines move between regions during layout.
The pagination data should be packed and allocated only during a pagination layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760638</commentid>
    <comment_count>1</comment_count>
      <attachid>172784</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-07 06:32:33 -0800</bug_when>
    <thetext>Created attachment 172784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761124</commentid>
    <comment_count>2</comment_count>
      <attachid>172784</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-07 15:44:16 -0800</bug_when>
    <thetext>Comment on attachment 172784
Patch

Ooops, the patch doesn&apos;t cover all the cases (block shifted) to update the containing region. Don&apos;t know how I missed that...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762201</commentid>
    <comment_count>3</comment_count>
      <attachid>173122</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-08 14:45:51 -0800</bug_when>
    <thetext>Created attachment 173122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762207</commentid>
    <comment_count>4</comment_count>
      <attachid>173122</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-08 14:52:06 -0800</bug_when>
    <thetext>Comment on attachment 173122
Patch

Attachment 173122 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14778123</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762210</commentid>
    <comment_count>5</comment_count>
      <attachid>173122</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-08 14:52:32 -0800</bug_when>
    <thetext>Comment on attachment 173122
Patch

Attachment 173122 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14760968</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762234</commentid>
    <comment_count>6</comment_count>
      <attachid>173122</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 15:19:06 -0800</bug_when>
    <thetext>Comment on attachment 173122
Patch

Attachment 173122 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14759980</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762266</commentid>
    <comment_count>7</comment_count>
      <attachid>173122</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 15:52:08 -0800</bug_when>
    <thetext>Comment on attachment 173122
Patch

Attachment 173122 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14759988</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762270</commentid>
    <comment_count>8</comment_count>
      <attachid>173122</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-08 15:55:38 -0800</bug_when>
    <thetext>Comment on attachment 173122
Patch

Attachment 173122 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14763796</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762497</commentid>
    <comment_count>9</comment_count>
      <attachid>173122</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-08 20:46:26 -0800</bug_when>
    <thetext>Comment on attachment 173122
Patch

Attachment 173122 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14762967</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762578</commentid>
    <comment_count>10</comment_count>
      <attachid>173122</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 22:36:29 -0800</bug_when>
    <thetext>Comment on attachment 173122
Patch

Attachment 173122 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14779236</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762723</commentid>
    <comment_count>11</comment_count>
      <attachid>173242</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-09 01:57:42 -0800</bug_when>
    <thetext>Created attachment 173242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762779</commentid>
    <comment_count>12</comment_count>
      <attachid>173242</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-11-09 03:11:34 -0800</bug_when>
    <thetext>Comment on attachment 173242
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        styling for layout properties.

I would mention here the font-size for instance, to make it more clear and to distinguish from region styling paint properties like color, which are supported right now.

&gt; Source/WebCore/rendering/RootInlineBox.h:205
&gt; +

I would modify this function to return a reference to the m_fragmentationData and use the returned reference to set struct members.

&gt; Source/WebCore/rendering/RootInlineBox.h:222
&gt; +    public:

Do you need to specify public here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762793</commentid>
    <comment_count>13</comment_count>
      <attachid>173242</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-09 03:25:53 -0800</bug_when>
    <thetext>Comment on attachment 173242
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        styling for layout properties.
&gt; 
&gt; I would mention here the font-size for instance, to make it more clear and to distinguish from region styling paint properties like color, which are supported right now.

Good point, I&apos;ll update the patch.

&gt;&gt; Source/WebCore/rendering/RootInlineBox.h:205
&gt;&gt; +
&gt; 
&gt; I would modify this function to return a reference to the m_fragmentationData and use the returned reference to set struct members.

Will do.

&gt;&gt; Source/WebCore/rendering/RootInlineBox.h:222
&gt;&gt; +    public:
&gt; 
&gt; Do you need to specify public here?

Yes, the WTF_MAKE_FAST_ALLOCATED macro starts a private declarations context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762933</commentid>
    <comment_count>14</comment_count>
      <attachid>173289</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-09 06:10:29 -0800</bug_when>
    <thetext>Created attachment 173289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766022</commentid>
    <comment_count>15</comment_count>
      <attachid>173289</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-11-13 13:55:48 -0800</bug_when>
    <thetext>Comment on attachment 173289
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766041</commentid>
    <comment_count>16</comment_count>
      <attachid>173289</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 14:14:39 -0800</bug_when>
    <thetext>Comment on attachment 173289
Patch

Clearing flags on attachment: 173289

Committed r134482: &lt;http://trac.webkit.org/changeset/134482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766042</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 14:14:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766092</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 15:05:10 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 102140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767992</commentid>
    <comment_count>19</comment_count>
      <attachid>174417</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-15 05:49:59 -0800</bug_when>
    <thetext>Created attachment 174417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768036</commentid>
    <comment_count>20</comment_count>
      <attachid>174417</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-15 07:06:00 -0800</bug_when>
    <thetext>Comment on attachment 174417
Patch

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

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768422</commentid>
    <comment_count>21</comment_count>
      <attachid>174417</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-11-15 13:09:21 -0800</bug_when>
    <thetext>Comment on attachment 174417
Patch

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

r-

&gt; Source/WebCore/rendering/RenderBlock.cpp:7254
&gt; +    // Just bail if we still don&apos;t have a region.
&gt; +    if (!rootBox-&gt;hasContainingRegion() &amp;&amp; !currentRegion)
&gt; +        return false;
&gt; +    // Just bail if the region didn&apos;t change.
&gt; +    if (rootBox-&gt;hasContainingRegion() &amp;&amp; rootBox-&gt;containingRegion() == currentRegion)
&gt; +        return false;

Isn&apos;t all this just equivalent to:

if (rootBox-&gt;containingRegion() == currentRegion)
    return false;

?

I&apos;m not really sure what all the extra code is buying you. If both regions are null, the == check will cause you to bail anyway, and you won&apos;t ever go from null to non-null or vice versa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768442</commentid>
    <comment_count>22</comment_count>
      <attachid>174417</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-15 13:42:47 -0800</bug_when>
    <thetext>Comment on attachment 174417
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:7254
&gt;&gt; +        return false;
&gt; 
&gt; Isn&apos;t all this just equivalent to:
&gt; 
&gt; if (rootBox-&gt;containingRegion() == currentRegion)
&gt;     return false;
&gt; 
&gt; ?
&gt; 
&gt; I&apos;m not really sure what all the extra code is buying you. If both regions are null, the == check will cause you to bail anyway, and you won&apos;t ever go from null to non-null or vice versa.

The idea is to be able to reset the layout in a situation like this one:
1. A flow with 1000 regions is laid out.
2. All the regions are deleted
3. A layout is triggered - at this point all the RootInlineBoxes have a BAD containing region attached to them.
There are two options:
- The one I&apos;ve chosen in this patch - write a sanitize() function that detects such invalid regions and sets their value to 0.
- Define a reference value for invalid Regions - create a static RenderRegion* = -1 or just a static RenderRegion and set the value of the invalid containing region to the address of the dummy Region. - I think this option is worse because there will be two special values that need to be handled - 0 and the reference value
4. Solve the invalid region situation with one of the options above.
5. If going with the first option, containingRegion == currentRegion is not enough to determine if a line is invalid. containingRegion can be a sanitized 0 value while currentRegion just means there are no more regions in the flow. So the lines may need to be invalidated because they were laid out in a region - the hasContainingRegion() flag needs to be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768450</commentid>
    <comment_count>23</comment_count>
      <attachid>174417</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2012-11-15 13:49:46 -0800</bug_when>
    <thetext>Comment on attachment 174417
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:7254
&gt;&gt;&gt; +        return false;
&gt;&gt; 
&gt;&gt; Isn&apos;t all this just equivalent to:
&gt;&gt; 
&gt;&gt; if (rootBox-&gt;containingRegion() == currentRegion)
&gt;&gt;     return false;
&gt;&gt; 
&gt;&gt; ?
&gt;&gt; 
&gt;&gt; I&apos;m not really sure what all the extra code is buying you. If both regions are null, the == check will cause you to bail anyway, and you won&apos;t ever go from null to non-null or vice versa.
&gt; 
&gt; The idea is to be able to reset the layout in a situation like this one:
&gt; 1. A flow with 1000 regions is laid out.
&gt; 2. All the regions are deleted
&gt; 3. A layout is triggered - at this point all the RootInlineBoxes have a BAD containing region attached to them.
&gt; There are two options:
&gt; - The one I&apos;ve chosen in this patch - write a sanitize() function that detects such invalid regions and sets their value to 0.
&gt; - Define a reference value for invalid Regions - create a static RenderRegion* = -1 or just a static RenderRegion and set the value of the invalid containing region to the address of the dummy Region. - I think this option is worse because there will be two special values that need to be handled - 0 and the reference value
&gt; 4. Solve the invalid region situation with one of the options above.
&gt; 5. If going with the first option, containingRegion == currentRegion is not enough to determine if a line is invalid. containingRegion can be a sanitized 0 value while currentRegion just means there are no more regions in the flow. So the lines may need to be invalidated because they were laid out in a region - the hasContainingRegion() flag needs to be used.

Unless you think that the layout behavior for a flow without any region is undefined. In this case it makes sense to just compare the two values and hasContainingRegion goes out as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775737</commentid>
    <comment_count>24</comment_count>
      <attachid>174417</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-11-26 11:52:35 -0800</bug_when>
    <thetext>Comment on attachment 174417
Patch

r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775750</commentid>
    <comment_count>25</comment_count>
      <attachid>174417</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 12:01:37 -0800</bug_when>
    <thetext>Comment on attachment 174417
Patch

Clearing flags on attachment: 174417

Committed r135750: &lt;http://trac.webkit.org/changeset/135750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775751</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 12:01:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172784</attachid>
            <date>2012-11-07 06:32:33 -0800</date>
            <delta_ts>2012-11-07 15:44:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101332-20121107163044.patch</filename>
            <type>text/plain</type>
            <size>10204</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVjZmIwYTFlODQzOGYz
ODk3ZTYyMzEwOThjYmYwZWE2ZDI0YmM3OC4uMjg4NTE2MTg4ZTIyZmZjOGNmZjVlMDNhMDRmMDMy
N2YzMWJiNWI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTExLTA3ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gQWRk
IFJlZ2lvbiBpbmZvIGZvciBSb290TGluZUJveGVzIGFuZCBwYWNrIHRoZSBwYWdpbmF0aW9uIGRh
dGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTMz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSB0aGUgcGFnaW5hdGlvbiBpbmZvcm1hdGlvbiBpcyBzcHJlYWQgYmV0d2VlbiB0aGUgUm9v
dElubGluZUJveCBhbmQgSW5saW5lRmxvd0JveCBjbGFzc2VzLCBjb25zdW1pbmcgbWVtb3J5IGV2
ZW4gdGhvdWdoIGl0CisgICAgICAgIGlzIG5vdCBhIHBhZ2luYXRpb24gbGF5b3V0LiBUbyBvdmVy
Y29tZSB0aGlzIGEgbmV3IHN0cnVjdCBpcyBjcmVhdGVkIExpbmVGcmFnbWVudGF0aW9uRGF0YSB0
aGF0IHdyYXBzIGFsbCB0aGUgZGF0YSwgaW5jbHVkaW5nIGEgbmV3IG1lbWJlciwKKyAgICAgICAg
dGhlIGNvbnRhaW5pbmcgUmVnaW9uIGZvciB0aGUgbGluZS4KKyAgICAgICAgVGhlIGNvbnRhaW5p
bmcgUmVnaW9uIGlzIHVzZWQgdG8gZGV0ZWN0IGlmIGEgbGluZSBjaGFuZ2VkIHRoZSBmcmFnbWVu
dCB3aGVyZSBpdCByZXNpZGVzLiBUaGlzIHdpbGwgYmUgaGVscGZ1bCBlc3BlY2lhbGx5IHdoZW4g
aW1wbGVtZW50aW5nIHJlZ2lvbgorICAgICAgICBzdHlsaW5nIGZvciBsYXlvdXQgcHJvcGVydGll
cy4KKworICAgICAgICBUZXN0czogTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gZnVu
Y3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6
CisgICAgICAgIChTYW1lU2l6ZUFzSW5saW5lRmxvd0JveCk6CisgICAgICAgICogcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OklubGlu
ZUZsb3dCb3gpOgorICAgICAgICAoSW5saW5lRmxvd0JveCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsaW5lV2lk
dGhGb3JQYWdpbmF0ZWRMaW5lQ2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jvb3RJbmxp
bmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6Um9vdElubGluZUJv
eCk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjphZGp1c3RQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94Ojp1cGRhdGVDb250YWluaW5nUmVnaW9uKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94Lmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OnBh
Z2luYXRpb25TdHJ1dCk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpzZXRQYWdp
bmF0aW9uU3RydXQpOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6aXNGaXJzdEFm
dGVyUGFnZUJyZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OnNldElzRmly
c3RBZnRlclBhZ2VCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpwYWdp
bmF0ZWRMaW5lV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6c2V0UGFn
aW5hdGVkTGluZVdpZHRoKToKKyAgICAgICAgKFJvb3RJbmxpbmVCb3gpOgorICAgICAgICAoV2Vi
Q29yZTo6Um9vdElubGluZUJveDo6Y29udGFpbmluZ1JlZ2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSb290SW5saW5lQm94OjpzZXRMaW5lVG9wQm90dG9tUG9zaXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlJvb3RJbmxpbmVCb3g6OmVuc3VyZUxpbmVGcmFnbWVudGF0aW9uRGF0YSk6CisgICAg
ICAgIChMaW5lRnJhZ21lbnRhdGlvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGlu
ZUJveDo6TGluZUZyYWdtZW50YXRpb25EYXRhOjpMaW5lRnJhZ21lbnRhdGlvbkRhdGEpOgorCiAy
MDEyLTExLTA3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgImRlc2t0b3Atd2lkdGgiIGluIHRoZSB2
aWV3cG9ydCBtZXRhIHRhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwCmluZGV4IDY2YmMxMWUwOTQ3MjYxOTU2Y2E5ZTJhOGJhNTJiMTA1OTY3MDRmZTUuLjNiMjU5
OTZkOWE5MjQ5YmI2N2QzYmY5NGNlNzZhNTA2NjdhNDNmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdHJ1Y3QgU2FtZVNpemVBc0lubGluZUZsb3dCb3ggOiBwdWJsaWMgSW5saW5l
Qm94IHsKICAgICB2b2lkKiBwb2ludGVyc1s1XTsKLSAgICB1aW50MzJfdCBiaXRmaWVsZHMgOiAy
NDsKKyAgICB1aW50MzJfdCBiaXRmaWVsZHMgOiAyMzsKIH07CiAKIENPTVBJTEVfQVNTRVJUKHNp
emVvZihJbmxpbmVGbG93Qm94KSA9PSBzaXplb2YoU2FtZVNpemVBc0lubGluZUZsb3dCb3gpLCBJ
bmxpbmVGbG93Qm94X3Nob3VsZF9zdGF5X3NtYWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5oCmluZGV4IDQ4YjcyMGM3NWRkNTNlN2QyMDk3ODJkZDRiYTJmMzFhNDUy
MTUwMGUuLjM2ZDQ4ZGM4N2JiMTUyNmYzNTMyZjMxZmFhMDJjZTYxMWUxNTFkY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaApAQCAtNTIsNyArNTIsNiBAQCBwdWJs
aWM6CiAgICAgICAgICwgbV9iYXNlbGluZVR5cGUoQWxwaGFiZXRpY0Jhc2VsaW5lKQogICAgICAg
ICAsIG1faGFzQW5ub3RhdGlvbnNCZWZvcmUoZmFsc2UpCiAgICAgICAgICwgbV9oYXNBbm5vdGF0
aW9uc0FmdGVyKGZhbHNlKQotICAgICAgICAsIG1faXNGaXJzdEFmdGVyUGFnZUJyZWFrKGZhbHNl
KQogI2lmbmRlZiBOREVCVUcKICAgICAgICAgLCBtX2hhc0JhZENoaWxkTGlzdChmYWxzZSkKICNl
bmRpZgpAQCAtMzI1LDcgKzMyNCw2IEBAIHByb3RlY3RlZDoKICAgICAvLyBJZiB0aGUgbGluZSBj
b250YWlucyBhbnkgcnVieSBydW5zLCB0aGVuIHRoaXMgd2lsbCBiZSB0cnVlLgogICAgIHVuc2ln
bmVkIG1faGFzQW5ub3RhdGlvbnNCZWZvcmUgOiAxOwogICAgIHVuc2lnbmVkIG1faGFzQW5ub3Rh
dGlvbnNBZnRlciA6IDE7Ci0gICAgdW5zaWduZWQgbV9pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsgOiAx
OwogCiAgICAgdW5zaWduZWQgbV9saW5lQnJlYWtCaWRpU3RhdHVzRW9yIDogNTsgLy8gV1RGOjpV
bmljb2RlOjpEaXJlY3Rpb24KICAgICB1bnNpZ25lZCBtX2xpbmVCcmVha0JpZGlTdGF0dXNMYXN0
U3Ryb25nIDogNTsgLy8gV1RGOjpVbmljb2RlOjpEaXJlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDQ3MDg5ODU3OTUxZTU5NTRhMDM2ZmY1NDMzMTY5
NmZmNTBiZWE5ZWIuLjkxMTE0YWZlZjBmZTMyZTM1NDVhNTIxM2Q0ZjYyMmIyZmQ0ZmY4NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNzI0NSw3ICs3MjQ1
LDEyIEBAIGJvb2wgUmVuZGVyQmxvY2s6OmxpbmVXaWR0aEZvclBhZ2luYXRlZExpbmVDaGFuZ2Vk
KFJvb3RJbmxpbmVCb3gqIHJvb3RCb3gsIExheW91CiAgICAgaWYgKCFpblJlbmRlckZsb3dUaHJl
YWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHJvb3RCb3gtPnBhZ2lu
YXRlZExpbmVXaWR0aCgpICE9IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckNvbnRlbnQocm9vdEJv
eC0+bGluZVRvcFdpdGhMZWFkaW5nKCkgKyBsaW5lRGVsdGEpOworICAgIEFTU0VSVChyb290Qm94
LT5jb250YWluaW5nUmVnaW9uKCkpOworICAgIFJlbmRlclJlZ2lvbiogY3VycmVudFJlZ2lvbiA9
IHJlZ2lvbkF0QmxvY2tPZmZzZXQocm9vdEJveC0+bGluZVRvcFdpdGhMZWFkaW5nKCkgKyBsaW5l
RGVsdGEpOworICAgIC8vIEp1c3QgYmFpbCBpZiB0aGUgcmVnaW9uIGRpZG4ndCBjaGFuZ2UuCisg
ICAgaWYgKHJvb3RCb3gtPmNvbnRhaW5pbmdSZWdpb24oKSA9PSBjdXJyZW50UmVnaW9uKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHJvb3RCb3gtPnBhZ2luYXRlZExpbmVXaWR0
aCgpICE9IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckNvbnRlbnQoY3VycmVudFJlZ2lvbiwgb2Zm
c2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSgpKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJC
bG9jazo6b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKaW5kZXggNmM5MzMwMzYyY2EyMTY5MmEx
Y2EzMmM3ODI0NWM5YmI0ZGU3NmZiYS4uZDg4ZTkyNjQxODJiYzcyMGI0MTYyY2Q3MmZmNDY5ZDBl
M2IxYjBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApA
QCAtNTIsOCArNTIsNiBAQCBSb290SW5saW5lQm94OjpSb290SW5saW5lQm94KFJlbmRlckJsb2Nr
KiBibG9jaykKICAgICAsIG1fbGluZUJvdHRvbSgwKQogICAgICwgbV9saW5lVG9wV2l0aExlYWRp
bmcoMCkKICAgICAsIG1fbGluZUJvdHRvbVdpdGhMZWFkaW5nKDApCi0gICAgLCBtX3BhZ2luYXRp
b25TdHJ1dCgwKQotICAgICwgbV9wYWdpbmF0ZWRMaW5lV2lkdGgoMCkKIHsKICAgICBzZXRJc0hv
cml6b250YWwoYmxvY2stPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpOwogfQpAQCAtMjM4LDYg
KzIzNiw4IEBAIHZvaWQgUm9vdElubGluZUJveDo6YWRqdXN0UG9zaXRpb24oZmxvYXQgZHgsIGZs
b2F0IGR5KQogICAgIG1fbGluZUJvdHRvbVdpdGhMZWFkaW5nICs9IGJsb2NrRGlyZWN0aW9uRGVs
dGE7CiAgICAgaWYgKGhhc0VsbGlwc2lzQm94KCkpCiAgICAgICAgIGVsbGlwc2lzQm94KCktPmFk
anVzdFBvc2l0aW9uKGR4LCBkeSk7CisgICAgaWYgKGNvbnRhaW5pbmdSZWdpb24oKSkKKyAgICAg
ICAgdXBkYXRlQ29udGFpbmluZ1JlZ2lvbigpOwogfQogCiB2b2lkIFJvb3RJbmxpbmVCb3g6OmNo
aWxkUmVtb3ZlZChJbmxpbmVCb3gqIGJveCkKQEAgLTI1MSw2ICsyNTEsMTUgQEAgdm9pZCBSb290
SW5saW5lQm94OjpjaGlsZFJlbW92ZWQoSW5saW5lQm94KiBib3gpCiAgICAgfQogfQogCit2b2lk
IFJvb3RJbmxpbmVCb3g6OnVwZGF0ZUNvbnRhaW5pbmdSZWdpb24oKQoreworICAgIFJlbmRlckJs
b2NrKiBjb250YWluaW5nQmxvY2sgPSBibG9jaygpOworICAgIGlmIChjb250YWluaW5nQmxvY2st
PmluUmVuZGVyRmxvd1RocmVhZCgpKSB7CisgICAgICAgIGVuc3VyZUxpbmVGcmFnbWVudGF0aW9u
RGF0YSgpOworICAgICAgICBtX2ZyYWdtZW50YXRpb25EYXRhLT5tX2NvbnRhaW5pbmdSZWdpb24g
PSBjb250YWluaW5nQmxvY2stPnJlZ2lvbkF0QmxvY2tPZmZzZXQobGluZVRvcFdpdGhMZWFkaW5n
KCkpOworICAgIH0KK30KKwogTGF5b3V0VW5pdCBSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5C
bG9ja0RpcmVjdGlvbihMYXlvdXRVbml0IGhlaWdodE9mQmxvY2ssIEdseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwJiB0ZXh0Qm94RGF0YU1hcCwgVmVydGljYWxQb3NpdGlvbkNhY2hlJiB2
ZXJ0aWNhbFBvc2l0aW9uQ2FjaGUpCiB7CiAjaWYgRU5BQkxFKFNWRykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUm9vdElubGluZUJveC5oCmluZGV4IDEyMGFmYWEzMTdjYWUwOTlmN2VmYzcxNmNm
YjJjYzk1ZjdmNmU4NmYuLjhlOTdlOGJmYzM4OWU4ZDQ3MWQxNjcxMDUzNjkzNDBiZjM4NDFlZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaApAQCAtMjgsNiArMjgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsbGlwc2lzQm94OwogY2xhc3MgSGl0
VGVzdFJlc3VsdDsKK2NsYXNzIFJlbmRlclJlZ2lvbjsKIAogc3RydWN0IEJpZGlTdGF0dXM7CiBz
dHJ1Y3QgR2FwUmVjdHM7CkBAIC01MywxNCArNTQsMTYgQEAgcHVibGljOgogICAgIExheW91dFVu
aXQgbGluZVRvcFdpdGhMZWFkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9saW5lVG9wV2l0aExlYWRp
bmc7IH0KICAgICBMYXlvdXRVbml0IGxpbmVCb3R0b21XaXRoTGVhZGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fbGluZUJvdHRvbVdpdGhMZWFkaW5nOyB9CiAgICAgCi0gICAgTGF5b3V0VW5pdCBwYWdp
bmF0aW9uU3RydXQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2luYXRpb25TdHJ1dDsgfQotICAgIHZv
aWQgc2V0UGFnaW5hdGlvblN0cnV0KExheW91dFVuaXQgcykgeyBtX3BhZ2luYXRpb25TdHJ1dCA9
IHM7IH0KKyAgICBMYXlvdXRVbml0IHBhZ2luYXRpb25TdHJ1dCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhZ21lbnRhdGlvbkRhdGEgPyBtX2ZyYWdtZW50YXRpb25EYXRhLT5tX3BhZ2luYXRpb25TdHJ1
dCA6IFpFUk9fTEFZT1VUX1VOSVQ7IH0KKyAgICB2b2lkIHNldFBhZ2luYXRpb25TdHJ1dChMYXlv
dXRVbml0IHMpIHsgZW5zdXJlTGluZUZyYWdtZW50YXRpb25EYXRhKCk7IG1fZnJhZ21lbnRhdGlv
bkRhdGEtPm1fcGFnaW5hdGlvblN0cnV0ID0gczsgfQogCi0gICAgYm9vbCBpc0ZpcnN0QWZ0ZXJQ
YWdlQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhazsgfQotICAg
IHZvaWQgc2V0SXNGaXJzdEFmdGVyUGFnZUJyZWFrKGJvb2wgaXNGaXJzdEFmdGVyUGFnZUJyZWFr
KSB7IG1faXNGaXJzdEFmdGVyUGFnZUJyZWFrID0gaXNGaXJzdEFmdGVyUGFnZUJyZWFrOyB9Cisg
ICAgYm9vbCBpc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50
YXRpb25EYXRhID8gbV9mcmFnbWVudGF0aW9uRGF0YS0+bV9pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsg
OiBmYWxzZTsgfQorICAgIHZvaWQgc2V0SXNGaXJzdEFmdGVyUGFnZUJyZWFrKGJvb2wgaXNGaXJz
dEFmdGVyUGFnZUJyZWFrKSB7IGVuc3VyZUxpbmVGcmFnbWVudGF0aW9uRGF0YSgpOyBtX2ZyYWdt
ZW50YXRpb25EYXRhLT5tX2lzRmlyc3RBZnRlclBhZ2VCcmVhayA9IGlzRmlyc3RBZnRlclBhZ2VC
cmVhazsgfQogCi0gICAgTGF5b3V0VW5pdCBwYWdpbmF0ZWRMaW5lV2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2luYXRlZExpbmVXaWR0aDsgfQotICAgIHZvaWQgc2V0UGFnaW5hdGVkTGluZVdp
ZHRoKExheW91dFVuaXQgd2lkdGgpIHsgbV9wYWdpbmF0ZWRMaW5lV2lkdGggPSB3aWR0aDsgfQor
ICAgIExheW91dFVuaXQgcGFnaW5hdGVkTGluZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9mcmFn
bWVudGF0aW9uRGF0YSA/IG1fZnJhZ21lbnRhdGlvbkRhdGEtPm1fcGFnaW5hdGVkTGluZVdpZHRo
IDogWkVST19MQVlPVVRfVU5JVDsgfQorICAgIHZvaWQgc2V0UGFnaW5hdGVkTGluZVdpZHRoKExh
eW91dFVuaXQgd2lkdGgpIHsgZW5zdXJlTGluZUZyYWdtZW50YXRpb25EYXRhKCk7IG1fZnJhZ21l
bnRhdGlvbkRhdGEtPm1fcGFnaW5hdGVkTGluZVdpZHRoID0gd2lkdGg7IH0KKworICAgIFJlbmRl
clJlZ2lvbiogY29udGFpbmluZ1JlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRhdGlv
bkRhdGEgPyBtX2ZyYWdtZW50YXRpb25EYXRhLT5tX2NvbnRhaW5pbmdSZWdpb24gOiAwOyB9CiAK
ICAgICBMYXlvdXRVbml0IHNlbGVjdGlvblRvcCgpIGNvbnN0OwogICAgIExheW91dFVuaXQgc2Vs
ZWN0aW9uQm90dG9tKCkgY29uc3Q7CkBAIC03OCw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICAgICAg
bV9saW5lQm90dG9tID0gYm90dG9tOwogICAgICAgICBtX2xpbmVUb3BXaXRoTGVhZGluZyA9IHRv
cFdpdGhMZWFkaW5nOwogICAgICAgICBtX2xpbmVCb3R0b21XaXRoTGVhZGluZyA9IGJvdHRvbVdp
dGhMZWFkaW5nOworICAgICAgICB1cGRhdGVDb250YWluaW5nUmVnaW9uKCk7CiAgICAgfQogCiAg
ICAgdmlydHVhbCBSZW5kZXJMaW5lQm94TGlzdCogcmVuZGVyZXJMaW5lQm94ZXMoKSBjb25zdDsK
QEAgLTE5Myw2ICsxOTcsMTQgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgYmVmb3JlQW5u
b3RhdGlvbnNBZGp1c3RtZW50KCkgY29uc3Q7CiAKKyAgICB2b2lkIGVuc3VyZUxpbmVGcmFnbWVu
dGF0aW9uRGF0YSgpCisgICAgeyAKKyAgICAgICAgaWYgKCFtX2ZyYWdtZW50YXRpb25EYXRhKQor
ICAgICAgICAgICAgbV9mcmFnbWVudGF0aW9uRGF0YSA9IGFkb3B0UHRyKG5ldyBMaW5lRnJhZ21l
bnRhdGlvbkRhdGEoKSk7CisgICAgfQorCisgICAgdm9pZCB1cGRhdGVDb250YWluaW5nUmVnaW9u
KCk7CisKICAgICAvLyBUaGlzIGZvbGRzIGludG8gdGhlIHBhZGRpbmcgYXQgdGhlIGVuZCBvZiBJ
bmxpbmVGbG93Qm94IG9uIDY0LWJpdC4KICAgICB1bnNpZ25lZCBtX2xpbmVCcmVha1BvczsKIApA
QCAtMjA3LDggKzIxOSwyNSBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbV9saW5lVG9wV2l0
aExlYWRpbmc7CiAgICAgTGF5b3V0VW5pdCBtX2xpbmVCb3R0b21XaXRoTGVhZGluZzsKIAotICAg
IExheW91dFVuaXQgbV9wYWdpbmF0aW9uU3RydXQ7Ci0gICAgTGF5b3V0VW5pdCBtX3BhZ2luYXRl
ZExpbmVXaWR0aDsKKyAgICBzdHJ1Y3QgTGluZUZyYWdtZW50YXRpb25EYXRhIHsKKyAgICAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoTGluZUZyYWdtZW50YXRpb25EYXRhKTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CisgICAgcHVibGljOgorICAgICAgICBMaW5lRnJhZ21lbnRhdGlvbkRhdGEo
KQorICAgICAgICAgICAgOiBtX2NvbnRhaW5pbmdSZWdpb24oMCkKKyAgICAgICAgICAgICwgbV9w
YWdpbmF0aW9uU3RydXQoMCkKKyAgICAgICAgICAgICwgbV9wYWdpbmF0ZWRMaW5lV2lkdGgoMCkK
KyAgICAgICAgICAgICwgbV9pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoZmFsc2UpCisgICAgICAgIHsK
KworICAgICAgICB9CisKKyAgICAgICAgUmVuZGVyUmVnaW9uKiBtX2NvbnRhaW5pbmdSZWdpb247
CisgICAgICAgIExheW91dFVuaXQgbV9wYWdpbmF0aW9uU3RydXQ7CisgICAgICAgIExheW91dFVu
aXQgbV9wYWdpbmF0ZWRMaW5lV2lkdGg7CisgICAgICAgIGJvb2wgbV9pc0ZpcnN0QWZ0ZXJQYWdl
QnJlYWs7CisgICAgfTsKKworICAgIE93blB0cjxMaW5lRnJhZ21lbnRhdGlvbkRhdGE+IG1fZnJh
Z21lbnRhdGlvbkRhdGE7CiAKICAgICAvLyBGbG9hdHMgaGFuZ2luZyBvZmYgdGhlIGxpbmUgYXJl
IHB1c2hlZCBpbnRvIHRoaXMgdmVjdG9yIGR1cmluZyBsYXlvdXQuIEl0IGlzIG9ubHkKICAgICAv
LyBnb29kIGZvciBhcyBsb25nIGFzIHRoZSBsaW5lIGhhcyBub3QgYmVlbiBtYXJrZWQgZGlydHku
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173122</attachid>
            <date>2012-11-08 14:45:51 -0800</date>
            <delta_ts>2012-11-09 01:57:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101332-20121109004355.patch</filename>
            <type>text/plain</type>
            <size>12597</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U4ZTIyNTkwM2ViZDVl
ODk3YWUyOGExNjM1MDA5NWRiZGM2ODc5OC4uOWM3M2FjOWMzMmVkYzBiNDVhZWMzNmJhYWFkYmRl
ZTMzYjg5NWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTExLTA4ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gQWRk
IFJlZ2lvbiBpbmZvIGZvciBSb290TGluZUJveGVzIGFuZCBwYWNrIHRoZSBwYWdpbmF0aW9uIGRh
dGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTMz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSB0aGUgcGFnaW5hdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGluZXMgaXMgc3ByZWFkIGJldHdl
ZW4gdGhlIFJvb3RJbmxpbmVCb3ggYW5kIElubGluZUZsb3dCb3ggY2xhc3NlcywgY29uc3VtaW5n
IG1lbW9yeSBldmVuIHRob3VnaCAKKyAgICAgICAgdGhlIGJveGVzIHdlcmUgbm90IHRoZSByZXN1
bHQgb2YgYW4gcGFnaW5hdGlvbiBsYXlvdXQuIFRvIG92ZXJjb21lIHRoaXMsIGEgbmV3IHN0cnVj
dCAoTGluZUZyYWdtZW50YXRpb25EYXRhKSBpcyBjcmVhdGVkIHRoYXQgd3JhcHMgYWxsIHRoZSBk
YXRhLAorICAgICAgICBpbmNsdWRpbmcgYSBuZXcgbWVtYmVyLCB0aGUgY29udGFpbmluZyBSZWdp
b24gZm9yIHRoZSBsaW5lLgorICAgICAgICBUaGUgY29udGFpbmluZyBSZWdpb24gaXMgdXNlZCB0
byBkZXRlY3QgaWYgYSBsaW5lIGNoYW5nZWQgdGhlIFJlZ2lvbiB3aGVyZSBpdCByZXNpZGVzLiBU
aGlzIHdpbGwgYmUgaGVscGZ1bCBlc3BlY2lhbGx5IHdoZW4gaW1wbGVtZW50aW5nIHJlZ2lvbgor
ICAgICAgICBzdHlsaW5nIGZvciBsYXlvdXQgcHJvcGVydGllcy4KKyAgICAgICAgQSBsaW5lIGNh
biBjaGFuZ2UgdGhlIHJlZ2lvbiB3aGVuIGl0IGlzIHNoaWZ0ZWQgaW5zaWRlIHRoZSBjb250YWlu
aW5nIGJsb2NrIG9yIGlmIHRoZSBlbnRpcmUgYmxvY2sgbW92ZXMuIFRoaXMgbWVhbnMgaXQncyBi
ZXR0ZXIgdG8gZGVsZWdhdGUKKyAgICAgICAgdGhlIHRhc2sgb2YgdXBkYXRpbmcgdGhlIGNvbnRh
aW5pbmcgUmVnaW9uIHRvIHRoZSBibG9jay4KKworICAgICAgICBUZXN0czogTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChTYW1lU2l6ZUFzSW5saW5lRmxvd0Jv
eCk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OklubGluZUZsb3dCb3gpOgorICAgICAgICAoSW5saW5lRmxvd0Jv
eCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpsaW5lV2lkdGhGb3JQYWdpbmF0ZWRMaW5lQ2hhbmdlZCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxpbmtUb0VuZExpbmVJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6ZGV0ZXJtaW5lU3RhcnRQb3NpdGlvbik6CisgICAgICAgICog
cmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGlu
ZUJveDo6Um9vdElubGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94Ojpz
ZXRDb250YWluaW5nUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRl
cmluZy9Sb290SW5saW5lQm94Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJvb3RJbmxpbmVCb3g6OnBhZ2luYXRpb25TdHJ1dCk6CisgICAgICAgIChXZWJDb3JlOjpS
b290SW5saW5lQm94OjpzZXRQYWdpbmF0aW9uU3RydXQpOgorICAgICAgICAoV2ViQ29yZTo6Um9v
dElubGluZUJveDo6aXNGaXJzdEFmdGVyUGFnZUJyZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OlJv
b3RJbmxpbmVCb3g6OnNldElzRmlyc3RBZnRlclBhZ2VCcmVhayk6CisgICAgICAgIChXZWJDb3Jl
OjpSb290SW5saW5lQm94OjpwYWdpbmF0ZWRMaW5lV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6
Um9vdElubGluZUJveDo6c2V0UGFnaW5hdGVkTGluZVdpZHRoKToKKyAgICAgICAgKFJvb3RJbmxp
bmVCb3gpOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6Y29udGFpbmluZ1JlZ2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjplbnN1cmVMaW5lRnJhZ21lbnRh
dGlvbkRhdGEpOgorICAgICAgICAoTGluZUZyYWdtZW50YXRpb25EYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlJvb3RJbmxpbmVCb3g6OkxpbmVGcmFnbWVudGF0aW9uRGF0YTo6TGluZUZyYWdtZW50
YXRpb25EYXRhKToKKwogMjAxMi0xMS0wOCAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBzYXZlL3Jlc3RvcmUgaW4gU1ZHVGV4dFJ1
blJlbmRlcmluZ0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94
LmNwcAppbmRleCAzNmFhZjk1ZWM3NWIwZGNlMDY1Njg4MzkyNDQ5YmRmZTA5MmU3NDNlLi44ZTQx
MWQxMWEwZGQ0NDg1OTQwNzg0ZDcyMDVmOGJhZTFkOTJkNmFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RydWN0IFNhbWVTaXplQXNJbmxpbmVGbG93Qm94IDogcHVibGljIElubGlu
ZUJveCB7CiAgICAgdm9pZCogcG9pbnRlcnNbNV07Ci0gICAgdWludDMyX3QgYml0ZmllbGRzIDog
MjQ7CisgICAgdWludDMyX3QgYml0ZmllbGRzIDogMjM7CiB9OwogCiBDT01QSUxFX0FTU0VSVChz
aXplb2YoSW5saW5lRmxvd0JveCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNJbmxpbmVGbG93Qm94KSwg
SW5saW5lRmxvd0JveF9zaG91bGRfc3RheV9zbWFsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guaAppbmRleCA0NGJkZDU4NTcyNzA4ODFmMmU2YTA3NjE0MjgzNDk0ZTVm
ZDIyYmI0Li4yZGMzMzUyYjFmYjlmMWFmNDVjNWMwYjRlOWRmZWFhOWZiM2JhMWU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKQEAgLTUyLDcgKzUyLDYgQEAgcHVi
bGljOgogICAgICAgICAsIG1fYmFzZWxpbmVUeXBlKEFscGhhYmV0aWNCYXNlbGluZSkKICAgICAg
ICAgLCBtX2hhc0Fubm90YXRpb25zQmVmb3JlKGZhbHNlKQogICAgICAgICAsIG1faGFzQW5ub3Rh
dGlvbnNBZnRlcihmYWxzZSkKLSAgICAgICAgLCBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhayhmYWxz
ZSkKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICwgbV9oYXNCYWRDaGlsZExpc3QoZmFsc2UpCiAj
ZW5kaWYKQEAgLTMyNSw3ICszMjQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gSWYgdGhlIGxpbmUg
Y29udGFpbnMgYW55IHJ1YnkgcnVucywgdGhlbiB0aGlzIHdpbGwgYmUgdHJ1ZS4KICAgICB1bnNp
Z25lZCBtX2hhc0Fubm90YXRpb25zQmVmb3JlIDogMTsKICAgICB1bnNpZ25lZCBtX2hhc0Fubm90
YXRpb25zQWZ0ZXIgOiAxOwotICAgIHVuc2lnbmVkIG1faXNGaXJzdEFmdGVyUGFnZUJyZWFrIDog
MTsKIAogICAgIHVuc2lnbmVkIG1fbGluZUJyZWFrQmlkaVN0YXR1c0VvciA6IDU7IC8vIFdURjo6
VW5pY29kZTo6RGlyZWN0aW9uCiAgICAgdW5zaWduZWQgbV9saW5lQnJlYWtCaWRpU3RhdHVzTGFz
dFN0cm9uZyA6IDU7IC8vIFdURjo6VW5pY29kZTo6RGlyZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA5ODJiMDk1MTk5YjQzMWIxMGFmM2Q4Y2ZkZjM1
YjBmZTU4NWFlNWQzLi5lYTVlZjY0MjQxZDVlOWQyNTgxMTc2MGI0YTJlYmEzMGNjYzM2MWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTcyNDUsNyArNzI0
NSwxMiBAQCBib29sIFJlbmRlckJsb2NrOjpsaW5lV2lkdGhGb3JQYWdpbmF0ZWRMaW5lQ2hhbmdl
ZChSb290SW5saW5lQm94KiByb290Qm94LCBMYXlvdQogICAgIGlmICghaW5SZW5kZXJGbG93VGhy
ZWFkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiByb290Qm94LT5wYWdp
bmF0ZWRMaW5lV2lkdGgoKSAhPSBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JDb250ZW50KHJvb3RC
b3gtPmxpbmVUb3BXaXRoTGVhZGluZygpICsgbGluZURlbHRhKTsKKyAgICBBU1NFUlQocm9vdEJv
eC0+Y29udGFpbmluZ1JlZ2lvbigpKTsKKyAgICBSZW5kZXJSZWdpb24qIGN1cnJlbnRSZWdpb24g
PSByZWdpb25BdEJsb2NrT2Zmc2V0KHJvb3RCb3gtPmxpbmVUb3BXaXRoTGVhZGluZygpICsgbGlu
ZURlbHRhKTsKKyAgICAvLyBKdXN0IGJhaWwgaWYgdGhlIHJlZ2lvbiBkaWRuJ3QgY2hhbmdlLgor
ICAgIGlmIChyb290Qm94LT5jb250YWluaW5nUmVnaW9uKCkgPT0gY3VycmVudFJlZ2lvbikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiByb290Qm94LT5wYWdpbmF0ZWRMaW5lV2lk
dGgoKSAhPSBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JDb250ZW50KGN1cnJlbnRSZWdpb24sIG9m
ZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVy
QmxvY2s6Om9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCAy
ZTU4ZWE2NzcxMTYzOWQxODE4ZTNjYTgyOTZmOWZmOTljYTBkODI2Li5iOTNhOGM3NWZmMjJiN2Zi
MDgzOTRjMjk4NjdmYmFkOGY1ODg0ZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTUwOCw2ICsxNTA4LDkgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRl
JiBsYXlvdXRTdGF0ZSwgSW5saW4KIAogICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNh
bEhlaWdodChsaW5lQm94LT5saW5lQm90dG9tV2l0aExlYWRpbmcoKSk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaW5SZW5kZXJGbG93VGhyZWFkKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQm94LT5zZXRDb250YWluaW5nUmVnaW9uKHJl
Z2lvbkF0QmxvY2tPZmZzZXQobGluZUJveC0+bGluZVRvcFdpdGhMZWFkaW5nKCkpKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTE1NjIsNiArMTU2NSw4IEBAIHZvaWQg
UmVuZGVyQmxvY2s6OmxpbmtUb0VuZExpbmVJZk5lZWRlZChMaW5lTGF5b3V0U3RhdGUmIGxheW91
dFN0YXRlKQogICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGF0ZS51cGRhdGVSZXBhaW50UmFu
Z2VGcm9tQm94KGxpbmUsIGRlbHRhKTsKICAgICAgICAgICAgICAgICAgICAgbGluZS0+YWRqdXN0
QmxvY2tEaXJlY3Rpb25Qb3NpdGlvbihkZWx0YSk7CiAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGlmIChpblJlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAgICAgICAgICAg
bGluZS0+c2V0Q29udGFpbmluZ1JlZ2lvbihyZWdpb25BdEJsb2NrT2Zmc2V0KGxpbmUtPmxpbmVU
b3BXaXRoTGVhZGluZygpKSk7CiAgICAgICAgICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJCb3gq
PiogY2xlYW5MaW5lRmxvYXRzID0gbGluZS0+ZmxvYXRzUHRyKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgVmVjdG9yPFJlbmRlckJveCo+OjppdGVyYXRvciBlbmQgPSBjbGVhbkxpbmVGbG9hdHMt
PmVuZCgpOwogICAgICAgICAgICAgICAgICAgICBmb3IgKFZlY3RvcjxSZW5kZXJCb3gqPjo6aXRl
cmF0b3IgZiA9IGNsZWFuTGluZUZsb2F0cy0+YmVnaW4oKTsgZiAhPSBlbmQ7ICsrZikgewpAQCAt
MTU5OSw2ICsxNjA0LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGlua1RvRW5kTGluZUlmTmVlZGVk
KExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCiAgICAgICAgICAgICBMYXlvdXRSZWN0IGxv
Z2ljYWxMYXlvdXRPdmVyZmxvdygwLCBibG9ja0xvZ2ljYWxIZWlnaHQsIDEsIGJvdHRvbUxheW91
dE92ZXJmbG93IC0gYmxvY2tMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAgICAgIExheW91dFJlY3Qg
bG9naWNhbFZpc3VhbE92ZXJmbG93KDAsIGJsb2NrTG9naWNhbEhlaWdodCwgMSwgYm90dG9tVmlz
dWFsT3ZlcmZsb3cgLSBibG9ja0xvZ2ljYWxIZWlnaHQpOwogICAgICAgICAgICAgdHJhaWxpbmdG
bG9hdHNMaW5lQm94LT5zZXRPdmVyZmxvd0Zyb21Mb2dpY2FsUmVjdHMobG9naWNhbExheW91dE92
ZXJmbG93LCBsb2dpY2FsVmlzdWFsT3ZlcmZsb3csIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+bGlu
ZVRvcCgpLCB0cmFpbGluZ0Zsb2F0c0xpbmVCb3gtPmxpbmVCb3R0b20oKSk7CisgICAgICAgICAg
ICBpZiAoaW5SZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICAgICAgdHJhaWxpbmdGbG9h
dHNMaW5lQm94LT5zZXRDb250YWluaW5nUmVnaW9uKHJlZ2lvbkF0QmxvY2tPZmZzZXQodHJhaWxp
bmdGbG9hdHNMaW5lQm94LT5saW5lVG9wV2l0aExlYWRpbmcoKSkpOwogICAgICAgICB9CiAKICAg
ICAgICAgY29uc3QgRmxvYXRpbmdPYmplY3RTZXQmIGZsb2F0aW5nT2JqZWN0U2V0ID0gbV9mbG9h
dGluZ09iamVjdHMtPnNldCgpOwpAQCAtMTc5Myw2ICsxODAwLDggQEAgUm9vdElubGluZUJveCog
UmVuZGVyQmxvY2s6OmRldGVybWluZVN0YXJ0UG9zaXRpb24oTGluZUxheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgbGF5b3V0U3RhdGUudXBkYXRlUmVwYWludFJh
bmdlRnJvbUJveChjdXJyLCBwYWdpbmF0aW9uRGVsdGEpOwogICAgICAgICAgICAgICAgICAgICBj
dXJyLT5hZGp1c3RCbG9ja0RpcmVjdGlvblBvc2l0aW9uKHBhZ2luYXRpb25EZWx0YSk7CiAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpblJlbmRlckZsb3dUaHJlYWQoKSkK
KyAgICAgICAgICAgICAgICAgICAgY3Vyci0+c2V0Q29udGFpbmluZ1JlZ2lvbihyZWdpb25BdEJs
b2NrT2Zmc2V0KGN1cnItPmxpbmVUb3BXaXRoTGVhZGluZygpKSk7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIC8vIElmIGEgbmV3IGZsb2F0IGhhcyBiZWVuIGluc2VydGVkIGJlZm9yZSB0
aGlzIGxpbmUgb3IgYmVmb3JlIGl0cyBsYXN0IGtub3duIGZsb2F0LCBqdXN0IGRvIGEgZnVsbCBs
YXlvdXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKaW5kZXgg
NmM5MzMwMzYyY2EyMTY5MmExY2EzMmM3ODI0NWM5YmI0ZGU3NmZiYS4uMmE4MGM3YTQ3NzIyNWYy
ZjliMmU4MDM2Yzk0MzhiMDUwMzZmNWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
b290SW5saW5lQm94LmNwcApAQCAtNTIsOCArNTIsNiBAQCBSb290SW5saW5lQm94OjpSb290SW5s
aW5lQm94KFJlbmRlckJsb2NrKiBibG9jaykKICAgICAsIG1fbGluZUJvdHRvbSgwKQogICAgICwg
bV9saW5lVG9wV2l0aExlYWRpbmcoMCkKICAgICAsIG1fbGluZUJvdHRvbVdpdGhMZWFkaW5nKDAp
Ci0gICAgLCBtX3BhZ2luYXRpb25TdHJ1dCgwKQotICAgICwgbV9wYWdpbmF0ZWRMaW5lV2lkdGgo
MCkKIHsKICAgICBzZXRJc0hvcml6b250YWwoYmxvY2stPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkpOwogfQpAQCAtMjUxLDYgKzI0OSwxNCBAQCB2b2lkIFJvb3RJbmxpbmVCb3g6OmNoaWxkUmVt
b3ZlZChJbmxpbmVCb3gqIGJveCkKICAgICB9CiB9CiAKK3ZvaWQgUm9vdElubGluZUJveDo6c2V0
Q29udGFpbmluZ1JlZ2lvbihSZW5kZXJSZWdpb24qIHJlZ2lvbikKK3sKKyAgICBBU1NFUlQoIWlz
RGlydHkoKSk7CisgICAgQVNTRVJUKGJsb2NrKCktPmluUmVuZGVyRmxvd1RocmVhZCgpKTsKKyAg
ICBlbnN1cmVMaW5lRnJhZ21lbnRhdGlvbkRhdGEoKTsKKyAgICBtX2ZyYWdtZW50YXRpb25EYXRh
LT5tX2NvbnRhaW5pbmdSZWdpb24gPSByZWdpb247Cit9CisKIExheW91dFVuaXQgUm9vdElubGlu
ZUJveDo6YWxpZ25Cb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5pdCBoZWlnaHRPZkJsb2Nr
LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXAsIFZlcnRp
Y2FsUG9zaXRpb25DYWNoZSYgdmVydGljYWxQb3NpdGlvbkNhY2hlKQogewogI2lmIEVOQUJMRShT
VkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAppbmRleCAxMjBhZmFh
MzE3Y2FlMDk5ZjdlZmM3MTZjZmIyY2M5NWY3ZjZlODZmLi4zMTQyYWQyMzgzNWU0ZjRiZWIzYjJl
ZDlmYzYzYjU3OTU5MjA0NjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Um9vdElubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5l
Qm94LmgKQEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFbGxp
cHNpc0JveDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBSZW5kZXJSZWdpb247CiAKIHN0
cnVjdCBCaWRpU3RhdHVzOwogc3RydWN0IEdhcFJlY3RzOwpAQCAtNTMsMTQgKzU0LDE3IEBAIHB1
YmxpYzoKICAgICBMYXlvdXRVbml0IGxpbmVUb3BXaXRoTGVhZGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fbGluZVRvcFdpdGhMZWFkaW5nOyB9CiAgICAgTGF5b3V0VW5pdCBsaW5lQm90dG9tV2l0aExl
YWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2xpbmVCb3R0b21XaXRoTGVhZGluZzsgfQogICAgIAot
ICAgIExheW91dFVuaXQgcGFnaW5hdGlvblN0cnV0KCkgY29uc3QgeyByZXR1cm4gbV9wYWdpbmF0
aW9uU3RydXQ7IH0KLSAgICB2b2lkIHNldFBhZ2luYXRpb25TdHJ1dChMYXlvdXRVbml0IHMpIHsg
bV9wYWdpbmF0aW9uU3RydXQgPSBzOyB9CisgICAgTGF5b3V0VW5pdCBwYWdpbmF0aW9uU3RydXQo
KSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50YXRpb25EYXRhID8gbV9mcmFnbWVudGF0aW9uRGF0
YS0+bV9wYWdpbmF0aW9uU3RydXQgOiBaRVJPX0xBWU9VVF9VTklUOyB9CisgICAgdm9pZCBzZXRQ
YWdpbmF0aW9uU3RydXQoTGF5b3V0VW5pdCBzdHJ1dCkgeyBlbnN1cmVMaW5lRnJhZ21lbnRhdGlv
bkRhdGEoKTsgbV9mcmFnbWVudGF0aW9uRGF0YS0+bV9wYWdpbmF0aW9uU3RydXQgPSBzdHJ1dDsg
fQogCi0gICAgYm9vbCBpc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX2lz
Rmlyc3RBZnRlclBhZ2VCcmVhazsgfQotICAgIHZvaWQgc2V0SXNGaXJzdEFmdGVyUGFnZUJyZWFr
KGJvb2wgaXNGaXJzdEFmdGVyUGFnZUJyZWFrKSB7IG1faXNGaXJzdEFmdGVyUGFnZUJyZWFrID0g
aXNGaXJzdEFmdGVyUGFnZUJyZWFrOyB9CisgICAgYm9vbCBpc0ZpcnN0QWZ0ZXJQYWdlQnJlYWso
KSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50YXRpb25EYXRhID8gbV9mcmFnbWVudGF0aW9uRGF0
YS0+bV9pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsgOiBmYWxzZTsgfQorICAgIHZvaWQgc2V0SXNGaXJz
dEFmdGVyUGFnZUJyZWFrKGJvb2wgaXNGaXJzdEFmdGVyUGFnZUJyZWFrKSB7IGVuc3VyZUxpbmVG
cmFnbWVudGF0aW9uRGF0YSgpOyBtX2ZyYWdtZW50YXRpb25EYXRhLT5tX2lzRmlyc3RBZnRlclBh
Z2VCcmVhayA9IGlzRmlyc3RBZnRlclBhZ2VCcmVhazsgfQogCi0gICAgTGF5b3V0VW5pdCBwYWdp
bmF0ZWRMaW5lV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3BhZ2luYXRlZExpbmVXaWR0aDsgfQot
ICAgIHZvaWQgc2V0UGFnaW5hdGVkTGluZVdpZHRoKExheW91dFVuaXQgd2lkdGgpIHsgbV9wYWdp
bmF0ZWRMaW5lV2lkdGggPSB3aWR0aDsgfQorICAgIExheW91dFVuaXQgcGFnaW5hdGVkTGluZVdp
ZHRoKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudGF0aW9uRGF0YSA/IG1fZnJhZ21lbnRhdGlv
bkRhdGEtPm1fcGFnaW5hdGVkTGluZVdpZHRoIDogWkVST19MQVlPVVRfVU5JVDsgfQorICAgIHZv
aWQgc2V0UGFnaW5hdGVkTGluZVdpZHRoKExheW91dFVuaXQgd2lkdGgpIHsgZW5zdXJlTGluZUZy
YWdtZW50YXRpb25EYXRhKCk7IG1fZnJhZ21lbnRhdGlvbkRhdGEtPm1fcGFnaW5hdGVkTGluZVdp
ZHRoID0gd2lkdGg7IH0KKworICAgIFJlbmRlclJlZ2lvbiogY29udGFpbmluZ1JlZ2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRhdGlvbkRhdGEgPyBtX2ZyYWdtZW50YXRpb25EYXRhLT5t
X2NvbnRhaW5pbmdSZWdpb24gOiAwOyB9CisgICAgdm9pZCBzZXRDb250YWluaW5nUmVnaW9uKFJl
bmRlclJlZ2lvbiopOwogCiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3AoKSBjb25zdDsKICAg
ICBMYXlvdXRVbml0IHNlbGVjdGlvbkJvdHRvbSgpIGNvbnN0OwpAQCAtMTkzLDYgKzE5NywxMiBA
QCBwcml2YXRlOgogCiAgICAgTGF5b3V0VW5pdCBiZWZvcmVBbm5vdGF0aW9uc0FkanVzdG1lbnQo
KSBjb25zdDsKIAorICAgIHZvaWQgZW5zdXJlTGluZUZyYWdtZW50YXRpb25EYXRhKCkKKyAgICB7
CisgICAgICAgIGlmICghbV9mcmFnbWVudGF0aW9uRGF0YSkKKyAgICAgICAgICAgIG1fZnJhZ21l
bnRhdGlvbkRhdGEgPSBhZG9wdFB0cihuZXcgTGluZUZyYWdtZW50YXRpb25EYXRhKCkpOworICAg
IH0KKwogICAgIC8vIFRoaXMgZm9sZHMgaW50byB0aGUgcGFkZGluZyBhdCB0aGUgZW5kIG9mIElu
bGluZUZsb3dCb3ggb24gNjQtYml0LgogICAgIHVuc2lnbmVkIG1fbGluZUJyZWFrUG9zOwogCkBA
IC0yMDcsOCArMjE3LDI1IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBtX2xpbmVUb3BXaXRo
TGVhZGluZzsKICAgICBMYXlvdXRVbml0IG1fbGluZUJvdHRvbVdpdGhMZWFkaW5nOwogCi0gICAg
TGF5b3V0VW5pdCBtX3BhZ2luYXRpb25TdHJ1dDsKLSAgICBMYXlvdXRVbml0IG1fcGFnaW5hdGVk
TGluZVdpZHRoOworICAgIHN0cnVjdCBMaW5lRnJhZ21lbnRhdGlvbkRhdGEgeworICAgICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShMaW5lRnJhZ21lbnRhdGlvbkRhdGEpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIExpbmVGcmFnbWVudGF0aW9uRGF0YSgp
CisgICAgICAgICAgICA6IG1fY29udGFpbmluZ1JlZ2lvbigwKQorICAgICAgICAgICAgLCBtX3Bh
Z2luYXRpb25TdHJ1dCgwKQorICAgICAgICAgICAgLCBtX3BhZ2luYXRlZExpbmVXaWR0aCgwKQor
ICAgICAgICAgICAgLCBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhayhmYWxzZSkKKyAgICAgICAgewor
CisgICAgICAgIH0KKworICAgICAgICBSZW5kZXJSZWdpb24qIG1fY29udGFpbmluZ1JlZ2lvbjsK
KyAgICAgICAgTGF5b3V0VW5pdCBtX3BhZ2luYXRpb25TdHJ1dDsKKyAgICAgICAgTGF5b3V0VW5p
dCBtX3BhZ2luYXRlZExpbmVXaWR0aDsKKyAgICAgICAgYm9vbCBtX2lzRmlyc3RBZnRlclBhZ2VC
cmVhazsKKyAgICB9OworCisgICAgT3duUHRyPExpbmVGcmFnbWVudGF0aW9uRGF0YT4gbV9mcmFn
bWVudGF0aW9uRGF0YTsKIAogICAgIC8vIEZsb2F0cyBoYW5naW5nIG9mZiB0aGUgbGluZSBhcmUg
cHVzaGVkIGludG8gdGhpcyB2ZWN0b3IgZHVyaW5nIGxheW91dC4gSXQgaXMgb25seQogICAgIC8v
IGdvb2QgZm9yIGFzIGxvbmcgYXMgdGhlIGxpbmUgaGFzIG5vdCBiZWVuIG1hcmtlZCBkaXJ0eS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173242</attachid>
            <date>2012-11-09 01:57:42 -0800</date>
            <delta_ts>2012-11-09 06:10:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101332-20121109115549.patch</filename>
            <type>text/plain</type>
            <size>12610</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU3Yjc5NTJhYjYyYTI0
MmEyNThiNDAyMjQ0Njk0NzdjNGM3YzQxMy4uNGIwMDA5YTFiYjE4N2UyY2M5NTI4ZmQ5OTM2YTc0
MTJlOTFmYWJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTExLTA4ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gQWRk
IFJlZ2lvbiBpbmZvIGZvciBSb290TGluZUJveGVzIGFuZCBwYWNrIHRoZSBwYWdpbmF0aW9uIGRh
dGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTMz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSB0aGUgcGFnaW5hdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGluZXMgaXMgc3ByZWFkIGJldHdl
ZW4gdGhlIFJvb3RJbmxpbmVCb3ggYW5kIElubGluZUZsb3dCb3ggY2xhc3NlcywgY29uc3VtaW5n
IG1lbW9yeSBldmVuIHRob3VnaAorICAgICAgICB0aGUgYm94ZXMgd2VyZSBub3QgdGhlIHJlc3Vs
dCBvZiBhbiBwYWdpbmF0aW9uIGxheW91dC4gVG8gb3ZlcmNvbWUgdGhpcywgYSBuZXcgc3RydWN0
IChMaW5lRnJhZ21lbnRhdGlvbkRhdGEpIGlzIGNyZWF0ZWQgdGhhdCB3cmFwcyBhbGwgdGhlIGRh
dGEsCisgICAgICAgIGluY2x1ZGluZyBhIG5ldyBtZW1iZXIsIHRoZSBjb250YWluaW5nIFJlZ2lv
biBmb3IgdGhlIGxpbmUuCisgICAgICAgIFRoZSBjb250YWluaW5nIFJlZ2lvbiBpcyB1c2VkIHRv
IGRldGVjdCBpZiBhIGxpbmUgY2hhbmdlZCB0aGUgUmVnaW9uIHdoZXJlIGl0IHJlc2lkZXMuIFRo
aXMgd2lsbCBiZSBoZWxwZnVsIGVzcGVjaWFsbHkgd2hlbiBpbXBsZW1lbnRpbmcgcmVnaW9uCisg
ICAgICAgIHN0eWxpbmcgZm9yIGxheW91dCBwcm9wZXJ0aWVzLgorICAgICAgICBBIGxpbmUgY2Fu
IGNoYW5nZSB0aGUgcmVnaW9uIHdoZW4gaXQgaXMgc2hpZnRlZCBpbnNpZGUgdGhlIGNvbnRhaW5p
bmcgYmxvY2sgb3IgaWYgdGhlIGVudGlyZSBibG9jayBtb3Zlcy4gVGhpcyBtZWFucyBpdCdzIGJl
dHRlciB0byBkZWxlZ2F0ZQorICAgICAgICB0aGUgdGFzayBvZiB1cGRhdGluZyB0aGUgY29udGFp
bmluZyBSZWdpb24gdG8gdGhlIGJsb2NrLgorCisgICAgICAgIFRlc3RzOiBObyBuZXcgdGVzdHMg
YmVjYXVzZSB0aGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZS4KKworICAgICAgICAqIHJlbmRl
cmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFNhbWVTaXplQXNJbmxpbmVGbG93Qm94
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lRmxvd0JveDo6SW5saW5lRmxvd0JveCk6CisgICAgICAgIChJbmxpbmVGbG93Qm94
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmxpbmVXaWR0aEZvclBhZ2luYXRlZExpbmVDaGFuZ2VkKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bGlua1RvRW5kTGluZUlmTmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpkZXRlcm1pbmVTdGFydFBvc2l0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5l
Qm94OjpSb290SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OnNl
dENvbnRhaW5pbmdSZWdpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Um9vdElubGluZUJveDo6cGFnaW5hdGlvblN0cnV0KToKKyAgICAgICAgKFdlYkNvcmU6OlJv
b3RJbmxpbmVCb3g6OnNldFBhZ2luYXRpb25TdHJ1dCk6CisgICAgICAgIChXZWJDb3JlOjpSb290
SW5saW5lQm94Ojppc0ZpcnN0QWZ0ZXJQYWdlQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6Um9v
dElubGluZUJveDo6c2V0SXNGaXJzdEFmdGVyUGFnZUJyZWFrKToKKyAgICAgICAgKFdlYkNvcmU6
OlJvb3RJbmxpbmVCb3g6OnBhZ2luYXRlZExpbmVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpS
b290SW5saW5lQm94OjpzZXRQYWdpbmF0ZWRMaW5lV2lkdGgpOgorICAgICAgICAoUm9vdElubGlu
ZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94Ojpjb250YWluaW5nUmVnaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmVuc3VyZUxpbmVGcmFnbWVudGF0
aW9uRGF0YSk6CisgICAgICAgIChMaW5lRnJhZ21lbnRhdGlvbkRhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6Um9vdElubGluZUJveDo6TGluZUZyYWdtZW50YXRpb25EYXRhOjpMaW5lRnJhZ21lbnRh
dGlvbkRhdGEpOgorCiAyMDEyLTExLTA5ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOYXZpZ2F0aW5nIGFyb3VuZCBOTUkgc25h
cHNob3QgZ3JpZCB3aXRoIGtleXMgYnJlYWtzIHRoZSBncmlkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKaW5kZXggMzZhYWY5NWVjNzViMGRjZTA2NTY4ODM5MjQ0
OWJkZmUwOTJlNzQzZS4uOGU0MTFkMTFhMGRkNDQ4NTk0MDc4NGQ3MjA1ZjhiYWUxZDkyZDZhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcApAQCAtNDgsNyAr
NDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBTYW1lU2l6ZUFzSW5saW5lRmxv
d0JveCA6IHB1YmxpYyBJbmxpbmVCb3ggewogICAgIHZvaWQqIHBvaW50ZXJzWzVdOwotICAgIHVp
bnQzMl90IGJpdGZpZWxkcyA6IDI0OworICAgIHVpbnQzMl90IGJpdGZpZWxkcyA6IDIzOwogfTsK
IAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKElubGluZUZsb3dCb3gpID09IHNpemVvZihTYW1lU2l6
ZUFzSW5saW5lRmxvd0JveCksIElubGluZUZsb3dCb3hfc2hvdWxkX3N0YXlfc21hbGwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKaW5kZXggNDhiNzIwYzc1ZGQ1M2U3
ZDIwOTc4MmRkNGJhMmYzMWE0NTIxNTAwZS4uMzZkNDhkYzg3YmIxNTI2ZjM1MzJmMzFmYWEwMmNl
NjExZTE1MWRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCkBA
IC01Miw3ICs1Miw2IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2Jhc2VsaW5lVHlwZShBbHBoYWJl
dGljQmFzZWxpbmUpCiAgICAgICAgICwgbV9oYXNBbm5vdGF0aW9uc0JlZm9yZShmYWxzZSkKICAg
ICAgICAgLCBtX2hhc0Fubm90YXRpb25zQWZ0ZXIoZmFsc2UpCi0gICAgICAgICwgbV9pc0ZpcnN0
QWZ0ZXJQYWdlQnJlYWsoZmFsc2UpCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAsIG1faGFzQmFk
Q2hpbGRMaXN0KGZhbHNlKQogI2VuZGlmCkBAIC0zMjUsNyArMzI0LDYgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIElmIHRoZSBsaW5lIGNvbnRhaW5zIGFueSBydWJ5IHJ1bnMsIHRoZW4gdGhpcyB3aWxs
IGJlIHRydWUuCiAgICAgdW5zaWduZWQgbV9oYXNBbm5vdGF0aW9uc0JlZm9yZSA6IDE7CiAgICAg
dW5zaWduZWQgbV9oYXNBbm5vdGF0aW9uc0FmdGVyIDogMTsKLSAgICB1bnNpZ25lZCBtX2lzRmly
c3RBZnRlclBhZ2VCcmVhayA6IDE7CiAKICAgICB1bnNpZ25lZCBtX2xpbmVCcmVha0JpZGlTdGF0
dXNFb3IgOiA1OyAvLyBXVEY6OlVuaWNvZGU6OkRpcmVjdGlvbgogICAgIHVuc2lnbmVkIG1fbGlu
ZUJyZWFrQmlkaVN0YXR1c0xhc3RTdHJvbmcgOiA1OyAvLyBXVEY6OlVuaWNvZGU6OkRpcmVjdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggOTgyYjA5NTE5
OWI0MzFiMTBhZjNkOGNmZGYzNWIwZmU1ODVhZTVkMy4uZWE1ZWY2NDI0MWQ1ZTlkMjU4MTE3NjBi
NGEyZWJhMzBjY2MzNjFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC03MjQ1LDcgKzcyNDUsMTIgQEAgYm9vbCBSZW5kZXJCbG9jazo6bGluZVdpZHRoRm9y
UGFnaW5hdGVkTGluZUNoYW5nZWQoUm9vdElubGluZUJveCogcm9vdEJveCwgTGF5b3UKICAgICBp
ZiAoIWluUmVuZGVyRmxvd1RocmVhZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBy
ZXR1cm4gcm9vdEJveC0+cGFnaW5hdGVkTGluZVdpZHRoKCkgIT0gYXZhaWxhYmxlTG9naWNhbFdp
ZHRoRm9yQ29udGVudChyb290Qm94LT5saW5lVG9wV2l0aExlYWRpbmcoKSArIGxpbmVEZWx0YSk7
CisgICAgQVNTRVJUKHJvb3RCb3gtPmNvbnRhaW5pbmdSZWdpb24oKSk7CisgICAgUmVuZGVyUmVn
aW9uKiBjdXJyZW50UmVnaW9uID0gcmVnaW9uQXRCbG9ja09mZnNldChyb290Qm94LT5saW5lVG9w
V2l0aExlYWRpbmcoKSArIGxpbmVEZWx0YSk7CisgICAgLy8gSnVzdCBiYWlsIGlmIHRoZSByZWdp
b24gZGlkbid0IGNoYW5nZS4KKyAgICBpZiAocm9vdEJveC0+Y29udGFpbmluZ1JlZ2lvbigpID09
IGN1cnJlbnRSZWdpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcm9vdEJv
eC0+cGFnaW5hdGVkTGluZVdpZHRoKCkgIT0gYXZhaWxhYmxlTG9naWNhbFdpZHRoRm9yQ29udGVu
dChjdXJyZW50UmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKCkpOwogfQog
CiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKaW5kZXggMmU1OGVhNjc3MTE2MzlkMTgxOGUzY2E4Mjk2ZjlmZjk5Y2EwZDgy
Ni4uYjkzYThjNzVmZjIyYjdmYjA4Mzk0YzI5ODY3ZmJhZDhmNTg4NGUyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTE1
MDgsNiArMTUwOCw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJh
bmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAKICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobGluZUJveC0+bGluZUJvdHRvbVdpdGhMZWFkaW5n
KCkpOwogICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlu
UmVuZGVyRmxvd1RocmVhZCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJveC0+c2V0
Q29udGFpbmluZ1JlZ2lvbihyZWdpb25BdEJsb2NrT2Zmc2V0KGxpbmVCb3gtPmxpbmVUb3BXaXRo
TGVhZGluZygpKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC0xNTYy
LDYgKzE1NjUsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjpsaW5rVG9FbmRMaW5lSWZOZWVkZWQoTGlu
ZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKICAgICAgICAgICAgICAgICAgICAgbGF5b3V0U3Rh
dGUudXBkYXRlUmVwYWludFJhbmdlRnJvbUJveChsaW5lLCBkZWx0YSk7CiAgICAgICAgICAgICAg
ICAgICAgIGxpbmUtPmFkanVzdEJsb2NrRGlyZWN0aW9uUG9zaXRpb24oZGVsdGEpOwogICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaW5SZW5kZXJGbG93VGhyZWFkKCkpCisg
ICAgICAgICAgICAgICAgICAgIGxpbmUtPnNldENvbnRhaW5pbmdSZWdpb24ocmVnaW9uQXRCbG9j
a09mZnNldChsaW5lLT5saW5lVG9wV2l0aExlYWRpbmcoKSkpOwogICAgICAgICAgICAgICAgIGlm
IChWZWN0b3I8UmVuZGVyQm94Kj4qIGNsZWFuTGluZUZsb2F0cyA9IGxpbmUtPmZsb2F0c1B0cigp
KSB7CiAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxSZW5kZXJCb3gqPjo6aXRlcmF0b3IgZW5k
ID0gY2xlYW5MaW5lRmxvYXRzLT5lbmQoKTsKICAgICAgICAgICAgICAgICAgICAgZm9yIChWZWN0
b3I8UmVuZGVyQm94Kj46Oml0ZXJhdG9yIGYgPSBjbGVhbkxpbmVGbG9hdHMtPmJlZ2luKCk7IGYg
IT0gZW5kOyArK2YpIHsKQEAgLTE1OTksNiArMTYwNCw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6Omxp
bmtUb0VuZExpbmVJZk5lZWRlZChMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQogICAgICAg
ICAgICAgTGF5b3V0UmVjdCBsb2dpY2FsTGF5b3V0T3ZlcmZsb3coMCwgYmxvY2tMb2dpY2FsSGVp
Z2h0LCAxLCBib3R0b21MYXlvdXRPdmVyZmxvdyAtIGJsb2NrTG9naWNhbEhlaWdodCk7CiAgICAg
ICAgICAgICBMYXlvdXRSZWN0IGxvZ2ljYWxWaXN1YWxPdmVyZmxvdygwLCBibG9ja0xvZ2ljYWxI
ZWlnaHQsIDEsIGJvdHRvbVZpc3VhbE92ZXJmbG93IC0gYmxvY2tMb2dpY2FsSGVpZ2h0KTsKICAg
ICAgICAgICAgIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+c2V0T3ZlcmZsb3dGcm9tTG9naWNhbFJl
Y3RzKGxvZ2ljYWxMYXlvdXRPdmVyZmxvdywgbG9naWNhbFZpc3VhbE92ZXJmbG93LCB0cmFpbGlu
Z0Zsb2F0c0xpbmVCb3gtPmxpbmVUb3AoKSwgdHJhaWxpbmdGbG9hdHNMaW5lQm94LT5saW5lQm90
dG9tKCkpOworICAgICAgICAgICAgaWYgKGluUmVuZGVyRmxvd1RocmVhZCgpKQorICAgICAgICAg
ICAgICAgIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+c2V0Q29udGFpbmluZ1JlZ2lvbihyZWdpb25B
dEJsb2NrT2Zmc2V0KHRyYWlsaW5nRmxvYXRzTGluZUJveC0+bGluZVRvcFdpdGhMZWFkaW5nKCkp
KTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IEZsb2F0aW5nT2JqZWN0U2V0JiBmbG9hdGlu
Z09iamVjdFNldCA9IG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKTsKQEAgLTE3OTMsNiArMTgwMCw4
IEBAIFJvb3RJbmxpbmVCb3gqIFJlbmRlckJsb2NrOjpkZXRlcm1pbmVTdGFydFBvc2l0aW9uKExp
bmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsCiAgICAgICAgICAgICAgICAgICAgIGxheW91dFN0
YXRlLnVwZGF0ZVJlcGFpbnRSYW5nZUZyb21Cb3goY3VyciwgcGFnaW5hdGlvbkRlbHRhKTsKICAg
ICAgICAgICAgICAgICAgICAgY3Vyci0+YWRqdXN0QmxvY2tEaXJlY3Rpb25Qb3NpdGlvbihwYWdp
bmF0aW9uRGVsdGEpOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaW5S
ZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICAgICAgICAgIGN1cnItPnNldENvbnRhaW5p
bmdSZWdpb24ocmVnaW9uQXRCbG9ja09mZnNldChjdXJyLT5saW5lVG9wV2l0aExlYWRpbmcoKSkp
OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBJZiBhIG5ldyBmbG9hdCBoYXMgYmVl
biBpbnNlcnRlZCBiZWZvcmUgdGhpcyBsaW5lIG9yIGJlZm9yZSBpdHMgbGFzdCBrbm93biBmbG9h
dCwganVzdCBkbyBhIGZ1bGwgbGF5b3V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJ
bmxpbmVCb3guY3BwCmluZGV4IDZjOTMzMDM2MmNhMjE2OTJhMWNhMzJjNzgyNDVjOWJiNGRlNzZm
YmEuLjJhODBjN2E0NzcyMjVmMmY5YjJlODAzNmM5NDM4YjA1MDM2ZjVmZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKQEAgLTUyLDggKzUyLDYgQEAgUm9v
dElubGluZUJveDo6Um9vdElubGluZUJveChSZW5kZXJCbG9jayogYmxvY2spCiAgICAgLCBtX2xp
bmVCb3R0b20oMCkKICAgICAsIG1fbGluZVRvcFdpdGhMZWFkaW5nKDApCiAgICAgLCBtX2xpbmVC
b3R0b21XaXRoTGVhZGluZygwKQotICAgICwgbV9wYWdpbmF0aW9uU3RydXQoMCkKLSAgICAsIG1f
cGFnaW5hdGVkTGluZVdpZHRoKDApCiB7CiAgICAgc2V0SXNIb3Jpem9udGFsKGJsb2NrLT5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKTsKIH0KQEAgLTI1MSw2ICsyNDksMTQgQEAgdm9pZCBSb290
SW5saW5lQm94OjpjaGlsZFJlbW92ZWQoSW5saW5lQm94KiBib3gpCiAgICAgfQogfQogCit2b2lk
IFJvb3RJbmxpbmVCb3g6OnNldENvbnRhaW5pbmdSZWdpb24oUmVuZGVyUmVnaW9uKiByZWdpb24p
Cit7CisgICAgQVNTRVJUKCFpc0RpcnR5KCkpOworICAgIEFTU0VSVChibG9jaygpLT5pblJlbmRl
ckZsb3dUaHJlYWQoKSk7CisgICAgZW5zdXJlTGluZUZyYWdtZW50YXRpb25EYXRhKCk7CisgICAg
bV9mcmFnbWVudGF0aW9uRGF0YS0+bV9jb250YWluaW5nUmVnaW9uID0gcmVnaW9uOworfQorCiBM
YXlvdXRVbml0IFJvb3RJbmxpbmVCb3g6OmFsaWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKExheW91
dFVuaXQgaGVpZ2h0T2ZCbG9jaywgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmIHRl
eHRCb3hEYXRhTWFwLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmIHZlcnRpY2FsUG9zaXRpb25DYWNo
ZSkKIHsKICNpZiBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5l
Qm94LmgKaW5kZXggMTIwYWZhYTMxN2NhZTA5OWY3ZWZjNzE2Y2ZiMmNjOTVmN2Y2ZTg2Zi4uYzZk
N2E1ZGE4MDc4ODJhMTNhOWEzZTE0NzVmODZkYjZjYWYyNTRlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUm9vdElubGluZUJveC5oCkBAIC0yOCw2ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRWxsaXBzaXNCb3g7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OworY2xhc3Mg
UmVuZGVyUmVnaW9uOwogCiBzdHJ1Y3QgQmlkaVN0YXR1czsKIHN0cnVjdCBHYXBSZWN0czsKQEAg
LTUzLDE0ICs1NCwxNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBsaW5lVG9wV2l0aExlYWRp
bmcoKSBjb25zdCB7IHJldHVybiBtX2xpbmVUb3BXaXRoTGVhZGluZzsgfQogICAgIExheW91dFVu
aXQgbGluZUJvdHRvbVdpdGhMZWFkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9saW5lQm90dG9tV2l0
aExlYWRpbmc7IH0KICAgICAKLSAgICBMYXlvdXRVbml0IHBhZ2luYXRpb25TdHJ1dCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnaW5hdGlvblN0cnV0OyB9Ci0gICAgdm9pZCBzZXRQYWdpbmF0aW9uU3Ry
dXQoTGF5b3V0VW5pdCBzKSB7IG1fcGFnaW5hdGlvblN0cnV0ID0gczsgfQorICAgIExheW91dFVu
aXQgcGFnaW5hdGlvblN0cnV0KCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudGF0aW9uRGF0YSA/
IG1fZnJhZ21lbnRhdGlvbkRhdGEtPm1fcGFnaW5hdGlvblN0cnV0IDogTGF5b3V0VW5pdCgwKTsg
fQorICAgIHZvaWQgc2V0UGFnaW5hdGlvblN0cnV0KExheW91dFVuaXQgc3RydXQpIHsgZW5zdXJl
TGluZUZyYWdtZW50YXRpb25EYXRhKCk7IG1fZnJhZ21lbnRhdGlvbkRhdGEtPm1fcGFnaW5hdGlv
blN0cnV0ID0gc3RydXQ7IH0KIAotICAgIGJvb2wgaXNGaXJzdEFmdGVyUGFnZUJyZWFrKCkgY29u
c3QgeyByZXR1cm4gbV9pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWs7IH0KLSAgICB2b2lkIHNldElzRmly
c3RBZnRlclBhZ2VCcmVhayhib29sIGlzRmlyc3RBZnRlclBhZ2VCcmVhaykgeyBtX2lzRmlyc3RB
ZnRlclBhZ2VCcmVhayA9IGlzRmlyc3RBZnRlclBhZ2VCcmVhazsgfQorICAgIGJvb2wgaXNGaXJz
dEFmdGVyUGFnZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudGF0aW9uRGF0YSA/IG1f
ZnJhZ21lbnRhdGlvbkRhdGEtPm1faXNGaXJzdEFmdGVyUGFnZUJyZWFrIDogZmFsc2U7IH0KKyAg
ICB2b2lkIHNldElzRmlyc3RBZnRlclBhZ2VCcmVhayhib29sIGlzRmlyc3RBZnRlclBhZ2VCcmVh
aykgeyBlbnN1cmVMaW5lRnJhZ21lbnRhdGlvbkRhdGEoKTsgbV9mcmFnbWVudGF0aW9uRGF0YS0+
bV9pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsgPSBpc0ZpcnN0QWZ0ZXJQYWdlQnJlYWs7IH0KIAotICAg
IExheW91dFVuaXQgcGFnaW5hdGVkTGluZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9wYWdpbmF0
ZWRMaW5lV2lkdGg7IH0KLSAgICB2b2lkIHNldFBhZ2luYXRlZExpbmVXaWR0aChMYXlvdXRVbml0
IHdpZHRoKSB7IG1fcGFnaW5hdGVkTGluZVdpZHRoID0gd2lkdGg7IH0KKyAgICBMYXlvdXRVbml0
IHBhZ2luYXRlZExpbmVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRhdGlvbkRhdGEg
PyBtX2ZyYWdtZW50YXRpb25EYXRhLT5tX3BhZ2luYXRlZExpbmVXaWR0aCA6IExheW91dFVuaXQo
MCk7IH0KKyAgICB2b2lkIHNldFBhZ2luYXRlZExpbmVXaWR0aChMYXlvdXRVbml0IHdpZHRoKSB7
IGVuc3VyZUxpbmVGcmFnbWVudGF0aW9uRGF0YSgpOyBtX2ZyYWdtZW50YXRpb25EYXRhLT5tX3Bh
Z2luYXRlZExpbmVXaWR0aCA9IHdpZHRoOyB9CisKKyAgICBSZW5kZXJSZWdpb24qIGNvbnRhaW5p
bmdSZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50YXRpb25EYXRhID8gbV9mcmFnbWVu
dGF0aW9uRGF0YS0+bV9jb250YWluaW5nUmVnaW9uIDogMDsgfQorICAgIHZvaWQgc2V0Q29udGFp
bmluZ1JlZ2lvbihSZW5kZXJSZWdpb24qKTsKIAogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9w
KCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0b20oKSBjb25zdDsKQEAgLTE5
Myw2ICsxOTcsMTIgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgYmVmb3JlQW5ub3RhdGlv
bnNBZGp1c3RtZW50KCkgY29uc3Q7CiAKKyAgICB2b2lkIGVuc3VyZUxpbmVGcmFnbWVudGF0aW9u
RGF0YSgpCisgICAgeworICAgICAgICBpZiAoIW1fZnJhZ21lbnRhdGlvbkRhdGEpCisgICAgICAg
ICAgICBtX2ZyYWdtZW50YXRpb25EYXRhID0gYWRvcHRQdHIobmV3IExpbmVGcmFnbWVudGF0aW9u
RGF0YSgpKTsKKyAgICB9CisKICAgICAvLyBUaGlzIGZvbGRzIGludG8gdGhlIHBhZGRpbmcgYXQg
dGhlIGVuZCBvZiBJbmxpbmVGbG93Qm94IG9uIDY0LWJpdC4KICAgICB1bnNpZ25lZCBtX2xpbmVC
cmVha1BvczsKIApAQCAtMjA3LDggKzIxNywyNSBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQg
bV9saW5lVG9wV2l0aExlYWRpbmc7CiAgICAgTGF5b3V0VW5pdCBtX2xpbmVCb3R0b21XaXRoTGVh
ZGluZzsKIAotICAgIExheW91dFVuaXQgbV9wYWdpbmF0aW9uU3RydXQ7Ci0gICAgTGF5b3V0VW5p
dCBtX3BhZ2luYXRlZExpbmVXaWR0aDsKKyAgICBzdHJ1Y3QgTGluZUZyYWdtZW50YXRpb25EYXRh
IHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGluZUZyYWdtZW50YXRpb25EYXRhKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHVibGljOgorICAgICAgICBMaW5lRnJhZ21l
bnRhdGlvbkRhdGEoKQorICAgICAgICAgICAgOiBtX2NvbnRhaW5pbmdSZWdpb24oMCkKKyAgICAg
ICAgICAgICwgbV9wYWdpbmF0aW9uU3RydXQoMCkKKyAgICAgICAgICAgICwgbV9wYWdpbmF0ZWRM
aW5lV2lkdGgoMCkKKyAgICAgICAgICAgICwgbV9pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoZmFsc2Up
CisgICAgICAgIHsKKworICAgICAgICB9CisKKyAgICAgICAgUmVuZGVyUmVnaW9uKiBtX2NvbnRh
aW5pbmdSZWdpb247CisgICAgICAgIExheW91dFVuaXQgbV9wYWdpbmF0aW9uU3RydXQ7CisgICAg
ICAgIExheW91dFVuaXQgbV9wYWdpbmF0ZWRMaW5lV2lkdGg7CisgICAgICAgIGJvb2wgbV9pc0Zp
cnN0QWZ0ZXJQYWdlQnJlYWs7CisgICAgfTsKKworICAgIE93blB0cjxMaW5lRnJhZ21lbnRhdGlv
bkRhdGE+IG1fZnJhZ21lbnRhdGlvbkRhdGE7CiAKICAgICAvLyBGbG9hdHMgaGFuZ2luZyBvZmYg
dGhlIGxpbmUgYXJlIHB1c2hlZCBpbnRvIHRoaXMgdmVjdG9yIGR1cmluZyBsYXlvdXQuIEl0IGlz
IG9ubHkKICAgICAvLyBnb29kIGZvciBhcyBsb25nIGFzIHRoZSBsaW5lIGhhcyBub3QgYmVlbiBt
YXJrZWQgZGlydHkuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173289</attachid>
            <date>2012-11-09 06:10:29 -0800</date>
            <delta_ts>2012-11-15 05:49:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101332-20121109160836.patch</filename>
            <type>text/plain</type>
            <size>12696</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU3Yjc5NTJhYjYyYTI0
MmEyNThiNDAyMjQ0Njk0NzdjNGM3YzQxMy4uYjNkZDlmM2E3NjU2OTg2YzczYjg1NTYzMjU1Njg5
YWE1YWQxMTg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTExLTA5ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gQWRk
IFJlZ2lvbiBpbmZvIGZvciBSb290TGluZUJveGVzIGFuZCBwYWNrIHRoZSBwYWdpbmF0aW9uIGRh
dGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTMz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSB0aGUgcGFnaW5hdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGluZXMgaXMgc3ByZWFkIGJldHdl
ZW4gdGhlIFJvb3RJbmxpbmVCb3ggYW5kIElubGluZUZsb3dCb3ggY2xhc3NlcywgY29uc3VtaW5n
IG1lbW9yeSBldmVuIHRob3VnaAorICAgICAgICB0aGUgYm94ZXMgd2VyZSBub3QgdGhlIHJlc3Vs
dCBvZiBhbiBwYWdpbmF0aW9uIGxheW91dC4gVG8gb3ZlcmNvbWUgdGhpcywgYSBuZXcgc3RydWN0
IChMaW5lRnJhZ21lbnRhdGlvbkRhdGEpIGlzIGNyZWF0ZWQgdGhhdCB3cmFwcyBhbGwgdGhlIGRh
dGEsCisgICAgICAgIGluY2x1ZGluZyBhIG5ldyBtZW1iZXIsIHRoZSBjb250YWluaW5nIFJlZ2lv
biBmb3IgdGhlIGxpbmUuCisgICAgICAgIFRoZSBjb250YWluaW5nIFJlZ2lvbiBpcyB1c2VkIHRv
IGRldGVjdCBpZiBhIGxpbmUgY2hhbmdlZCB0aGUgUmVnaW9uIHdoZXJlIGl0IHJlc2lkZXMuIFRo
aXMgd2lsbCBiZSBoZWxwZnVsIGVzcGVjaWFsbHkgd2hlbiBpbXBsZW1lbnRpbmcgcmVnaW9uCisg
ICAgICAgIHN0eWxpbmcgZm9yIGxheW91dCBwcm9wZXJ0aWVzIChlLmcuIHRoZSBmb250LXNpemUg
cHJvcGVydHkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NTU5ICku
CisgICAgICAgIEEgbGluZSBjYW4gY2hhbmdlIHRoZSByZWdpb24gd2hlbiBpdCBpcyBzaGlmdGVk
IGluc2lkZSB0aGUgY29udGFpbmluZyBibG9jayBvciBpZiB0aGUgZW50aXJlIGJsb2NrIG1vdmVz
LiBUaGlzIG1lYW5zIGl0J3MgYmV0dGVyIHRvIGRlbGVnYXRlCisgICAgICAgIHRoZSB0YXNrIG9m
IHVwZGF0aW5nIHRoZSBjb250YWluaW5nIFJlZ2lvbiB0byB0aGUgYmxvY2suCisKKyAgICAgICAg
VGVzdHM6IE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdl
LgorCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoU2Ft
ZVNpemVBc0lubGluZUZsb3dCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpJbmxpbmVGbG93Qm94KToKKyAg
ICAgICAgKElubGluZUZsb3dCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGluZVdpZHRoRm9yUGFnaW5hdGVk
TGluZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJ
blJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsaW5rVG9FbmRMaW5lSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmRldGVybWluZVN0YXJ0UG9z
aXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OlJvb3RJbmxpbmVCb3gpOgorICAgICAgICAoV2ViQ29y
ZTo6Um9vdElubGluZUJveDo6c2V0Q29udGFpbmluZ1JlZ2lvbik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpwYWdpbmF0aW9uU3RydXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6c2V0UGFnaW5hdGlvblN0cnV0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmlzRmlyc3RBZnRlclBhZ2VCcmVhayk6Cisg
ICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpzZXRJc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsp
OgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6cGFnaW5hdGVkTGluZVdpZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OnNldFBhZ2luYXRlZExpbmVXaWR0aCk6
CisgICAgICAgIChSb290SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVC
b3g6OmNvbnRhaW5pbmdSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6
ZW5zdXJlTGluZUZyYWdtZW50YXRpb25EYXRhKToKKyAgICAgICAgKExpbmVGcmFnbWVudGF0aW9u
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpMaW5lRnJhZ21lbnRhdGlv
bkRhdGE6OkxpbmVGcmFnbWVudGF0aW9uRGF0YSk6CisKIDIwMTItMTEtMDkgIEFsZXhlaSBGaWxp
cHBvdiAgPGFscGhAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5hdmln
YXRpbmcgYXJvdW5kIE5NSSBzbmFwc2hvdCBncmlkIHdpdGgga2V5cyBicmVha3MgdGhlIGdyaWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRleCAzNmFhZjk1
ZWM3NWIwZGNlMDY1Njg4MzkyNDQ5YmRmZTA5MmU3NDNlLi44ZTQxMWQxMWEwZGQ0NDg1OTQwNzg0
ZDcyMDVmOGJhZTFkOTJkNmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guY3BwCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0
IFNhbWVTaXplQXNJbmxpbmVGbG93Qm94IDogcHVibGljIElubGluZUJveCB7CiAgICAgdm9pZCog
cG9pbnRlcnNbNV07Ci0gICAgdWludDMyX3QgYml0ZmllbGRzIDogMjQ7CisgICAgdWludDMyX3Qg
Yml0ZmllbGRzIDogMjM7CiB9OwogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoSW5saW5lRmxvd0Jv
eCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNJbmxpbmVGbG93Qm94KSwgSW5saW5lRmxvd0JveF9zaG91
bGRfc3RheV9zbWFsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lRmxvd0JveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaApp
bmRleCA0OGI3MjBjNzVkZDUzZTdkMjA5NzgyZGQ0YmEyZjMxYTQ1MjE1MDBlLi4zNmQ0OGRjODdi
YjE1MjZmMzUzMmYzMWZhYTAyY2U2MTFlMTUxZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmgKQEAgLTUyLDcgKzUyLDYgQEAgcHVibGljOgogICAgICAgICAsIG1f
YmFzZWxpbmVUeXBlKEFscGhhYmV0aWNCYXNlbGluZSkKICAgICAgICAgLCBtX2hhc0Fubm90YXRp
b25zQmVmb3JlKGZhbHNlKQogICAgICAgICAsIG1faGFzQW5ub3RhdGlvbnNBZnRlcihmYWxzZSkK
LSAgICAgICAgLCBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhayhmYWxzZSkKICNpZm5kZWYgTkRFQlVH
CiAgICAgICAgICwgbV9oYXNCYWRDaGlsZExpc3QoZmFsc2UpCiAjZW5kaWYKQEAgLTMyNSw3ICsz
MjQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gSWYgdGhlIGxpbmUgY29udGFpbnMgYW55IHJ1Ynkg
cnVucywgdGhlbiB0aGlzIHdpbGwgYmUgdHJ1ZS4KICAgICB1bnNpZ25lZCBtX2hhc0Fubm90YXRp
b25zQmVmb3JlIDogMTsKICAgICB1bnNpZ25lZCBtX2hhc0Fubm90YXRpb25zQWZ0ZXIgOiAxOwot
ICAgIHVuc2lnbmVkIG1faXNGaXJzdEFmdGVyUGFnZUJyZWFrIDogMTsKIAogICAgIHVuc2lnbmVk
IG1fbGluZUJyZWFrQmlkaVN0YXR1c0VvciA6IDU7IC8vIFdURjo6VW5pY29kZTo6RGlyZWN0aW9u
CiAgICAgdW5zaWduZWQgbV9saW5lQnJlYWtCaWRpU3RhdHVzTGFzdFN0cm9uZyA6IDU7IC8vIFdU
Rjo6VW5pY29kZTo6RGlyZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAppbmRleCA5ODJiMDk1MTk5YjQzMWIxMGFmM2Q4Y2ZkZjM1YjBmZTU4NWFlNWQzLi5lYTVl
ZjY0MjQxZDVlOWQyNTgxMTc2MGI0YTJlYmEzMGNjYzM2MWQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTcyNDUsNyArNzI0NSwxMiBAQCBib29sIFJlbmRl
ckJsb2NrOjpsaW5lV2lkdGhGb3JQYWdpbmF0ZWRMaW5lQ2hhbmdlZChSb290SW5saW5lQm94KiBy
b290Qm94LCBMYXlvdQogICAgIGlmICghaW5SZW5kZXJGbG93VGhyZWFkKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIHJldHVybiByb290Qm94LT5wYWdpbmF0ZWRMaW5lV2lkdGgoKSAh
PSBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JDb250ZW50KHJvb3RCb3gtPmxpbmVUb3BXaXRoTGVh
ZGluZygpICsgbGluZURlbHRhKTsKKyAgICBBU1NFUlQocm9vdEJveC0+Y29udGFpbmluZ1JlZ2lv
bigpKTsKKyAgICBSZW5kZXJSZWdpb24qIGN1cnJlbnRSZWdpb24gPSByZWdpb25BdEJsb2NrT2Zm
c2V0KHJvb3RCb3gtPmxpbmVUb3BXaXRoTGVhZGluZygpICsgbGluZURlbHRhKTsKKyAgICAvLyBK
dXN0IGJhaWwgaWYgdGhlIHJlZ2lvbiBkaWRuJ3QgY2hhbmdlLgorICAgIGlmIChyb290Qm94LT5j
b250YWluaW5nUmVnaW9uKCkgPT0gY3VycmVudFJlZ2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiByb290Qm94LT5wYWdpbmF0ZWRMaW5lV2lkdGgoKSAhPSBhdmFpbGFibGVM
b2dpY2FsV2lkdGhGb3JDb250ZW50KGN1cnJlbnRSZWdpb24sIG9mZnNldEZyb21Mb2dpY2FsVG9w
T2ZGaXJzdFBhZ2UoKSk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyQmxvY2s6Om9mZnNldEZyb21M
b2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCAyZTU4ZWE2NzcxMTYzOWQxODE4
ZTNjYTgyOTZmOWZmOTljYTBkODI2Li5iOTNhOGM3NWZmMjJiN2ZiMDgzOTRjMjk4NjdmYmFkOGY1
ODg0ZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcApAQCAtMTUwOCw2ICsxNTA4LDkgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5s
aW4KIAogICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChsaW5lQm94LT5s
aW5lQm90dG9tV2l0aExlYWRpbmcoKSk7CiAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgICAgICBpZiAoaW5SZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5lQm94LT5zZXRDb250YWluaW5nUmVnaW9uKHJlZ2lvbkF0QmxvY2tPZmZzZXQo
bGluZUJveC0+bGluZVRvcFdpdGhMZWFkaW5nKCkpKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CiAKQEAgLTE1NjIsNiArMTU2NSw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxpbmtU
b0VuZExpbmVJZk5lZWRlZChMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQogICAgICAgICAg
ICAgICAgICAgICBsYXlvdXRTdGF0ZS51cGRhdGVSZXBhaW50UmFuZ2VGcm9tQm94KGxpbmUsIGRl
bHRhKTsKICAgICAgICAgICAgICAgICAgICAgbGluZS0+YWRqdXN0QmxvY2tEaXJlY3Rpb25Qb3Np
dGlvbihkZWx0YSk7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpblJl
bmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAgICAgICAgICAgbGluZS0+c2V0Q29udGFpbmlu
Z1JlZ2lvbihyZWdpb25BdEJsb2NrT2Zmc2V0KGxpbmUtPmxpbmVUb3BXaXRoTGVhZGluZygpKSk7
CiAgICAgICAgICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJCb3gqPiogY2xlYW5MaW5lRmxvYXRz
ID0gbGluZS0+ZmxvYXRzUHRyKCkpIHsKICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPFJlbmRl
ckJveCo+OjppdGVyYXRvciBlbmQgPSBjbGVhbkxpbmVGbG9hdHMtPmVuZCgpOwogICAgICAgICAg
ICAgICAgICAgICBmb3IgKFZlY3RvcjxSZW5kZXJCb3gqPjo6aXRlcmF0b3IgZiA9IGNsZWFuTGlu
ZUZsb2F0cy0+YmVnaW4oKTsgZiAhPSBlbmQ7ICsrZikgewpAQCAtMTU5OSw2ICsxNjA0LDggQEAg
dm9pZCBSZW5kZXJCbG9jazo6bGlua1RvRW5kTGluZUlmTmVlZGVkKExpbmVMYXlvdXRTdGF0ZSYg
bGF5b3V0U3RhdGUpCiAgICAgICAgICAgICBMYXlvdXRSZWN0IGxvZ2ljYWxMYXlvdXRPdmVyZmxv
dygwLCBibG9ja0xvZ2ljYWxIZWlnaHQsIDEsIGJvdHRvbUxheW91dE92ZXJmbG93IC0gYmxvY2tM
b2dpY2FsSGVpZ2h0KTsKICAgICAgICAgICAgIExheW91dFJlY3QgbG9naWNhbFZpc3VhbE92ZXJm
bG93KDAsIGJsb2NrTG9naWNhbEhlaWdodCwgMSwgYm90dG9tVmlzdWFsT3ZlcmZsb3cgLSBibG9j
a0xvZ2ljYWxIZWlnaHQpOwogICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNMaW5lQm94LT5zZXRP
dmVyZmxvd0Zyb21Mb2dpY2FsUmVjdHMobG9naWNhbExheW91dE92ZXJmbG93LCBsb2dpY2FsVmlz
dWFsT3ZlcmZsb3csIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+bGluZVRvcCgpLCB0cmFpbGluZ0Zs
b2F0c0xpbmVCb3gtPmxpbmVCb3R0b20oKSk7CisgICAgICAgICAgICBpZiAoaW5SZW5kZXJGbG93
VGhyZWFkKCkpCisgICAgICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNMaW5lQm94LT5zZXRDb250
YWluaW5nUmVnaW9uKHJlZ2lvbkF0QmxvY2tPZmZzZXQodHJhaWxpbmdGbG9hdHNMaW5lQm94LT5s
aW5lVG9wV2l0aExlYWRpbmcoKSkpOwogICAgICAgICB9CiAKICAgICAgICAgY29uc3QgRmxvYXRp
bmdPYmplY3RTZXQmIGZsb2F0aW5nT2JqZWN0U2V0ID0gbV9mbG9hdGluZ09iamVjdHMtPnNldCgp
OwpAQCAtMTc5Myw2ICsxODAwLDggQEAgUm9vdElubGluZUJveCogUmVuZGVyQmxvY2s6OmRldGVy
bWluZVN0YXJ0UG9zaXRpb24oTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwKICAgICAgICAg
ICAgICAgICAgICAgbGF5b3V0U3RhdGUudXBkYXRlUmVwYWludFJhbmdlRnJvbUJveChjdXJyLCBw
YWdpbmF0aW9uRGVsdGEpOwogICAgICAgICAgICAgICAgICAgICBjdXJyLT5hZGp1c3RCbG9ja0Rp
cmVjdGlvblBvc2l0aW9uKHBhZ2luYXRpb25EZWx0YSk7CiAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGlmIChpblJlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAgICAgICAg
ICAgY3Vyci0+c2V0Q29udGFpbmluZ1JlZ2lvbihyZWdpb25BdEJsb2NrT2Zmc2V0KGN1cnItPmxp
bmVUb3BXaXRoTGVhZGluZygpKSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIElm
IGEgbmV3IGZsb2F0IGhhcyBiZWVuIGluc2VydGVkIGJlZm9yZSB0aGlzIGxpbmUgb3IgYmVmb3Jl
IGl0cyBsYXN0IGtub3duIGZsb2F0LCBqdXN0IGRvIGEgZnVsbCBsYXlvdXQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKaW5kZXggNmM5MzMwMzYyY2EyMTY5MmEx
Y2EzMmM3ODI0NWM5YmI0ZGU3NmZiYS4uMGM0ZmExNzYyZGZlZTk5MWM1ZTg5MWNiMTRiZGE4ZDRm
ZjVlMmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApA
QCAtNTIsOCArNTIsNiBAQCBSb290SW5saW5lQm94OjpSb290SW5saW5lQm94KFJlbmRlckJsb2Nr
KiBibG9jaykKICAgICAsIG1fbGluZUJvdHRvbSgwKQogICAgICwgbV9saW5lVG9wV2l0aExlYWRp
bmcoMCkKICAgICAsIG1fbGluZUJvdHRvbVdpdGhMZWFkaW5nKDApCi0gICAgLCBtX3BhZ2luYXRp
b25TdHJ1dCgwKQotICAgICwgbV9wYWdpbmF0ZWRMaW5lV2lkdGgoMCkKIHsKICAgICBzZXRJc0hv
cml6b250YWwoYmxvY2stPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpOwogfQpAQCAtMjUxLDYg
KzI0OSwxMyBAQCB2b2lkIFJvb3RJbmxpbmVCb3g6OmNoaWxkUmVtb3ZlZChJbmxpbmVCb3gqIGJv
eCkKICAgICB9CiB9CiAKK3ZvaWQgUm9vdElubGluZUJveDo6c2V0Q29udGFpbmluZ1JlZ2lvbihS
ZW5kZXJSZWdpb24qIHJlZ2lvbikKK3sKKyAgICBBU1NFUlQoIWlzRGlydHkoKSk7CisgICAgQVNT
RVJUKGJsb2NrKCktPmluUmVuZGVyRmxvd1RocmVhZCgpKTsKKyAgICBlbnN1cmVMaW5lRnJhZ21l
bnRhdGlvbkRhdGEoKS0+bV9jb250YWluaW5nUmVnaW9uID0gcmVnaW9uOworfQorCiBMYXlvdXRV
bml0IFJvb3RJbmxpbmVCb3g6OmFsaWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKExheW91dFVuaXQg
aGVpZ2h0T2ZCbG9jaywgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hE
YXRhTWFwLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmIHZlcnRpY2FsUG9zaXRpb25DYWNoZSkKIHsK
ICNpZiBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jv
b3RJbmxpbmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgK
aW5kZXggMTIwYWZhYTMxN2NhZTA5OWY3ZWZjNzE2Y2ZiMmNjOTVmN2Y2ZTg2Zi4uNGFiNmFlMTlm
MjI1ZDk0NmVlNWU3NWFkYWFmNjFjNjBjNTYwMDRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUm9vdElubGluZUJveC5oCkBAIC0yOCw2ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRWxsaXBzaXNCb3g7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OworY2xhc3MgUmVuZGVy
UmVnaW9uOwogCiBzdHJ1Y3QgQmlkaVN0YXR1czsKIHN0cnVjdCBHYXBSZWN0czsKQEAgLTUzLDE0
ICs1NCwxNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBsaW5lVG9wV2l0aExlYWRpbmcoKSBj
b25zdCB7IHJldHVybiBtX2xpbmVUb3BXaXRoTGVhZGluZzsgfQogICAgIExheW91dFVuaXQgbGlu
ZUJvdHRvbVdpdGhMZWFkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9saW5lQm90dG9tV2l0aExlYWRp
bmc7IH0KICAgICAKLSAgICBMYXlvdXRVbml0IHBhZ2luYXRpb25TdHJ1dCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnaW5hdGlvblN0cnV0OyB9Ci0gICAgdm9pZCBzZXRQYWdpbmF0aW9uU3RydXQoTGF5
b3V0VW5pdCBzKSB7IG1fcGFnaW5hdGlvblN0cnV0ID0gczsgfQorICAgIExheW91dFVuaXQgcGFn
aW5hdGlvblN0cnV0KCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudGF0aW9uRGF0YSA/IG1fZnJh
Z21lbnRhdGlvbkRhdGEtPm1fcGFnaW5hdGlvblN0cnV0IDogTGF5b3V0VW5pdCgwKTsgfQorICAg
IHZvaWQgc2V0UGFnaW5hdGlvblN0cnV0KExheW91dFVuaXQgc3RydXQpIHsgZW5zdXJlTGluZUZy
YWdtZW50YXRpb25EYXRhKCktPm1fcGFnaW5hdGlvblN0cnV0ID0gc3RydXQ7IH0KIAotICAgIGJv
b2wgaXNGaXJzdEFmdGVyUGFnZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZpcnN0QWZ0ZXJQ
YWdlQnJlYWs7IH0KLSAgICB2b2lkIHNldElzRmlyc3RBZnRlclBhZ2VCcmVhayhib29sIGlzRmly
c3RBZnRlclBhZ2VCcmVhaykgeyBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhayA9IGlzRmlyc3RBZnRl
clBhZ2VCcmVhazsgfQorICAgIGJvb2wgaXNGaXJzdEFmdGVyUGFnZUJyZWFrKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFnbWVudGF0aW9uRGF0YSA/IG1fZnJhZ21lbnRhdGlvbkRhdGEtPm1faXNGaXJz
dEFmdGVyUGFnZUJyZWFrIDogZmFsc2U7IH0KKyAgICB2b2lkIHNldElzRmlyc3RBZnRlclBhZ2VC
cmVhayhib29sIGlzRmlyc3RBZnRlclBhZ2VCcmVhaykgeyBlbnN1cmVMaW5lRnJhZ21lbnRhdGlv
bkRhdGEoKS0+bV9pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsgPSBpc0ZpcnN0QWZ0ZXJQYWdlQnJlYWs7
IH0KIAotICAgIExheW91dFVuaXQgcGFnaW5hdGVkTGluZVdpZHRoKCkgY29uc3QgeyByZXR1cm4g
bV9wYWdpbmF0ZWRMaW5lV2lkdGg7IH0KLSAgICB2b2lkIHNldFBhZ2luYXRlZExpbmVXaWR0aChM
YXlvdXRVbml0IHdpZHRoKSB7IG1fcGFnaW5hdGVkTGluZVdpZHRoID0gd2lkdGg7IH0KKyAgICBM
YXlvdXRVbml0IHBhZ2luYXRlZExpbmVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRh
dGlvbkRhdGEgPyBtX2ZyYWdtZW50YXRpb25EYXRhLT5tX3BhZ2luYXRlZExpbmVXaWR0aCA6IExh
eW91dFVuaXQoMCk7IH0KKyAgICB2b2lkIHNldFBhZ2luYXRlZExpbmVXaWR0aChMYXlvdXRVbml0
IHdpZHRoKSB7IGVuc3VyZUxpbmVGcmFnbWVudGF0aW9uRGF0YSgpLT5tX3BhZ2luYXRlZExpbmVX
aWR0aCA9IHdpZHRoOyB9CisKKyAgICBSZW5kZXJSZWdpb24qIGNvbnRhaW5pbmdSZWdpb24oKSBj
b25zdCB7IHJldHVybiBtX2ZyYWdtZW50YXRpb25EYXRhID8gbV9mcmFnbWVudGF0aW9uRGF0YS0+
bV9jb250YWluaW5nUmVnaW9uIDogMDsgfQorICAgIHZvaWQgc2V0Q29udGFpbmluZ1JlZ2lvbihS
ZW5kZXJSZWdpb24qKTsKIAogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9wKCkgY29uc3Q7CiAg
ICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0b20oKSBjb25zdDsKQEAgLTE5Myw2ICsxOTcsMTUg
QEAgcHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgYmVmb3JlQW5ub3RhdGlvbnNBZGp1c3RtZW50
KCkgY29uc3Q7CiAKKyAgICBzdHJ1Y3QgTGluZUZyYWdtZW50YXRpb25EYXRhOworICAgIExpbmVG
cmFnbWVudGF0aW9uRGF0YSogZW5zdXJlTGluZUZyYWdtZW50YXRpb25EYXRhKCkKKyAgICB7Cisg
ICAgICAgIGlmICghbV9mcmFnbWVudGF0aW9uRGF0YSkKKyAgICAgICAgICAgIG1fZnJhZ21lbnRh
dGlvbkRhdGEgPSBhZG9wdFB0cihuZXcgTGluZUZyYWdtZW50YXRpb25EYXRhKCkpOworCisgICAg
ICAgIHJldHVybiBtX2ZyYWdtZW50YXRpb25EYXRhLmdldCgpOworICAgIH0KKwogICAgIC8vIFRo
aXMgZm9sZHMgaW50byB0aGUgcGFkZGluZyBhdCB0aGUgZW5kIG9mIElubGluZUZsb3dCb3ggb24g
NjQtYml0LgogICAgIHVuc2lnbmVkIG1fbGluZUJyZWFrUG9zOwogCkBAIC0yMDcsOCArMjIwLDI1
IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBtX2xpbmVUb3BXaXRoTGVhZGluZzsKICAgICBM
YXlvdXRVbml0IG1fbGluZUJvdHRvbVdpdGhMZWFkaW5nOwogCi0gICAgTGF5b3V0VW5pdCBtX3Bh
Z2luYXRpb25TdHJ1dDsKLSAgICBMYXlvdXRVbml0IG1fcGFnaW5hdGVkTGluZVdpZHRoOworICAg
IHN0cnVjdCBMaW5lRnJhZ21lbnRhdGlvbkRhdGEgeworICAgICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShMaW5lRnJhZ21lbnRhdGlvbkRhdGEpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAg
ICBwdWJsaWM6CisgICAgICAgIExpbmVGcmFnbWVudGF0aW9uRGF0YSgpCisgICAgICAgICAgICA6
IG1fY29udGFpbmluZ1JlZ2lvbigwKQorICAgICAgICAgICAgLCBtX3BhZ2luYXRpb25TdHJ1dCgw
KQorICAgICAgICAgICAgLCBtX3BhZ2luYXRlZExpbmVXaWR0aCgwKQorICAgICAgICAgICAgLCBt
X2lzRmlyc3RBZnRlclBhZ2VCcmVhayhmYWxzZSkKKyAgICAgICAgeworCisgICAgICAgIH0KKwor
ICAgICAgICBSZW5kZXJSZWdpb24qIG1fY29udGFpbmluZ1JlZ2lvbjsKKyAgICAgICAgTGF5b3V0
VW5pdCBtX3BhZ2luYXRpb25TdHJ1dDsKKyAgICAgICAgTGF5b3V0VW5pdCBtX3BhZ2luYXRlZExp
bmVXaWR0aDsKKyAgICAgICAgYm9vbCBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhazsKKyAgICB9Owor
CisgICAgT3duUHRyPExpbmVGcmFnbWVudGF0aW9uRGF0YT4gbV9mcmFnbWVudGF0aW9uRGF0YTsK
IAogICAgIC8vIEZsb2F0cyBoYW5naW5nIG9mZiB0aGUgbGluZSBhcmUgcHVzaGVkIGludG8gdGhp
cyB2ZWN0b3IgZHVyaW5nIGxheW91dC4gSXQgaXMgb25seQogICAgIC8vIGdvb2QgZm9yIGFzIGxv
bmcgYXMgdGhlIGxpbmUgaGFzIG5vdCBiZWVuIG1hcmtlZCBkaXJ0eS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174417</attachid>
            <date>2012-11-15 05:49:59 -0800</date>
            <delta_ts>2012-11-26 12:01:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101332-20121115154754.patch</filename>
            <type>text/plain</type>
            <size>17900</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJhNDdlMzMwMTY1NTJh
MjU5NzkyZGNmMDc0YzI0NTUzOTk3MGFkMC4uYWUzZmExYzI2ZjBjNzU5YzY5ZTZiZTc4MmM0NTIy
Yjc1ODZjOTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTExLTE1ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gQWRk
IFJlZ2lvbiBpbmZvIGZvciBSb290TGluZUJveGVzIGFuZCBwYWNrIHRoZSBwYWdpbmF0aW9uIGRh
dGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTMz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSB0aGUgcGFnaW5hdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGluZXMgaXMgc3ByZWFkIGJldHdl
ZW4gdGhlIFJvb3RJbmxpbmVCb3ggYW5kIElubGluZUZsb3dCb3ggY2xhc3NlcywgY29uc3VtaW5n
IG1lbW9yeSBldmVuIHRob3VnaAorICAgICAgICB0aGUgYm94ZXMgd2VyZSBub3QgdGhlIHJlc3Vs
dCBvZiBhbiBwYWdpbmF0aW9uIGxheW91dC4gVG8gb3ZlcmNvbWUgdGhpcywgYSBuZXcgc3RydWN0
IChMaW5lRnJhZ21lbnRhdGlvbkRhdGEpIGlzIGNyZWF0ZWQgdGhhdCB3cmFwcyBhbGwgdGhlIGRh
dGEsCisgICAgICAgIGluY2x1ZGluZyB0d28gbmV3IG1lbWJlcnMsIHRoZSBjb250YWluaW5nIFJl
Z2lvbiBmb3IgdGhlIGxpbmUgYW5kIGEgYm9vbGVhbiB0aGF0IHN0YXRlcyBpZiB0aGUgbGluZSB3
YXMgbGFpZCBvdXQgaW4gYSBSZWdpb24gb3Igbm90LgorICAgICAgICBUaGUgZmxhZyBpcyBuZWNl
c3NhcnkgYmVjYXVzZSB0aGUgc2FuaXRpemUgZnVuY3Rpb24gb24gTGluZUZyYWdtZW50YXRpb25E
YXRhIHJlc2V0cyB0aGUgY29udGFpbmluZyBSZWdpb24gdG8gMCBpZiB0aGUgUmVnaW9uIHdhcyBy
ZW1vdmVkIGZyb20KKyAgICAgICAgY2hhaW4gKHNvIGEgdmFsdWUgb2YgMCBmb3IgdGhlIGNvbnRh
aW5pbmcgUmVnaW9uIG1lYW5zIHR3byB0aGluZ3MpLiBUaGUgc2FuaXRpemUgZnVuY3Rpb24gc2hv
dWxkIHByZXZlbnQgYWNjZXNzIHRvIGFuIGludmFsaWQgYWRkcmVzcy4KKyAgICAgICAgVGhlIGNv
bnRhaW5pbmcgUmVnaW9uIGlzIHVzZWQgdG8gZGV0ZWN0IGlmIGEgbGluZSBjaGFuZ2VkIHRoZSBS
ZWdpb24gd2hlcmUgaXQgcmVzaWRlcy4gVGhpcyB3aWxsIGJlIGhlbHBmdWwgZXNwZWNpYWxseSB3
aGVuIGltcGxlbWVudGluZyByZWdpb24KKyAgICAgICAgc3R5bGluZyBmb3IgbGF5b3V0IHByb3Bl
cnRpZXMgKGUuZy4gdGhlIGZvbnQtc2l6ZSBwcm9wZXJ0eSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTU1NTkgKS4KKyAgICAgICAgQSBsaW5lIGNhbiBjaGFuZ2UgdGhl
IHJlZ2lvbiB3aGVuIGl0IGlzIHNoaWZ0ZWQgaW5zaWRlIHRoZSBjb250YWluaW5nIGJsb2NrIG9y
IGlmIHRoZSBlbnRpcmUgYmxvY2sgbW92ZXMuIFRoaXMgbWVhbnMgaXQncyBiZXR0ZXIgdG8gZGVs
ZWdhdGUKKyAgICAgICAgdGhlIHRhc2sgb2YgdXBkYXRpbmcgdGhlIGNvbnRhaW5pbmcgUmVnaW9u
IHRvIHRoZSBibG9jay4KKworICAgICAgICBUZXN0czogZmFzdC9yZWdpb25zL2xpbmUtY29udGFp
bmluZy1yZWdpb24tY3Jhc2guaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dC
b3guY3BwOgorICAgICAgICAoU2FtZVNpemVBc0lubGluZUZsb3dCb3gpOgorICAgICAgICAqIHJl
bmRlcmluZy9JbmxpbmVGbG93Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94
OjpJbmxpbmVGbG93Qm94KToKKyAgICAgICAgKElubGluZUZsb3dCb3gpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
bGluZVdpZHRoRm9yUGFnaW5hdGVkTGluZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsaW5rVG9FbmRMaW5lSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmRldGVybWluZVN0YXJ0UG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5s
aW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OlJvb3RJbmxpbmVC
b3gpOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6c2V0Q29udGFpbmluZ1JlZ2lv
bik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6
OkxpbmVGcmFnbWVudGF0aW9uRGF0YTo6c2FuaXRpemUpOiBUaGlzIGlzIGFuIE8oMSkgZnVuY3Rp
b24gdGhhdCBjaGVja3MgaWYgdGhlIGNvbnRhaW5pZyBSZWdpb24gaXMgc3RpbGwgdmFsaWQgcG9p
bnRlci4KKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpwYWdpbmF0aW9uU3RydXQp
OgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6c2V0UGFnaW5hdGlvblN0cnV0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmlzRmlyc3RBZnRlclBhZ2VCcmVhayk6
CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpzZXRJc0ZpcnN0QWZ0ZXJQYWdlQnJl
YWspOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6cGFnaW5hdGVkTGluZVdpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OnNldFBhZ2luYXRlZExpbmVXaWR0
aCk6CisgICAgICAgIChSb290SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxp
bmVCb3g6OmNvbnRhaW5pbmdSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJv
eDo6aGFzQ29udGFpbmluZ1JlZ2lvbik6IFVzZSB0aGlzIHRvIGRldGVybWluZSBpZiB0aGUgbGlu
ZSBoYXMgYSByZWdpb24gb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6
ZW5zdXJlTGluZUZyYWdtZW50YXRpb25EYXRhKToKKyAgICAgICAgKExpbmVGcmFnbWVudGF0aW9u
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpMaW5lRnJhZ21lbnRhdGlv
bkRhdGE6OkxpbmVGcmFnbWVudGF0aW9uRGF0YSk6CisKKwogMjAxMi0xMS0xNSAgQW5kcmV5IEFk
YWlraW4gIDxhYW5kcmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBb
V2ViR0xdIGNsb25lTm9kZSBmb3IgaW1hZ2VzIHdpdGggcmV2b2tlZCBCbG9iIFVSSXMgZmFpbHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRleCAzNmFhZjk1
ZWM3NWIwZGNlMDY1Njg4MzkyNDQ5YmRmZTA5MmU3NDNlLi44ZTQxMWQxMWEwZGQ0NDg1OTQwNzg0
ZDcyMDVmOGJhZTFkOTJkNmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guY3BwCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0
IFNhbWVTaXplQXNJbmxpbmVGbG93Qm94IDogcHVibGljIElubGluZUJveCB7CiAgICAgdm9pZCog
cG9pbnRlcnNbNV07Ci0gICAgdWludDMyX3QgYml0ZmllbGRzIDogMjQ7CisgICAgdWludDMyX3Qg
Yml0ZmllbGRzIDogMjM7CiB9OwogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoSW5saW5lRmxvd0Jv
eCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNJbmxpbmVGbG93Qm94KSwgSW5saW5lRmxvd0JveF9zaG91
bGRfc3RheV9zbWFsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lRmxvd0JveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaApp
bmRleCA0OGI3MjBjNzVkZDUzZTdkMjA5NzgyZGQ0YmEyZjMxYTQ1MjE1MDBlLi4zNmQ0OGRjODdi
YjE1MjZmMzUzMmYzMWZhYTAyY2U2MTFlMTUxZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmgKQEAgLTUyLDcgKzUyLDYgQEAgcHVibGljOgogICAgICAgICAsIG1f
YmFzZWxpbmVUeXBlKEFscGhhYmV0aWNCYXNlbGluZSkKICAgICAgICAgLCBtX2hhc0Fubm90YXRp
b25zQmVmb3JlKGZhbHNlKQogICAgICAgICAsIG1faGFzQW5ub3RhdGlvbnNBZnRlcihmYWxzZSkK
LSAgICAgICAgLCBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhayhmYWxzZSkKICNpZm5kZWYgTkRFQlVH
CiAgICAgICAgICwgbV9oYXNCYWRDaGlsZExpc3QoZmFsc2UpCiAjZW5kaWYKQEAgLTMyNSw3ICsz
MjQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gSWYgdGhlIGxpbmUgY29udGFpbnMgYW55IHJ1Ynkg
cnVucywgdGhlbiB0aGlzIHdpbGwgYmUgdHJ1ZS4KICAgICB1bnNpZ25lZCBtX2hhc0Fubm90YXRp
b25zQmVmb3JlIDogMTsKICAgICB1bnNpZ25lZCBtX2hhc0Fubm90YXRpb25zQWZ0ZXIgOiAxOwot
ICAgIHVuc2lnbmVkIG1faXNGaXJzdEFmdGVyUGFnZUJyZWFrIDogMTsKIAogICAgIHVuc2lnbmVk
IG1fbGluZUJyZWFrQmlkaVN0YXR1c0VvciA6IDU7IC8vIFdURjo6VW5pY29kZTo6RGlyZWN0aW9u
CiAgICAgdW5zaWduZWQgbV9saW5lQnJlYWtCaWRpU3RhdHVzTGFzdFN0cm9uZyA6IDU7IC8vIFdU
Rjo6VW5pY29kZTo6RGlyZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAppbmRleCA0YTVlODkzM2QwYTBhZmY5NGFjNzM2NDk3NGJkYzQwOTY1MDMyNDM0Li4zZmQw
MDU4ZDYyODVjNTFhNzUyNTFjYWM0NjVkODUxY2IxYjcxNGJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTcyNDUsNyArNzI0NSwxNCBAQCBib29sIFJlbmRl
ckJsb2NrOjpsaW5lV2lkdGhGb3JQYWdpbmF0ZWRMaW5lQ2hhbmdlZChSb290SW5saW5lQm94KiBy
b290Qm94LCBMYXlvdQogICAgIGlmICghaW5SZW5kZXJGbG93VGhyZWFkKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIHJldHVybiByb290Qm94LT5wYWdpbmF0ZWRMaW5lV2lkdGgoKSAh
PSBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JDb250ZW50KHJvb3RCb3gtPmxpbmVUb3BXaXRoTGVh
ZGluZygpICsgbGluZURlbHRhKTsKKyAgICBSZW5kZXJSZWdpb24qIGN1cnJlbnRSZWdpb24gPSBy
ZWdpb25BdEJsb2NrT2Zmc2V0KHJvb3RCb3gtPmxpbmVUb3BXaXRoTGVhZGluZygpICsgbGluZURl
bHRhKTsKKyAgICAvLyBKdXN0IGJhaWwgaWYgd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBhIHJlZ2lvbi4K
KyAgICBpZiAoIXJvb3RCb3gtPmhhc0NvbnRhaW5pbmdSZWdpb24oKSAmJiAhY3VycmVudFJlZ2lv
bikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEp1c3QgYmFpbCBpZiB0aGUgcmVnaW9u
IGRpZG4ndCBjaGFuZ2UuCisgICAgaWYgKHJvb3RCb3gtPmhhc0NvbnRhaW5pbmdSZWdpb24oKSAm
JiByb290Qm94LT5jb250YWluaW5nUmVnaW9uKCkgPT0gY3VycmVudFJlZ2lvbikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiByb290Qm94LT5wYWdpbmF0ZWRMaW5lV2lkdGgoKSAh
PSBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JDb250ZW50KGN1cnJlbnRSZWdpb24sIG9mZnNldEZy
b21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyQmxvY2s6
Om9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCAyZTU4ZWE2
NzcxMTYzOWQxODE4ZTNjYTgyOTZmOWZmOTljYTBkODI2Li5iOTNhOGM3NWZmMjJiN2ZiMDgzOTRj
Mjk4NjdmYmFkOGY1ODg0ZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTUwOCw2ICsxNTA4LDkgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSwgSW5saW4KIAogICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdo
dChsaW5lQm94LT5saW5lQm90dG9tV2l0aExlYWRpbmcoKSk7CiAgICAgICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaW5SZW5kZXJGbG93VGhyZWFkKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICBsaW5lQm94LT5zZXRDb250YWluaW5nUmVnaW9uKHJlZ2lvbkF0
QmxvY2tPZmZzZXQobGluZUJveC0+bGluZVRvcFdpdGhMZWFkaW5nKCkpKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTE1NjIsNiArMTU2NSw4IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmxpbmtUb0VuZExpbmVJZk5lZWRlZChMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRl
KQogICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGF0ZS51cGRhdGVSZXBhaW50UmFuZ2VGcm9t
Qm94KGxpbmUsIGRlbHRhKTsKICAgICAgICAgICAgICAgICAgICAgbGluZS0+YWRqdXN0QmxvY2tE
aXJlY3Rpb25Qb3NpdGlvbihkZWx0YSk7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmIChpblJlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAgICAgICAgICAgbGluZS0+
c2V0Q29udGFpbmluZ1JlZ2lvbihyZWdpb25BdEJsb2NrT2Zmc2V0KGxpbmUtPmxpbmVUb3BXaXRo
TGVhZGluZygpKSk7CiAgICAgICAgICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJCb3gqPiogY2xl
YW5MaW5lRmxvYXRzID0gbGluZS0+ZmxvYXRzUHRyKCkpIHsKICAgICAgICAgICAgICAgICAgICAg
VmVjdG9yPFJlbmRlckJveCo+OjppdGVyYXRvciBlbmQgPSBjbGVhbkxpbmVGbG9hdHMtPmVuZCgp
OwogICAgICAgICAgICAgICAgICAgICBmb3IgKFZlY3RvcjxSZW5kZXJCb3gqPjo6aXRlcmF0b3Ig
ZiA9IGNsZWFuTGluZUZsb2F0cy0+YmVnaW4oKTsgZiAhPSBlbmQ7ICsrZikgewpAQCAtMTU5OSw2
ICsxNjA0LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGlua1RvRW5kTGluZUlmTmVlZGVkKExpbmVM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCiAgICAgICAgICAgICBMYXlvdXRSZWN0IGxvZ2ljYWxM
YXlvdXRPdmVyZmxvdygwLCBibG9ja0xvZ2ljYWxIZWlnaHQsIDEsIGJvdHRvbUxheW91dE92ZXJm
bG93IC0gYmxvY2tMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAgICAgIExheW91dFJlY3QgbG9naWNh
bFZpc3VhbE92ZXJmbG93KDAsIGJsb2NrTG9naWNhbEhlaWdodCwgMSwgYm90dG9tVmlzdWFsT3Zl
cmZsb3cgLSBibG9ja0xvZ2ljYWxIZWlnaHQpOwogICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNM
aW5lQm94LT5zZXRPdmVyZmxvd0Zyb21Mb2dpY2FsUmVjdHMobG9naWNhbExheW91dE92ZXJmbG93
LCBsb2dpY2FsVmlzdWFsT3ZlcmZsb3csIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+bGluZVRvcCgp
LCB0cmFpbGluZ0Zsb2F0c0xpbmVCb3gtPmxpbmVCb3R0b20oKSk7CisgICAgICAgICAgICBpZiAo
aW5SZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNMaW5l
Qm94LT5zZXRDb250YWluaW5nUmVnaW9uKHJlZ2lvbkF0QmxvY2tPZmZzZXQodHJhaWxpbmdGbG9h
dHNMaW5lQm94LT5saW5lVG9wV2l0aExlYWRpbmcoKSkpOwogICAgICAgICB9CiAKICAgICAgICAg
Y29uc3QgRmxvYXRpbmdPYmplY3RTZXQmIGZsb2F0aW5nT2JqZWN0U2V0ID0gbV9mbG9hdGluZ09i
amVjdHMtPnNldCgpOwpAQCAtMTc5Myw2ICsxODAwLDggQEAgUm9vdElubGluZUJveCogUmVuZGVy
QmxvY2s6OmRldGVybWluZVN0YXJ0UG9zaXRpb24oTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0
ZSwKICAgICAgICAgICAgICAgICAgICAgbGF5b3V0U3RhdGUudXBkYXRlUmVwYWludFJhbmdlRnJv
bUJveChjdXJyLCBwYWdpbmF0aW9uRGVsdGEpOwogICAgICAgICAgICAgICAgICAgICBjdXJyLT5h
ZGp1c3RCbG9ja0RpcmVjdGlvblBvc2l0aW9uKHBhZ2luYXRpb25EZWx0YSk7CiAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpblJlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAg
ICAgICAgICAgICAgICAgY3Vyci0+c2V0Q29udGFpbmluZ1JlZ2lvbihyZWdpb25BdEJsb2NrT2Zm
c2V0KGN1cnItPmxpbmVUb3BXaXRoTGVhZGluZygpKSk7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIC8vIElmIGEgbmV3IGZsb2F0IGhhcyBiZWVuIGluc2VydGVkIGJlZm9yZSB0aGlzIGxp
bmUgb3IgYmVmb3JlIGl0cyBsYXN0IGtub3duIGZsb2F0LCBqdXN0IGRvIGEgZnVsbCBsYXlvdXQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKaW5kZXggNmM5MzMw
MzYyY2EyMTY5MmExY2EzMmM3ODI0NWM5YmI0ZGU3NmZiYS4uZmIxYWIyYWE2ZDY4ZTQ5NTZlNmRl
N2JkMmVhZGJmOTA4MWI3YWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5s
aW5lQm94LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2lu
Y2x1ZGUgIlJlbmRlckFyZW5hLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRl
ICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUg
IlZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUu
aD4KQEAgLTUyLDggKzUzLDYgQEAgUm9vdElubGluZUJveDo6Um9vdElubGluZUJveChSZW5kZXJC
bG9jayogYmxvY2spCiAgICAgLCBtX2xpbmVCb3R0b20oMCkKICAgICAsIG1fbGluZVRvcFdpdGhM
ZWFkaW5nKDApCiAgICAgLCBtX2xpbmVCb3R0b21XaXRoTGVhZGluZygwKQotICAgICwgbV9wYWdp
bmF0aW9uU3RydXQoMCkKLSAgICAsIG1fcGFnaW5hdGVkTGluZVdpZHRoKDApCiB7CiAgICAgc2V0
SXNIb3Jpem9udGFsKGJsb2NrLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKTsKIH0KQEAgLTI1
MSw2ICsyNTAsMzAgQEAgdm9pZCBSb290SW5saW5lQm94OjpjaGlsZFJlbW92ZWQoSW5saW5lQm94
KiBib3gpCiAgICAgfQogfQogCit2b2lkIFJvb3RJbmxpbmVCb3g6OnNldENvbnRhaW5pbmdSZWdp
b24oUmVuZGVyUmVnaW9uKiByZWdpb24pCit7CisgICAgQVNTRVJUKCFpc0RpcnR5KCkpOworICAg
IEFTU0VSVChibG9jaygpLT5pblJlbmRlckZsb3dUaHJlYWQoKSk7CisgICAgTGluZUZyYWdtZW50
YXRpb25EYXRhKiBmcmFnbWVudGF0aW9uRGF0YSAgPSBlbnN1cmVMaW5lRnJhZ21lbnRhdGlvbkRh
dGEoKTsKKyAgICBmcmFnbWVudGF0aW9uRGF0YS0+bV9jb250YWluaW5nUmVnaW9uID0gcmVnaW9u
OworICAgIGZyYWdtZW50YXRpb25EYXRhLT5tX2hhc0NvbnRhaW5pbmdSZWdpb24gPSAhIXJlZ2lv
bjsKK30KKworUm9vdElubGluZUJveDo6TGluZUZyYWdtZW50YXRpb25EYXRhKiBSb290SW5saW5l
Qm94OjpMaW5lRnJhZ21lbnRhdGlvbkRhdGE6OnNhbml0aXplKGNvbnN0IFJlbmRlckJsb2NrKiBi
bG9jaykKK3sKKyAgICBBU1NFUlQoYmxvY2stPmluUmVuZGVyRmxvd1RocmVhZCgpKTsKKyAgICBp
ZiAoIW1fY29udGFpbmluZ1JlZ2lvbikKKyAgICAgICAgcmV0dXJuIHRoaXM7CisKKyAgICBSZW5k
ZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gYmxvY2stPmVuY2xvc2luZ1JlbmRlckZsb3dUaHJl
YWQoKTsKKyAgICBjb25zdCBSZW5kZXJSZWdpb25MaXN0JiByZWdpb25MaXN0ID0gZmxvd1RocmVh
ZC0+cmVuZGVyUmVnaW9uTGlzdCgpOworICAgIC8vIEZvciBwb2ludGVyIHR5cGVzIHRoZSBoYXNo
IGZ1bmN0aW9uIGlzIHxzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZHwuIFRoZXJlIHNob3Vs
ZG4ndCBiZSBhbnkgcHJvYmxlbXMgaWYgbV9jb250YWluaW5nUmVnaW9uIHdhcyBkZWxldGVkLgor
ICAgIGlmICghcmVnaW9uTGlzdC5jb250YWlucyhtX2NvbnRhaW5pbmdSZWdpb24pKQorICAgICAg
ICBtX2NvbnRhaW5pbmdSZWdpb24gPSAwOworCisgICAgcmV0dXJuIHRoaXM7Cit9CisKIExheW91
dFVuaXQgUm9vdElubGluZUJveDo6YWxpZ25Cb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5p
dCBoZWlnaHRPZkJsb2NrLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJv
eERhdGFNYXAsIFZlcnRpY2FsUG9zaXRpb25DYWNoZSYgdmVydGljYWxQb3NpdGlvbkNhY2hlKQog
ewogI2lmIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Um9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3gu
aAppbmRleCAxMjBhZmFhMzE3Y2FlMDk5ZjdlZmM3MTZjZmIyY2M5NWY3ZjZlODZmLi5lN2MzZTU0
YjZmYmIwNjk0ZWM5Y2ZlMDc1OWM4MGE1Y2ZmOTgyNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9Sb290SW5saW5lQm94LmgKQEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBFbGxpcHNpc0JveDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBSZW5k
ZXJSZWdpb247CiAKIHN0cnVjdCBCaWRpU3RhdHVzOwogc3RydWN0IEdhcFJlY3RzOwpAQCAtNTMs
MTQgKzU0LDE4IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGxpbmVUb3BXaXRoTGVhZGluZygp
IGNvbnN0IHsgcmV0dXJuIG1fbGluZVRvcFdpdGhMZWFkaW5nOyB9CiAgICAgTGF5b3V0VW5pdCBs
aW5lQm90dG9tV2l0aExlYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2xpbmVCb3R0b21XaXRoTGVh
ZGluZzsgfQogICAgIAotICAgIExheW91dFVuaXQgcGFnaW5hdGlvblN0cnV0KCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWdpbmF0aW9uU3RydXQ7IH0KLSAgICB2b2lkIHNldFBhZ2luYXRpb25TdHJ1dChM
YXlvdXRVbml0IHMpIHsgbV9wYWdpbmF0aW9uU3RydXQgPSBzOyB9CisgICAgTGF5b3V0VW5pdCBw
YWdpbmF0aW9uU3RydXQoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50YXRpb25EYXRhID8gbV9m
cmFnbWVudGF0aW9uRGF0YS0+bV9wYWdpbmF0aW9uU3RydXQgOiBMYXlvdXRVbml0KDApOyB9Cisg
ICAgdm9pZCBzZXRQYWdpbmF0aW9uU3RydXQoTGF5b3V0VW5pdCBzdHJ1dCkgeyBlbnN1cmVMaW5l
RnJhZ21lbnRhdGlvbkRhdGEoKS0+bV9wYWdpbmF0aW9uU3RydXQgPSBzdHJ1dDsgfQogCi0gICAg
Ym9vbCBpc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX2lzRmlyc3RBZnRl
clBhZ2VCcmVhazsgfQotICAgIHZvaWQgc2V0SXNGaXJzdEFmdGVyUGFnZUJyZWFrKGJvb2wgaXNG
aXJzdEFmdGVyUGFnZUJyZWFrKSB7IG1faXNGaXJzdEFmdGVyUGFnZUJyZWFrID0gaXNGaXJzdEFm
dGVyUGFnZUJyZWFrOyB9CisgICAgYm9vbCBpc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoKSBjb25zdCB7
IHJldHVybiBtX2ZyYWdtZW50YXRpb25EYXRhID8gbV9mcmFnbWVudGF0aW9uRGF0YS0+bV9pc0Zp
cnN0QWZ0ZXJQYWdlQnJlYWsgOiBmYWxzZTsgfQorICAgIHZvaWQgc2V0SXNGaXJzdEFmdGVyUGFn
ZUJyZWFrKGJvb2wgaXNGaXJzdEFmdGVyUGFnZUJyZWFrKSB7IGVuc3VyZUxpbmVGcmFnbWVudGF0
aW9uRGF0YSgpLT5tX2lzRmlyc3RBZnRlclBhZ2VCcmVhayA9IGlzRmlyc3RBZnRlclBhZ2VCcmVh
azsgfQogCi0gICAgTGF5b3V0VW5pdCBwYWdpbmF0ZWRMaW5lV2lkdGgoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2luYXRlZExpbmVXaWR0aDsgfQotICAgIHZvaWQgc2V0UGFnaW5hdGVkTGluZVdpZHRo
KExheW91dFVuaXQgd2lkdGgpIHsgbV9wYWdpbmF0ZWRMaW5lV2lkdGggPSB3aWR0aDsgfQorICAg
IExheW91dFVuaXQgcGFnaW5hdGVkTGluZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVu
dGF0aW9uRGF0YSA/IG1fZnJhZ21lbnRhdGlvbkRhdGEtPm1fcGFnaW5hdGVkTGluZVdpZHRoIDog
TGF5b3V0VW5pdCgwKTsgfQorICAgIHZvaWQgc2V0UGFnaW5hdGVkTGluZVdpZHRoKExheW91dFVu
aXQgd2lkdGgpIHsgZW5zdXJlTGluZUZyYWdtZW50YXRpb25EYXRhKCktPm1fcGFnaW5hdGVkTGlu
ZVdpZHRoID0gd2lkdGg7IH0KKworICAgIFJlbmRlclJlZ2lvbiogY29udGFpbmluZ1JlZ2lvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRhdGlvbkRhdGEgPyBtX2ZyYWdtZW50YXRpb25EYXRh
LT5zYW5pdGl6ZShibG9jaygpKS0+bV9jb250YWluaW5nUmVnaW9uIDogMDsgfQorICAgIGJvb2wg
aGFzQ29udGFpbmluZ1JlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRhdGlvbkRhdGEg
PyBtX2ZyYWdtZW50YXRpb25EYXRhLT5tX2hhc0NvbnRhaW5pbmdSZWdpb24gOiBmYWxzZTsgfQor
ICAgIHZvaWQgc2V0Q29udGFpbmluZ1JlZ2lvbihSZW5kZXJSZWdpb24qKTsKIAogICAgIExheW91
dFVuaXQgc2VsZWN0aW9uVG9wKCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0
b20oKSBjb25zdDsKQEAgLTE5Myw2ICsxOTgsMTUgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFVu
aXQgYmVmb3JlQW5ub3RhdGlvbnNBZGp1c3RtZW50KCkgY29uc3Q7CiAKKyAgICBzdHJ1Y3QgTGlu
ZUZyYWdtZW50YXRpb25EYXRhOworICAgIExpbmVGcmFnbWVudGF0aW9uRGF0YSogZW5zdXJlTGlu
ZUZyYWdtZW50YXRpb25EYXRhKCkKKyAgICB7CisgICAgICAgIGlmICghbV9mcmFnbWVudGF0aW9u
RGF0YSkKKyAgICAgICAgICAgIG1fZnJhZ21lbnRhdGlvbkRhdGEgPSBhZG9wdFB0cihuZXcgTGlu
ZUZyYWdtZW50YXRpb25EYXRhKCkpOworCisgICAgICAgIHJldHVybiBtX2ZyYWdtZW50YXRpb25E
YXRhLmdldCgpOworICAgIH0KKwogICAgIC8vIFRoaXMgZm9sZHMgaW50byB0aGUgcGFkZGluZyBh
dCB0aGUgZW5kIG9mIElubGluZUZsb3dCb3ggb24gNjQtYml0LgogICAgIHVuc2lnbmVkIG1fbGlu
ZUJyZWFrUG9zOwogCkBAIC0yMDcsOCArMjIxLDMyIEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5p
dCBtX2xpbmVUb3BXaXRoTGVhZGluZzsKICAgICBMYXlvdXRVbml0IG1fbGluZUJvdHRvbVdpdGhM
ZWFkaW5nOwogCi0gICAgTGF5b3V0VW5pdCBtX3BhZ2luYXRpb25TdHJ1dDsKLSAgICBMYXlvdXRV
bml0IG1fcGFnaW5hdGVkTGluZVdpZHRoOworICAgIHN0cnVjdCBMaW5lRnJhZ21lbnRhdGlvbkRh
dGEgeworICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMaW5lRnJhZ21lbnRhdGlvbkRhdGEp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIExpbmVGcmFn
bWVudGF0aW9uRGF0YSgpCisgICAgICAgICAgICA6IG1fY29udGFpbmluZ1JlZ2lvbigwKQorICAg
ICAgICAgICAgLCBtX3BhZ2luYXRpb25TdHJ1dCgwKQorICAgICAgICAgICAgLCBtX3BhZ2luYXRl
ZExpbmVXaWR0aCgwKQorICAgICAgICAgICAgLCBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhayhmYWxz
ZSkKKyAgICAgICAgICAgICwgbV9oYXNDb250YWluaW5nUmVnaW9uKGZhbHNlKQorICAgICAgICB7
CisKKyAgICAgICAgfQorCisgICAgICAgIExpbmVGcmFnbWVudGF0aW9uRGF0YSogc2FuaXRpemUo
Y29uc3QgUmVuZGVyQmxvY2sqKTsKKworICAgICAgICAvLyBJdCBzaG91bGQgbm90IGJlIGFzc3Vt
ZWQgdGhlIHxjb250YWluaW5nUmVnaW9ufCBpcyBhbHdheXMgdmFsaWQuCisgICAgICAgIC8vIEl0
IGNhbiBhbHNvIGJlIDAgaWYgdGhlIGZsb3cgaGFzIG5vIHJlZ2lvbiBjaGFpbiBvciBhbiBpbnZh
bGlkIHBvaW50ZXIgaWYgdGhlIHJlZ2lvbiBpcyBubyBsb25nZXIgaW4gdGhlIGNoYWluLgorICAg
ICAgICAvLyBVc2UgfHNhbml0aXplfCB0byBmaWx0ZXIgYW4gaW52YWxpZCByZWdpb24uCisgICAg
ICAgIFJlbmRlclJlZ2lvbiogbV9jb250YWluaW5nUmVnaW9uOworICAgICAgICBMYXlvdXRVbml0
IG1fcGFnaW5hdGlvblN0cnV0OworICAgICAgICBMYXlvdXRVbml0IG1fcGFnaW5hdGVkTGluZVdp
ZHRoOworICAgICAgICB1bnNpZ25lZCBtX2lzRmlyc3RBZnRlclBhZ2VCcmVhayA6IDE7CisgICAg
ICAgIHVuc2lnbmVkIG1faGFzQ29udGFpbmluZ1JlZ2lvbiA6IDE7IC8vIFdlIG5lZWQgdG8ga2Vl
cCB0aGlzIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0aGUgY2FzZSBvZiBhIHZvaWQgcmVnaW9u
IGFuZCBhbiBpbnZhbGlkIHJlZ2lvbi4KKyAgICB9OworCisgICAgT3duUHRyPExpbmVGcmFnbWVu
dGF0aW9uRGF0YT4gbV9mcmFnbWVudGF0aW9uRGF0YTsKIAogICAgIC8vIEZsb2F0cyBoYW5naW5n
IG9mZiB0aGUgbGluZSBhcmUgcHVzaGVkIGludG8gdGhpcyB2ZWN0b3IgZHVyaW5nIGxheW91dC4g
SXQgaXMgb25seQogICAgIC8vIGdvb2QgZm9yIGFzIGxvbmcgYXMgdGhlIGxpbmUgaGFzIG5vdCBi
ZWVuIG1hcmtlZCBkaXJ0eS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZDZlOTJjNWI3NDY2NzJhYTM2ZDM2YzYyNmNhN2Ez
MDk2OGUxM2EyLi4wMTA5Y2IyZjA4MzFiMGUyNDJiMjMxOWE2ZjdhZWFmMDU0NWU4NjQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTEtMTUgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9i
ZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25zXSBBZGQgUmVnaW9uIGluZm8gZm9yIFJvb3RM
aW5lQm94ZXMgYW5kIHBhY2sgdGhlIHBhZ2luYXRpb24gZGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMzMyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3QgY2hlY2tzIGlmIHRoZXJlIGlz
IGEgY3Jhc2ggd2hlbiBkb2luZyBhIGxpbmUgbGF5b3V0IGlmOgorICAgICAgICAtIHRoZSBmbG93
IGhhcyBubyByZWdpb24KKyAgICAgICAgLSB0aGUgZmxvdyBoYXMgYSByZWdpb24gYnV0IHRoZSBs
aW5lcyBoYXZlIG5vIGNvbnRhaW5pbmcgcmVnaW9uCisgICAgICAgIC0gdGhlIGZsb3cgaGFzIG5v
IHJlZ2lvbiBidXQgdGhlIGxpbmVzIGhhdmUgYSBjb250YWluaW5nIHJlZ2lvbgorCisgICAgICAg
ICogZmFzdC9yZWdpb25zL2xpbmUtY29udGFpbmluZy1yZWdpb24tY3Jhc2gtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvbGluZS1jb250YWluaW5nLXJlZ2lvbi1j
cmFzaC5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0xNSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEFkZCB0ZXN0cyBmb3IgbW9udGggc3Vn
Z2VzdGlvbiBwaWNrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9saW5l
LWNvbnRhaW5pbmctcmVnaW9uLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9saW5lLWNvbnRhaW5pbmctcmVnaW9uLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZGYwM2Y2YzA0YmE4NzI3MGYwNGRkODFkNzc3MzE1YWQwMDdlN2Y3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xpbmUtY29udGFpbmluZy1yZWdpb24t
Y3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCBmb3IgV2ViS2l0IEJ1ZyAx
MDEzMzIgQ3Jhc2gKKworVGhlIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoIG9yIGFz
c2VydC4KKworUEFTUworCitIZWxsbyBDcmFzaCEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2xpbmUtY29udGFpbmluZy1yZWdpb24tY3Jhc2guaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9saW5lLWNvbnRhaW5pbmctcmVnaW9uLWNyYXNoLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTZmOGU2ZGU3YTA1Mjk2M2UxZmExMmQzMDI0MzYzMDZkMDk4MWMwMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9saW5lLWNvbnRhaW5pbmctcmVnaW9u
LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgI2NvbnRlbnQgeworICAgICAgICAgICAgd2lkdGg6
IDUwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxNTBweDsKKyAgICAgICAgICAgIC13ZWJraXQt
Zmxvdy1pbnRvOiBmbG93OworICAgICAgICB9CisgICAgICAgIC5yZWdpb24geworICAgICAgICAg
ICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7CisgICAgICAgICAgICB3aWR0aDogNTAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDUwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEzMzIiPldlYktpdCBCdWcgMTAxMzMyPC9hPiBDcmFzaCA8
L3A+CisgICAgPHA+VGhlIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoIG9yIGFzc2Vy
dC48L3A+CisgICAgPHA+UEFTUzwvcD4KKyAgICA8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICAgICAg
SGVsbG8gQ3Jhc2ghCisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHZhciBjb250ZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgY29udGVudC5zdHlsZS5o
ZWlnaHQgPSAiMjAwcHgiOworICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKyAgICAg
ICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKTsKKyAgICAg
ICAgcmVnaW9uLmNsYXNzTmFtZSA9ICJyZWdpb24iOworICAgICAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldFRvcDsKKyAgICAgICAgcmVnaW9uLmNsYXNzTmFtZSA9ICJub3JlZ2lvbiI7CisgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>