<?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>52134</bug_id>
          
          <creation_ts>2011-01-09 16:38:07 -0800</creation_ts>
          <short_desc>[chromium] Add support to allow printing just a plugin in a frame</short_desc>
          <delta_ts>2011-01-13 12:34:20 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>52392</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Abd-El-Malek">jam</reporter>
          <assigned_to name="John Abd-El-Malek">jam</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>331477</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-09 16:38:07 -0800</bug_when>
    <thetext>[chromium] Add support to allow printing just a plugin in a frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331478</commentid>
    <comment_count>1</comment_count>
      <attachid>78358</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-09 16:44:42 -0800</bug_when>
    <thetext>Created attachment 78358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331479</commentid>
    <comment_count>2</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-09 16:46:38 -0800</bug_when>
    <thetext>btw the corresponding Chromium bug is http://crbug.com/50285</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332706</commentid>
    <comment_count>3</comment_count>
      <attachid>78606</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-11 15:06:26 -0800</bug_when>
    <thetext>Created attachment 78606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332708</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 15:07:31 -0800</bug_when>
    <thetext>Attachment 78606 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chrom...&quot; exit_code: 1
WebKit/chromium/public/WebFrame.h:409:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332709</commentid>
    <comment_count>5</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-11 15:08:08 -0800</bug_when>
    <thetext>this is now ready for review, while I figure out the objc gibberish on the browse side :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332729</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 15:28:47 -0800</bug_when>
    <thetext>Attachment 78606 did not build on chromium:
Build output: http://queues.webkit.org/results/7378150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332736</commentid>
    <comment_count>7</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-11 15:36:32 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Attachment 78606 [details] did not build on chromium:
&gt; Build output: http://queues.webkit.org/results/7378150

doh, forgot about the n-sided patches.  will check in a chrome change now that makes this compile and update the deps in this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332789</commentid>
    <comment_count>8</comment_count>
      <attachid>78621</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-11 16:40:35 -0800</bug_when>
    <thetext>Created attachment 78621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332795</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 16:42:39 -0800</bug_when>
    <thetext>Attachment 78621 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chrom...&quot; exit_code: 1
WebKit/chromium/public/WebFrame.h:412:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332809</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 16:59:07 -0800</bug_when>
    <thetext>Attachment 78621 did not build on chromium:
Build output: http://queues.webkit.org/results/7402137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332810</commentid>
    <comment_count>11</comment_count>
      <attachid>78628</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-11 17:06:29 -0800</bug_when>
    <thetext>Created attachment 78628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332811</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 17:08:43 -0800</bug_when>
    <thetext>Attachment 78628 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chrom...&quot; exit_code: 1
WebKit/chromium/public/WebFrame.h:412:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
WebKit/chromium/src/WebFrameImpl.h:154:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332873</commentid>
    <comment_count>13</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-01-11 19:29:52 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Attachment 78628 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chrom...&quot; exit_code: 1
&gt; WebKit/chromium/public/WebFrame.h:412:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; WebKit/chromium/src/WebFrameImpl.h:154:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Total errors found: 2 in 7 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

It looks like the style bot is trying to tell you something. (fwiw, it&apos;s correct).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332944</commentid>
    <comment_count>14</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-12 00:14:41 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Attachment 78628 [details] [details] did not pass style-queue:
&gt; &gt; 
&gt; &gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chrom...&quot; exit_code: 1
&gt; &gt; WebKit/chromium/public/WebFrame.h:412:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; &gt; WebKit/chromium/src/WebFrameImpl.h:154:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; &gt; Total errors found: 2 in 7 files
&gt; &gt; 
&gt; &gt; 
&gt; &gt; If any of these errors are false positives, please file a bug against check-webkit-style.
&gt; 
&gt; It looks like the style bot is trying to tell you something. (fwiw, it&apos;s correct).

in this case, it looked to me like it would make the code more awkward.  i.e. the example given in the style guide only has one parameter and no default value.  but in this code:

virtual int printBegin(const WebSize&amp; pageSize,
                       WebNode* = 0,
                       int printerDPI = 72,
                       bool* useBrowserOverlays = 0) = 0;

it looks a little strange to me having a function declaration with 3 named variables and one that&apos;s not named, especially if it has a default value.  it makes referencing the variable in a comment inconsistent with how the others are referenced, since |node| doesn&apos;t make sense anymore.

but, i don&apos;t care enough, if the script wants inconsistencies within one function declaration, so be it..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332945</commentid>
    <comment_count>15</comment_count>
      <attachid>78661</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-12 00:16:42 -0800</bug_when>
    <thetext>Created attachment 78661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332957</commentid>
    <comment_count>16</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-01-12 01:02:05 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; Attachment 78628 [details] [details] [details] did not pass style-queue:
&gt; &gt; &gt; 
&gt; &gt; &gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chrom...&quot; exit_code: 1
&gt; &gt; &gt; WebKit/chromium/public/WebFrame.h:412:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; &gt; &gt; WebKit/chromium/src/WebFrameImpl.h:154:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; &gt; &gt; Total errors found: 2 in 7 files
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; If any of these errors are false positives, please file a bug against check-webkit-style.
&gt; &gt; 
&gt; &gt; It looks like the style bot is trying to tell you something. (fwiw, it&apos;s correct).
&gt; 
&gt; in this case, it looked to me like it would make the code more awkward.  i.e. the example given in the style guide only has one parameter and no default value.  but in this code:
&gt; 
&gt; virtual int printBegin(const WebSize&amp; pageSize,
&gt;                        WebNode* = 0,
&gt;                        int printerDPI = 72,
&gt;                        bool* useBrowserOverlays = 0) = 0;
&gt; 
&gt; it looks a little strange to me having a function declaration with 3 named variables and one that&apos;s not named, especially if it has a default value. 

It sounds like you are used to a different style other than WebKit so it looks strange. Ok.

&gt; it makes referencing the variable in a comment inconsistent with how the others are referenced, since |node| doesn&apos;t make sense anymore.

Feel free to say WebNode*.

&gt; but, i don&apos;t care enough, if the script wants inconsistencies within one function declaration, so be it..

WebKit style is to omit parameter names that don&apos;t add information. The script is correctly reminding you of this. This isn&apos;t about some script wanting inconsistencies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333380</commentid>
    <comment_count>17</comment_count>
      <attachid>78661</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-01-12 15:54:41 -0800</bug_when>
    <thetext>Comment on attachment 78661
Patch

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

&gt; WebKit/chromium/public/WebFrame.h:411
&gt; +    virtual int printBegin(const WebSize&amp; pageSize,

if it makes your merging easier, it is also OK to put the WebNode parameter last,
and i might give it a self-documenting name.

it would also be a bit more conventional to pass the WebNode like this:

  const WebNode&amp; constrainToNode = WebNode(),

Note: WebNode has an isNull method you can check.

&gt; WebKit/chromium/src/WebFrameImpl.cpp:1285


nit: it is a bit more conventional to name webcore objects using the prefix &quot;core&quot;, so &quot;coreNode&quot; instead of &quot;webcoreNode&quot;

nit: you can also just do this:

  Node* coreNode = node-&gt;unwrap&lt;WebCore::Node&gt;();

if you pass as const WebNode&amp; node, then you would do this:

  const Node* coreNode = node.constUnwrap&lt;Node&gt;();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333390</commentid>
    <comment_count>18</comment_count>
      <attachid>78752</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-12 16:12:35 -0800</bug_when>
    <thetext>Created attachment 78752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333393</commentid>
    <comment_count>19</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-12 16:13:52 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 78661 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=78661&amp;action=review
&gt; 
&gt; &gt; WebKit/chromium/public/WebFrame.h:411
&gt; &gt; +    virtual int printBegin(const WebSize&amp; pageSize,
&gt; 
&gt; if it makes your merging easier, it is also OK to put the WebNode parameter last,
&gt; and i might give it a self-documenting name.
&gt; 
&gt; it would also be a bit more conventional to pass the WebNode like this:
&gt; 
&gt;   const WebNode&amp; constrainToNode = WebNode(),
&gt; 
&gt; Note: WebNode has an isNull method you can check.
&gt; 
&gt; &gt; WebKit/chromium/src/WebFrameImpl.cpp:1285
&gt; 
&gt; 
&gt; nit: it is a bit more conventional to name webcore objects using the prefix &quot;core&quot;, so &quot;coreNode&quot; instead of &quot;webcoreNode&quot;
&gt; 
&gt; nit: you can also just do this:
&gt; 
&gt;   Node* coreNode = node-&gt;unwrap&lt;WebCore::Node&gt;();
&gt; 
&gt; if you pass as const WebNode&amp; node, then you would do this:
&gt; 
&gt;   const Node* coreNode = node.constUnwrap&lt;Node&gt;();


Done and uploaded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333863</commentid>
    <comment_count>20</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-13 12:08:11 -0800</bug_when>
    <thetext>Committed r75730: &lt;http://trac.webkit.org/changeset/75730&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78358</attachid>
            <date>2011-01-09 16:44:42 -0800</date>
            <delta_ts>2011-01-11 15:06:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52134-20110109164252.patch</filename>
            <type>text/plain</type>
            <size>12983</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzUzNTcpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDEtMDkgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBzdXBwb3J0IHRvIGFsbG93
IHByaW50aW5nIGp1c3QgYSBwbHVnaW4gaW4gYSBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMzQKKworICAgICAgICAqIHB1YmxpYy9XZWJD
b250ZXh0TWVudURhdGEuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAg
KiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHNyYy9Db250ZXh0TWVudUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNsaWVudEltcGw6OmdldEN1c3RvbU1l
bnVGcm9tRGVmYXVsdEl0ZW1zKToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjpDaHJvbWVQbHVnaW5Qcmlu
dENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQbHVnaW5QcmludENvbnRleHQ6OmVu
ZCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblByaW50Q29udGV4dDo6Y29tcHV0ZVBh
Z2VSZWN0cyk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblByaW50Q29udGV4dDo6c3Bv
b2xQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKToKKyAg
ICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXJG
b3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZpbmRQbHVnaW4pOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDExLTAxLTA5ICBYaWFuemh1IFdhbmcg
IDxwaG5peHd4ekBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVy
LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZXh0TWVudURhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oCShy
ZXZpc2lvbiA3NTM1NykKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGV4dE1lbnVE
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDggQEAgc3RydWN0IFdlYkNvbnRleHRN
ZW51RGF0YSB7CiAgICAgICAgIE1lZGlhVHlwZVZpZGVvLAogICAgICAgICAvLyBBbiBhdWRpbyBu
b2RlIGlzIHNlbGVjdGVkLgogICAgICAgICBNZWRpYVR5cGVBdWRpbywKKyAgICAgICAgLy8gQSBw
bHVnaW4gbm9kZSBpcyBzZWxlY3RlZC4KKyAgICAgICAgTWVkaWFUeXBlUGx1Z2luLAogICAgIH07
CiAgICAgLy8gVGhlIHR5cGUgb2YgbWVkaWEgdGhlIGNvbnRleHQgbWVudSBpcyBiZWluZyBpbnZv
a2VkIG9uLgogICAgIE1lZGlhVHlwZSBtZWRpYVR5cGU7CkBAIC04NSw2ICs4Nyw3IEBAIHN0cnVj
dCBXZWJDb250ZXh0TWVudURhdGEgewogICAgICAgICBNZWRpYUhhc0F1ZGlvID0gMHgyMCwKICAg
ICAgICAgTWVkaWFIYXNWaWRlbyA9IDB4NDAsCiAgICAgICAgIE1lZGlhQ29udHJvbHMgPSAweDgw
LAorICAgICAgICBNZWRpYUNhblByaW50ID0gMHgxMDAsCiAgICAgfTsKIAogICAgIC8vIEV4dHJh
IGF0dHJpYnV0ZXMgZGVzY3JpYmluZyBtZWRpYSBlbGVtZW50cy4KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDc1MzU3KQorKysgV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIFdlYkhp
c3RvcnlJdGVtOwogY2xhc3MgV2ViSW5wdXRFbGVtZW50OwogY2xhc3MgV2ViUGFzc3dvcmRBdXRv
Y29tcGxldGVMaXN0ZW5lcjsKIGNsYXNzIFdlYlBlcmZvcm1hbmNlOworY2xhc3MgV2ViUGx1Z2lu
Q29udGFpbmVyOwogY2xhc3MgV2ViUmFuZ2U7CiBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIGNs
YXNzIFdlYlN0cmluZzsKQEAgLTM5NywxMiArMzk4LDE1IEBAIHB1YmxpYzoKICAgICAvLyBQcmlu
dGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAogICAgIC8vIFJlZm9ybWF0cyB0aGUgV2ViRnJhbWUgZm9yIHByaW50aW5nLiBw
YWdlU2l6ZSBpcyB0aGUgcGFnZSBzaXplIGluCi0gICAgLy8gcG9pbnRzIChhIHBvaW50IGluIDEv
NzIgb2YgYW4gaW5jaCkuIHByaW50ZXJEUEkgaXMgdGhlIHVzZXIgc2VsZWN0ZWQsCi0gICAgLy8g
RFBJIGZvciB0aGUgcHJpbnRlci4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQKKyAg
ICAvLyBwb2ludHMgKGEgcG9pbnQgaW4gMS83MiBvZiBhbiBpbmNoKS4gSWYgfHBsdWdpbnwgaXMg
c3BlY2lmaWVkLCB0aGVuIG9ubHkKKyAgICAvLyB0aGUgZ2l2ZW4gcGx1Z2luIGlzIHByaW50ZWQs
IGluc3RlYWQgb2YgdGhlIGVudGlyZSBmcmFtZS4gIHByaW50ZXJEUEkgaXMKKyAgICAvLyB0aGUg
dXNlciBzZWxlY3RlZCwgRFBJIGZvciB0aGUgcHJpbnRlci4gUmV0dXJucyB0aGUgbnVtYmVyIG9m
IHBhZ2VzIHRoYXQKICAgICAvLyBjYW4gYmUgcHJpbnRlZCBhdCB0aGUgZ2l2ZW4gcGFnZSBzaXpl
LiBUaGUgb3V0IHBhcmFtIHVzZUJyb3dzZXJPdmVybGF5cwogICAgIC8vIHNwZWNpZmllcyB3aGV0
aGVyIHRoZSBicm93c2VyIHByb2Nlc3Mgc2hvdWxkIHVzZSBpdHMgb3ZlcmxheXMgKGhlYWRlciwK
ICAgICAvLyBmb290ZXIsIG1hcmdpbnMgZXRjKSBvciB3aGV0aGVyIHRoZSByZW5kZXJlciBjb250
cm9scyB0aGlzLgotICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcGFn
ZVNpemUsIGludCBwcmludGVyRFBJID0gNzIsCisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihj
b25zdCBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlBs
dWdpbkNvbnRhaW5lciogcGx1Z2luID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBwcmludGVyRFBJID0gNzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VC
cm93c2VyT3ZlcmxheXMgPSAwKSA9IDA7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBwYWdlIHNocmlu
a2luZyBmYWN0b3IgY2FsY3VsYXRlZCBieSB3ZWJraXQgKHVzdWFsbHkKSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oCShyZXZpc2lvbiA3NTM1NykKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIGNsYXNzIFdlYkZy
YW1lOwogY2xhc3MgV2ViRnJhbWVDbGllbnQ7CiBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsK
IGNsYXNzIFdlYk5vZGU7CitjbGFzcyBXZWJQbHVnaW5Db250YWluZXI7CiBjbGFzcyBXZWJTZXR0
aW5nczsKIGNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYlZpZXdDbGllbnQ7CkBAIC0yNDQsMTIg
KzI0NSwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNldERyb3BFZmZlY3QoYm9vbCBh
Y2NlcHQpID0gMDsKIAogCi0gICAgLy8gU3VwcG9ydCBmb3IgcmVzb3VyY2UgbG9hZGluZyBpbml0
aWF0ZWQgYnkgcGx1Z2lucyAtLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUGx1Z2lucyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKICAgICAvLyBSZXR1cm5zIG5leHQgdW51c2VkIHJlcXVlc3QgaWRlbnRpZmllciB3aGljaCBp
cyB1bmlxdWUgd2l0aGluIHRoZQogICAgIC8vIHBhcmVudCBQYWdlLgogICAgIHZpcnR1YWwgdW5z
aWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJZGVudGlmaWVyRm9yUmVxdWVzdCgpID0gMDsKIAorICAg
IC8vIFJldHVybnMgdGhlIHBsdWdpbiB1bmRlciB8bG9jYXRpb258LCBvciBudWxsIGlmIHRoZSBs
b2NhdGlvbiBpc24ndCBvdmVyIGEKKyAgICAvLyBwbHVnaW4uCisgICAgdmlydHVhbCBXZWJQbHVn
aW5Db250YWluZXIqIGZpbmRQbHVnaW4oY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKSA9IDA7CisK
IAogICAgIC8vIERldmVsb3BlciB0b29scyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRl
eHRNZW51Q2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9D
b250ZXh0TWVudUNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA3NTM1NykKKysrIFdlYktpdC9jaHJv
bWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJIVE1MTWVk
aWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJNZWRpYUVycm9y
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjExLDYgKzIxMiw3IEBAIFBsYXRmb3JtTWVudURl
c2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW4KICAgICAgICAgaWYgKG9iamVjdCAmJiBvYmplY3Qt
PmlzV2lkZ2V0KCkpIHsKICAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gdG9SZW5kZXJXaWRn
ZXQob2JqZWN0KS0+d2lkZ2V0KCk7CiAgICAgICAgICAgICBpZiAod2lkZ2V0ICYmIHdpZGdldC0+
aXNQbHVnaW5Db250YWluZXIoKSkgeworICAgICAgICAgICAgICAgIGRhdGEubWVkaWFUeXBlID0g
V2ViQ29udGV4dE1lbnVEYXRhOjpNZWRpYVR5cGVQbHVnaW47CiAgICAgICAgICAgICAgICAgV2Vi
UGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luID0gc3RhdGljX2Nhc3Q8V2ViUGx1Z2luQ29udGFp
bmVySW1wbCo+KHdpZGdldCk7CiAgICAgICAgICAgICAgICAgV2ViU3RyaW5nIHRleHQgPSBwbHVn
aW4tPnBsdWdpbigpLT5zZWxlY3Rpb25Bc1RleHQoKTsKICAgICAgICAgICAgICAgICBpZiAoIXRl
eHQuaXNFbXB0eSgpKSB7CkBAIC0yMTksNiArMjIxLDEyIEBAIFBsYXRmb3JtTWVudURlc2NyaXB0
aW9uIENvbnRleHRNZW51Q2xpZW4KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ZGF0YS5lZGl0RmxhZ3MgJj0gfldlYkNvbnRleHRNZW51RGF0YTo6Q2FuVHJhbnNsYXRlOwogICAg
ICAgICAgICAgICAgIGRhdGEubGlua1VSTCA9IHBsdWdpbi0+cGx1Z2luKCktPmxpbmtBdFBvc2l0
aW9uKGRhdGEubW91c2VQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgaWYgKHBsdWdpbi0+cGx1
Z2luKCktPnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgZGF0
YS5tZWRpYUZsYWdzIHw9IFdlYkNvbnRleHRNZW51RGF0YTo6TWVkaWFDYW5QcmludDsKKworICAg
ICAgICAgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4oci5pbm5lck5vblNoYXJlZE5vZGUoKSk7
CisgICAgICAgICAgICAgICAgZGF0YS5zcmNVUkwgPSBwbHVnaW5FbGVtZW50LT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LT51cmwoKSk7CisgICAgICAgICAgICAgICAgZGF0
YS5tZWRpYUZsYWdzIHw9IFdlYkNvbnRleHRNZW51RGF0YTo6TWVkaWFDYW5TYXZlOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAkocmV2aXNpb24gNzUzNTcpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1NCwxMSArMzU0LDkgQEAgcHJpdmF0ZToKIC8v
IHdhbnQgdG8gZGVsZWdhdGUgYWxsIHByaW50aW5nIHJlbGF0ZWQgY2FsbHMgdG8gdGhlIHBsdWdp
bi4KIGNsYXNzIENocm9tZVBsdWdpblByaW50Q29udGV4dCA6IHB1YmxpYyBDaHJvbWVQcmludENv
bnRleHQgewogcHVibGljOgotICAgIENocm9tZVBsdWdpblByaW50Q29udGV4dChGcmFtZSogZnJh
bWUsIGludCBwcmludGVyRFBJKQotICAgICAgICA6IENocm9tZVByaW50Q29udGV4dChmcmFtZSks
IG1fcGFnZUNvdW50KDApLCBtX3ByaW50ZXJEUEkocHJpbnRlckRQSSkKKyAgICBDaHJvbWVQbHVn
aW5QcmludENvbnRleHQoRnJhbWUqIGZyYW1lLCBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVn
aW4sIGludCBwcmludGVyRFBJKQorICAgICAgICA6IENocm9tZVByaW50Q29udGV4dChmcmFtZSks
IG1fcGx1Z2luKHBsdWdpbiksIG1fcGFnZUNvdW50KDApLCBtX3ByaW50ZXJEUEkocHJpbnRlckRQ
SSkKICAgICB7Ci0gICAgICAgIC8vIFRoaXMgSEFTIHRvIGJlIGEgZnJhbWUgaG9zdGluZyBhIGZ1
bGwtbW9kZSBwbHVnaW4KLSAgICAgICAgQVNTRVJUKGZyYW1lLT5kb2N1bWVudCgpLT5pc1BsdWdp
bkRvY3VtZW50KCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBiZWdpbihmbG9hdCB3aWR0
aCkKQEAgLTM2NywxMSArMzY1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGVuZCgp
CiAgICAgewotICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIg
PSBXZWJGcmFtZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShtX2ZyYW1lKTsKLSAgICAg
ICAgaWYgKHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1cHBvcnRzUGFnaW5h
dGVkUHJpbnQoKSkKLSAgICAgICAgICAgIHBsdWdpbkNvbnRhaW5lci0+cHJpbnRFbmQoKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIG1f
cGx1Z2luLT5wcmludEVuZCgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgZmxvYXQgZ2V0UGFnZVNo
cmluayhpbnQgcGFnZU51bWJlcikgY29uc3QKQEAgLTM4MiwxMSArMzc2LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQYWdlUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBwcmlu
dFJlY3QsIGZsb2F0IGhlYWRlckhlaWdodCwgZmxvYXQgZm9vdGVySGVpZ2h0LCBmbG9hdCB1c2Vy
U2NhbGVGYWN0b3IsIGZsb2F0JiBvdXRQYWdlSGVpZ2h0KQogICAgIHsKLSAgICAgICAgV2ViUGx1
Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJbXBsOjpwbHVnaW5D
b250YWluZXJGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgICAgIGlmIChwbHVnaW5Db250YWluZXIg
JiYgcGx1Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgICAg
ICBtX3BhZ2VDb3VudCA9IHBsdWdpbkNvbnRhaW5lci0+cHJpbnRCZWdpbihJbnRSZWN0KHByaW50
UmVjdCksIG1fcHJpbnRlckRQSSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBtX3BhZ2VDb3VudCA9IG1fcGx1Z2luLT5wcmludEJlZ2lu
KEludFJlY3QocHJpbnRSZWN0KSwgbV9wcmludGVyRFBJKTsKICAgICB9CiAKICAgICB2aXJ0dWFs
IGludCBwYWdlQ291bnQoKSBjb25zdApAQCAtMzk5LDExICszODksNyBAQCBwdWJsaWM6CiAgICAg
Ly8gaW5zdGVhZC4gIFJldHVybnMgdGhlIHNjYWxlIHRvIGJlIGFwcGxpZWQuCiAgICAgdmlydHVh
bCBmbG9hdCBzcG9vbFBhZ2UoR3JhcGhpY3NDb250ZXh0JiBjdHgsIGludCBwYWdlTnVtYmVyKQog
ICAgIHsKLSAgICAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0g
V2ViRnJhbWVJbXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgICAg
IGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRl
ZFByaW50KCkpCi0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnByaW50UGFnZShwYWdlTnVt
YmVyLCAmY3R4KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIG1fcGx1Z2luLT5wcmludFBhZ2UocGFnZU51bWJlciwgJmN0eCk7CiAgICAg
ICAgIHJldHVybiAxLjA7CiAgICAgfQogCkBAIC00MTQsNiArNDAwLDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIC8vIFNldCB3aGVuIHByaW50aW5nLgorICAgIFdlYlBsdWdpbkNvbnRhaW5l
ckltcGwqIG1fcGx1Z2luOwogICAgIGludCBtX3BhZ2VDb3VudDsKICAgICBpbnQgbV9wcmludGVy
RFBJOwogfTsKQEAgLTEyODMsMTQgKzEyNzAsMjMgQEAgYm9vbCBXZWJGcmFtZUltcGw6OnNlbGVj
dFdvcmRBcm91bmRDYXJldAogICAgIHJldHVybiB0cnVlOwogfQogCi1pbnQgV2ViRnJhbWVJbXBs
OjpwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLCBpbnQgcHJpbnRlckRQSSwgYm9v
bCAqdXNlQnJvd3Nlck92ZXJsYXlzKQoraW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25z
dCBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViUGx1
Z2luQ29udGFpbmVyKiBwbHVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBw
cmludGVyRFBJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2Vy
T3ZlcmxheXMpCiB7CiAgICAgQVNTRVJUKCFmcmFtZSgpLT5kb2N1bWVudCgpLT5pc0ZyYW1lU2V0
KCkpOwotICAgIC8vIElmIHRoaXMgaXMgYSBwbHVnaW4gZG9jdW1lbnQsIGNoZWNrIGlmIHRoZSBw
bHVnaW4gc3VwcG9ydHMgaXRzIG93bgotICAgIC8vIHByaW50aW5nLiBJZiBpdCBkb2VzLCB3ZSB3
aWxsIGRlbGVnYXRlIGFsbCBwcmludGluZyB0byB0aGF0LgotICAgIFdlYlBsdWdpbkNvbnRhaW5l
ckltcGwqIHBsdWdpbkNvbnRhaW5lciA9IHBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSgp
KTsKKyAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSAwOworICAg
IGlmIChwbHVnaW4pCisgICAgICAgIHBsdWdpbkNvbnRhaW5lciA9IHN0YXRpY19jYXN0PFdlYlBs
dWdpbkNvbnRhaW5lckltcGwqPihwbHVnaW4pOworICAgIGVsc2UgeworICAgICAgICAvLyBJZiB0
aGlzIGlzIGEgcGx1Z2luIGRvY3VtZW50LCBjaGVjayBpZiB0aGUgcGx1Z2luIHN1cHBvcnRzIGl0
cyBvd24KKyAgICAgICAgLy8gcHJpbnRpbmcuIElmIGl0IGRvZXMsIHdlIHdpbGwgZGVsZWdhdGUg
YWxsIHByaW50aW5nIHRvIHRoYXQuCisgICAgICAgIHBsdWdpbkNvbnRhaW5lciA9IHBsdWdpbkNv
bnRhaW5lckZyb21GcmFtZShmcmFtZSgpKTsKKyAgICB9CisKICAgICBpZiAocGx1Z2luQ29udGFp
bmVyICYmIHBsdWdpbkNvbnRhaW5lci0+c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgpKQotICAgICAg
ICBtX3ByaW50Q29udGV4dC5zZXQobmV3IENocm9tZVBsdWdpblByaW50Q29udGV4dChmcmFtZSgp
LCBwcmludGVyRFBJKSk7CisgICAgICAgIG1fcHJpbnRDb250ZXh0LnNldChuZXcgQ2hyb21lUGx1
Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHBsdWdpbkNvbnRhaW5lciwgcHJpbnRlckRQSSkpOwog
ICAgIGVsc2UKICAgICAgICAgbV9wcmludENvbnRleHQuc2V0KG5ldyBDaHJvbWVQcmludENvbnRl
eHQoZnJhbWUoKSkpOwogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJKHJldmlz
aW9uIDc1MzU3KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTUwLDcgKzE1MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmlu
ZyBzZWxlY3Rpb25Bc1RleHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBzZWxlY3Rp
b25Bc01hcmt1cCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RXb3JkQXJvdW5kQ2Fy
ZXQoKTsKLSAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXpl
LCBpbnQgcHJpbnRlckRQSSwKKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNp
emUmIHBhZ2VTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViUGx1Z2luQ29udGFp
bmVyKiBwbHVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5cyk7CiAg
ICAgdmlydHVhbCBmbG9hdCBwcmludFBhZ2UoaW50IHBhZ2VUb1ByaW50LCBXZWJDYW52YXMqKTsK
ICAgICB2aXJ0dWFsIGZsb2F0IGdldFByaW50UGFnZVNocmluayhpbnQgcGFnZSk7CkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNzUzNTcpCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcs
NyBAQAogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJh
Y2tlci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgpAQCAtMTg3Miw2ICsxODczLDI0
IEBAIHVuc2lnbmVkIGxvbmcgV2ViVmlld0ltcGw6OmNyZWF0ZVVuaXF1ZUkKICAgICByZXR1cm4g
MDsKIH0KIAorV2ViUGx1Z2luQ29udGFpbmVyKiBXZWJWaWV3SW1wbDo6ZmluZFBsdWdpbihjb25z
dCBXZWJQb2ludCYgbG9jYXRpb24pCit7CisgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRU
ZXN0UmVzdWx0Rm9yV2luZG93UG9zKGxvY2F0aW9uKTsKKyAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9
IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKTsKKyAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpvYmplY3RUYWcpICYmICFub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6ZW1i
ZWRUYWcpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0g
cmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5yZW5kZXJlcigpOworICAgIGlmICghb2JqZWN0
IHx8ICFvYmplY3QtPmlzV2lkZ2V0KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgV2lkZ2V0
KiB3aWRnZXQgPSB0b1JlbmRlcldpZGdldChvYmplY3QpLT53aWRnZXQoKTsKKyAgICBpZiAoIXdp
ZGdldCB8fCAhd2lkZ2V0LT5pc1BsdWdpbkNvbnRhaW5lcigpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJQbHVnaW5Db250YWluZXJJbXBsKj4od2lkZ2V0
KTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6aW5zcGVjdEVsZW1lbnRBdChjb25zdCBXZWJQb2lu
dCYgcG9pbnQpCiB7CiAgICAgaWYgKCFtX3BhZ2UuZ2V0KCkpCkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA3NTM1NykKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTczLDYgKzE3Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGludCBkcmFnSWRlbnRpdHkoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2V0RHJvcEVm
ZmVjdChib29sIGFjY2VwdCk7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1
ZUlkZW50aWZpZXJGb3JSZXF1ZXN0KCk7CisgICAgdmlydHVhbCBXZWJQbHVnaW5Db250YWluZXIq
IGZpbmRQbHVnaW4oY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQg
aW5zcGVjdEVsZW1lbnRBdChjb25zdCBXZWJQb2ludCYgcG9pbnQpOwogICAgIHZpcnR1YWwgV2Vi
U3RyaW5nIGluc3BlY3RvclNldHRpbmdzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
c3BlY3RvclNldHRpbmdzKGNvbnN0IFdlYlN0cmluZyYgc2V0dGluZ3MpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78606</attachid>
            <date>2011-01-11 15:06:26 -0800</date>
            <delta_ts>2011-01-11 16:40:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52134-20110111150437.patch</filename>
            <type>text/plain</type>
            <size>11105</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzU1NTgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDEtMTEgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBzdXBwb3J0IHRvIGFsbG93
IHByaW50aW5nIGp1c3QgYSBwbHVnaW4gaW4gYSBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMzQKKworICAgICAgICAqIHB1YmxpYy9XZWJD
b250ZXh0TWVudURhdGEuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAg
KiBzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29udGV4
dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblBy
aW50Q29udGV4dDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjplbmQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQ
bHVnaW5QcmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVQbHVnaW5QcmludENvbnRleHQ6OnNwb29sUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6cHJpbnRCZWdpbik6CisKIDIwMTEtMDEtMTEgIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZXh0TWVudURhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oCShyZXZp
c2lvbiA3NTU1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViQ29udGV4dE1l
bnVEYXRhX2gKIAogI2luY2x1ZGUgIldlYk1lbnVJdGVtSW5mby5oIgorI2luY2x1ZGUgIldlYk5v
ZGUuaCIKICNpbmNsdWRlICJXZWJQb2ludC5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2lu
Y2x1ZGUgIldlYlVSTC5oIgpAQCAtNTAsNiArNTEsOCBAQCBzdHJ1Y3QgV2ViQ29udGV4dE1lbnVE
YXRhIHsKICAgICAgICAgTWVkaWFUeXBlVmlkZW8sCiAgICAgICAgIC8vIEFuIGF1ZGlvIG5vZGUg
aXMgc2VsZWN0ZWQuCiAgICAgICAgIE1lZGlhVHlwZUF1ZGlvLAorICAgICAgICAvLyBBIHBsdWdp
biBub2RlIGlzIHNlbGVjdGVkLgorICAgICAgICBNZWRpYVR5cGVQbHVnaW4sCiAgICAgfTsKICAg
ICAvLyBUaGUgdHlwZSBvZiBtZWRpYSB0aGUgY29udGV4dCBtZW51IGlzIGJlaW5nIGludm9rZWQg
b24uCiAgICAgTWVkaWFUeXBlIG1lZGlhVHlwZTsKQEAgLTg1LDYgKzg4LDcgQEAgc3RydWN0IFdl
YkNvbnRleHRNZW51RGF0YSB7CiAgICAgICAgIE1lZGlhSGFzQXVkaW8gPSAweDIwLAogICAgICAg
ICBNZWRpYUhhc1ZpZGVvID0gMHg0MCwKICAgICAgICAgTWVkaWFDb250cm9scyA9IDB4ODAsCisg
ICAgICAgIE1lZGlhQ2FuUHJpbnQgPSAweDEwMCwKICAgICB9OwogCiAgICAgLy8gRXh0cmEgYXR0
cmlidXRlcyBkZXNjcmliaW5nIG1lZGlhIGVsZW1lbnRzLgpAQCAtMTM2LDYgKzE0MCw5IEBAIHN0
cnVjdCBXZWJDb250ZXh0TWVudURhdGEgewogICAgIC8vIEN1c3RvbSBjb250ZXh0IG1lbnUgaXRl
bXMgcHJvdmlkZWQgYnkgdGhlIFdlYkNvcmUgaW50ZXJuYWxzLgogICAgIFdlYlZlY3RvcjxXZWJN
ZW51SXRlbUluZm8+IGN1c3RvbUl0ZW1zOwogCisgICAgLy8gVGhlIG5vZGUgdGhhdCB3YXMgY2xp
Y2tlZC4KKyAgICBXZWJOb2RlIG5vZGU7CisKICAgICBXZWJDb250ZXh0TWVudURhdGEoKQogICAg
ICAgICA6IG1lZGlhVHlwZShNZWRpYVR5cGVOb25lKQogICAgICAgICAsIGlzSW1hZ2VCbG9ja2Vk
KGZhbHNlKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAkocmV2aXNpb24gNzU1NTUp
CisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU3LDYgKzU3LDcgQEAgY2xhc3MgV2ViSGlzdG9yeUl0ZW07CiBjbGFzcyBXZWJJbnB1dEVsZW1l
bnQ7CiBjbGFzcyBXZWJQYXNzd29yZEF1dG9jb21wbGV0ZUxpc3RlbmVyOwogY2xhc3MgV2ViUGVy
Zm9ybWFuY2U7CitjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViUmFuZ2U7CiBjbGFzcyBXZWJTZWN1
cml0eU9yaWdpbjsKIGNsYXNzIFdlYlN0cmluZzsKQEAgLTM5NywxMiArMzk4LDE2IEBAIHB1Ymxp
YzoKICAgICAvLyBQcmludGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIFJlZm9ybWF0cyB0aGUgV2ViRnJhbWUg
Zm9yIHByaW50aW5nLiBwYWdlU2l6ZSBpcyB0aGUgcGFnZSBzaXplIGluCi0gICAgLy8gcG9pbnRz
IChhIHBvaW50IGluIDEvNzIgb2YgYW4gaW5jaCkuIHByaW50ZXJEUEkgaXMgdGhlIHVzZXIgc2Vs
ZWN0ZWQsCi0gICAgLy8gRFBJIGZvciB0aGUgcHJpbnRlci4gUmV0dXJucyB0aGUgbnVtYmVyIG9m
IHBhZ2VzIHRoYXQKLSAgICAvLyBjYW4gYmUgcHJpbnRlZCBhdCB0aGUgZ2l2ZW4gcGFnZSBzaXpl
LiBUaGUgb3V0IHBhcmFtIHVzZUJyb3dzZXJPdmVybGF5cwotICAgIC8vIHNwZWNpZmllcyB3aGV0
aGVyIHRoZSBicm93c2VyIHByb2Nlc3Mgc2hvdWxkIHVzZSBpdHMgb3ZlcmxheXMgKGhlYWRlciwK
LSAgICAvLyBmb290ZXIsIG1hcmdpbnMgZXRjKSBvciB3aGV0aGVyIHRoZSByZW5kZXJlciBjb250
cm9scyB0aGlzLgotICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcGFn
ZVNpemUsIGludCBwcmludGVyRFBJID0gNzIsCisgICAgLy8gcG9pbnRzIChhIHBvaW50IGluIDEv
NzIgb2YgYW4gaW5jaCkuIElmIHxub2RlfCBpcyBzcGVjaWZpZWQsIHRoZW4gb25seQorICAgIC8v
IHRoZSBnaXZlbiBub2RlIGlzIHByaW50ZWQgKGZvciBub3cgb25seSBwbHVnaW5zIGFyZSBzdXBw
b3J0ZWQpLCBpbnN0ZWFkCisgICAgLy8gb2YgdGhlIGVudGlyZSBmcmFtZS4gIHByaW50ZXJEUEkg
aXMgdGhlIHVzZXIgc2VsZWN0ZWQsIERQSSBmb3IgdGhlCisgICAgLy8gcHJpbnRlci4gUmV0dXJu
cyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2FuIGJlIHByaW50ZWQgYXQgdGhlIGdpdmVuCisg
ICAgLy8gcGFnZSBzaXplLiBUaGUgb3V0IHBhcmFtIHVzZUJyb3dzZXJPdmVybGF5cyBzcGVjaWZp
ZXMgd2hldGhlciB0aGUgYnJvd3NlcgorICAgIC8vIHByb2Nlc3Mgc2hvdWxkIHVzZSBpdHMgb3Zl
cmxheXMgKGhlYWRlciwgZm9vdGVyLCBtYXJnaW5zIGV0Yykgb3Igd2hldGhlcgorICAgIC8vIHRo
ZSByZW5kZXJlciBjb250cm9scyB0aGlzLgorICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29u
c3QgV2ViU2l6ZSYgcGFnZVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJOb2Rl
KiBub2RlID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJID0g
NzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMg
PSAwKSA9IDA7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBwYWdlIHNocmlua2luZyBmYWN0b3IgY2Fs
Y3VsYXRlZCBieSB3ZWJraXQgKHVzdWFsbHkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQ29u
dGV4dE1lbnVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3Jj
L0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDc1NTU1KQorKysgV2ViS2l0L2No
cm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkhUTUxN
ZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk1lZGlhRXJy
b3IuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0yMTEsNiArMjEyLDcgQEAgUGxhdGZvcm1NZW51
RGVzY3JpcHRpb24gQ29udGV4dE1lbnVDbGllbgogICAgICAgICBpZiAob2JqZWN0ICYmIG9iamVj
dC0+aXNXaWRnZXQoKSkgewogICAgICAgICAgICAgV2lkZ2V0KiB3aWRnZXQgPSB0b1JlbmRlcldp
ZGdldChvYmplY3QpLT53aWRnZXQoKTsKICAgICAgICAgICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0
LT5pc1BsdWdpbkNvbnRhaW5lcigpKSB7CisgICAgICAgICAgICAgICAgZGF0YS5tZWRpYVR5cGUg
PSBXZWJDb250ZXh0TWVudURhdGE6Ok1lZGlhVHlwZVBsdWdpbjsKICAgICAgICAgICAgICAgICBX
ZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW4gPSBzdGF0aWNfY2FzdDxXZWJQbHVnaW5Db250
YWluZXJJbXBsKj4od2lkZ2V0KTsKICAgICAgICAgICAgICAgICBXZWJTdHJpbmcgdGV4dCA9IHBs
dWdpbi0+cGx1Z2luKCktPnNlbGVjdGlvbkFzVGV4dCgpOwogICAgICAgICAgICAgICAgIGlmICgh
dGV4dC5pc0VtcHR5KCkpIHsKQEAgLTIxOSw2ICsyMjEsMTIgQEAgUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb24gQ29udGV4dE1lbnVDbGllbgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBkYXRhLmVkaXRGbGFncyAmPSB+V2ViQ29udGV4dE1lbnVEYXRhOjpDYW5UcmFuc2xhdGU7CiAg
ICAgICAgICAgICAgICAgZGF0YS5saW5rVVJMID0gcGx1Z2luLT5wbHVnaW4oKS0+bGlua0F0UG9z
aXRpb24oZGF0YS5tb3VzZVBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAocGx1Z2luLT5w
bHVnaW4oKS0+c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgpKQorICAgICAgICAgICAgICAgICAgICBk
YXRhLm1lZGlhRmxhZ3MgfD0gV2ViQ29udGV4dE1lbnVEYXRhOjpNZWRpYUNhblByaW50OworCisg
ICAgICAgICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxlbWVudCA9IHN0
YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihyLmlubmVyTm9uU2hhcmVkTm9kZSgp
KTsKKyAgICAgICAgICAgICAgICBkYXRhLnNyY1VSTCA9IHBsdWdpbkVsZW1lbnQtPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKHBsdWdpbkVsZW1lbnQtPnVybCgpKTsKKyAgICAgICAgICAgICAgICBk
YXRhLm1lZGlhRmxhZ3MgfD0gV2ViQ29udGV4dE1lbnVEYXRhOjpNZWRpYUNhblNhdmU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjgsNiArMjc2LDggQEAgUGxhdGZvcm1N
ZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVDbGllbgogICAgIC8vIEZpbHRlciBvdXQgY3VzdG9t
IG1lbnUgZWxlbWVudHMgYW5kIGFkZCB0aGVtIGludG8gdGhlIGRhdGEuCiAgICAgcG9wdWxhdGVD
dXN0b21NZW51SXRlbXMoZGVmYXVsdE1lbnUsICZkYXRhKTsKIAorICAgIGRhdGEubm9kZSA9IHIu
aW5uZXJOb25TaGFyZWROb2RlKCk7CisKICAgICBXZWJGcmFtZSogc2VsZWN0ZWRfd2ViX2ZyYW1l
ID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoc2VsZWN0ZWRGcmFtZSk7CiAgICAgaWYgKG1fd2Vi
Vmlldy0+Y2xpZW50KCkpCiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnNob3dDb250ZXh0
TWVudShzZWxlY3RlZF93ZWJfZnJhbWUsIGRhdGEpOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmNwcAkocmV2aXNpb24gNzU1NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1
ZGUgIlBsdWdpbkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyRnJhbWUuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJl
bmRlcldpZGdldC5oIgpAQCAtMTM0LDYgKzEzNSw3IEBACiAjaW5jbHVkZSAiV2ViRnJhbWVDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIldlYklucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgIldlYk5vZGUuaCIKICNpbmNsdWRlICJXZWJQYXNzd29yZEF1dG9j
b21wbGV0ZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGVyZm9ybWFuY2UuaCIKICNpbmNsdWRl
ICJXZWJQbHVnaW4uaCIKQEAgLTM1NSwxMSArMzU3LDkgQEAgcHJpdmF0ZToKIC8vIHdhbnQgdG8g
ZGVsZWdhdGUgYWxsIHByaW50aW5nIHJlbGF0ZWQgY2FsbHMgdG8gdGhlIHBsdWdpbi4KIGNsYXNz
IENocm9tZVBsdWdpblByaW50Q29udGV4dCA6IHB1YmxpYyBDaHJvbWVQcmludENvbnRleHQgewog
cHVibGljOgotICAgIENocm9tZVBsdWdpblByaW50Q29udGV4dChGcmFtZSogZnJhbWUsIGludCBw
cmludGVyRFBJKQotICAgICAgICA6IENocm9tZVByaW50Q29udGV4dChmcmFtZSksIG1fcGFnZUNv
dW50KDApLCBtX3ByaW50ZXJEUEkocHJpbnRlckRQSSkKKyAgICBDaHJvbWVQbHVnaW5QcmludENv
bnRleHQoRnJhbWUqIGZyYW1lLCBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW4sIGludCBw
cmludGVyRFBJKQorICAgICAgICA6IENocm9tZVByaW50Q29udGV4dChmcmFtZSksIG1fcGx1Z2lu
KHBsdWdpbiksIG1fcGFnZUNvdW50KDApLCBtX3ByaW50ZXJEUEkocHJpbnRlckRQSSkKICAgICB7
Ci0gICAgICAgIC8vIFRoaXMgSEFTIHRvIGJlIGEgZnJhbWUgaG9zdGluZyBhIGZ1bGwtbW9kZSBw
bHVnaW4KLSAgICAgICAgQVNTRVJUKGZyYW1lLT5kb2N1bWVudCgpLT5pc1BsdWdpbkRvY3VtZW50
KCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBiZWdpbihmbG9hdCB3aWR0aCkKQEAgLTM2
OCwxMSArMzY4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGVuZCgpCiAgICAgewot
ICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJGcmFt
ZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShtX2ZyYW1lKTsKLSAgICAgICAgaWYgKHBs
dWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQo
KSkKLSAgICAgICAgICAgIHBsdWdpbkNvbnRhaW5lci0+cHJpbnRFbmQoKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIG1fcGx1Z2luLT5w
cmludEVuZCgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgZmxvYXQgZ2V0UGFnZVNocmluayhpbnQg
cGFnZU51bWJlcikgY29uc3QKQEAgLTM4MywxMSArMzc5LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVQYWdlUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBwcmludFJlY3QsIGZs
b2F0IGhlYWRlckhlaWdodCwgZmxvYXQgZm9vdGVySGVpZ2h0LCBmbG9hdCB1c2VyU2NhbGVGYWN0
b3IsIGZsb2F0JiBvdXRQYWdlSGVpZ2h0KQogICAgIHsKLSAgICAgICAgV2ViUGx1Z2luQ29udGFp
bmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJbXBsOjpwbHVnaW5Db250YWluZXJG
cm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2lu
Q29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgICAgICBtX3BhZ2VD
b3VudCA9IHBsdWdpbkNvbnRhaW5lci0+cHJpbnRCZWdpbihJbnRSZWN0KHByaW50UmVjdCksIG1f
cHJpbnRlckRQSSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBtX3BhZ2VDb3VudCA9IG1fcGx1Z2luLT5wcmludEJlZ2luKEludFJlY3Qo
cHJpbnRSZWN0KSwgbV9wcmludGVyRFBJKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGludCBwYWdl
Q291bnQoKSBjb25zdApAQCAtNDAwLDExICszOTIsNyBAQCBwdWJsaWM6CiAgICAgLy8gaW5zdGVh
ZC4gIFJldHVybnMgdGhlIHNjYWxlIHRvIGJlIGFwcGxpZWQuCiAgICAgdmlydHVhbCBmbG9hdCBz
cG9vbFBhZ2UoR3JhcGhpY3NDb250ZXh0JiBjdHgsIGludCBwYWdlTnVtYmVyKQogICAgIHsKLSAg
ICAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJ
bXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgICAgIGlmIChwbHVn
aW5Db250YWluZXIgJiYgcGx1Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkp
Ci0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnByaW50UGFnZShwYWdlTnVtYmVyLCAmY3R4
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIG1fcGx1Z2luLT5wcmludFBhZ2UocGFnZU51bWJlciwgJmN0eCk7CiAgICAgICAgIHJldHVy
biAxLjA7CiAgICAgfQogCkBAIC00MTUsNiArNDAzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIC8vIFNldCB3aGVuIHByaW50aW5nLgorICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIG1f
cGx1Z2luOwogICAgIGludCBtX3BhZ2VDb3VudDsKICAgICBpbnQgbV9wcmludGVyRFBJOwogfTsK
QEAgLTEyODQsMTQgKzEyNzMsMzIgQEAgYm9vbCBXZWJGcmFtZUltcGw6OnNlbGVjdFdvcmRBcm91
bmRDYXJldAogICAgIHJldHVybiB0cnVlOwogfQogCi1pbnQgV2ViRnJhbWVJbXBsOjpwcmludEJl
Z2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLCBpbnQgcHJpbnRlckRQSSwgYm9vbCAqdXNlQnJv
d3Nlck92ZXJsYXlzKQoraW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJTaXpl
JiBwYWdlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViTm9kZSogbm9kZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5cykKIHsKICAgICBBU1NF
UlQoIWZyYW1lKCktPmRvY3VtZW50KCktPmlzRnJhbWVTZXQoKSk7Ci0gICAgLy8gSWYgdGhpcyBp
cyBhIHBsdWdpbiBkb2N1bWVudCwgY2hlY2sgaWYgdGhlIHBsdWdpbiBzdXBwb3J0cyBpdHMgb3du
Ci0gICAgLy8gcHJpbnRpbmcuIElmIGl0IGRvZXMsIHdlIHdpbGwgZGVsZWdhdGUgYWxsIHByaW50
aW5nIHRvIHRoYXQuCi0gICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVy
ID0gcGx1Z2luQ29udGFpbmVyRnJvbUZyYW1lKGZyYW1lKCkpOworICAgIFdlYlBsdWdpbkNvbnRh
aW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9IDA7CisgICAgaWYgKG5vZGUpIHsKKyAgICAgICAg
Ly8gV2Ugb25seSBzdXBwb3J0IHByaW50aW5nIHBsdWdpbiBub2RlcyBmb3Igbm93LgorICAgICAg
ICBSZWZQdHI8Tm9kZT4gd2ViY29yZU5vZGUgPSBQYXNzUmVmUHRyPE5vZGU+KCpub2RlKTsKKyAg
ICAgICAgaWYgKHdlYmNvcmVOb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFnKSAm
JiB3ZWJjb3JlTm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmVtYmVkVGFnKSkgeworICAgICAg
ICAgICAgUmVuZGVyT2JqZWN0KiBvYmplY3QgPSB3ZWJjb3JlTm9kZS0+cmVuZGVyZXIoKTsKKyAg
ICAgICAgICAgIGlmIChvYmplY3QgJiYgb2JqZWN0LT5pc1dpZGdldCgpKSB7CisgICAgICAgICAg
ICAgICAgV2lkZ2V0KiB3aWRnZXQgPSB0b1JlbmRlcldpZGdldChvYmplY3QpLT53aWRnZXQoKTsK
KyAgICAgICAgICAgICAgICBpZiAod2lkZ2V0ICYmIHdpZGdldC0+aXNQbHVnaW5Db250YWluZXIo
KSkKKyAgICAgICAgICAgICAgICAgICAgcGx1Z2luQ29udGFpbmVyID0gIHN0YXRpY19jYXN0PFdl
YlBsdWdpbkNvbnRhaW5lckltcGwqPih3aWRnZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHBsdWdpbiBkb2N1bWVudCwg
Y2hlY2sgaWYgdGhlIHBsdWdpbiBzdXBwb3J0cyBpdHMgb3duCisgICAgICAgIC8vIHByaW50aW5n
LiBJZiBpdCBkb2VzLCB3ZSB3aWxsIGRlbGVnYXRlIGFsbCBwcmludGluZyB0byB0aGF0LgorICAg
ICAgICBwbHVnaW5Db250YWluZXIgPSBwbHVnaW5Db250YWluZXJGcm9tRnJhbWUoZnJhbWUoKSk7
CisgICAgfQorCiAgICAgaWYgKHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1
cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSkKLSAgICAgICAgbV9wcmludENvbnRleHQuc2V0KG5ldyBD
aHJvbWVQbHVnaW5QcmludENvbnRleHQoZnJhbWUoKSwgcHJpbnRlckRQSSkpOworICAgICAgICBt
X3ByaW50Q29udGV4dC5zZXQobmV3IENocm9tZVBsdWdpblByaW50Q29udGV4dChmcmFtZSgpLCBw
bHVnaW5Db250YWluZXIsIHByaW50ZXJEUEkpKTsKICAgICBlbHNlCiAgICAgICAgIG1fcHJpbnRD
b250ZXh0LnNldChuZXcgQ2hyb21lUHJpbnRDb250ZXh0KGZyYW1lKCkpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78621</attachid>
            <date>2011-01-11 16:40:35 -0800</date>
            <delta_ts>2011-01-11 17:06:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52134-20110111163847.patch</filename>
            <type>text/plain</type>
            <size>11742</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzU1NTgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDEtMTEgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBzdXBwb3J0IHRvIGFsbG93
IHByaW50aW5nIGp1c3QgYSBwbHVnaW4gaW4gYSBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMzQKKworICAgICAgICAqIHB1YmxpYy9XZWJD
b250ZXh0TWVudURhdGEuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAg
KiBzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29udGV4
dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblBy
aW50Q29udGV4dDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjplbmQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQ
bHVnaW5QcmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVQbHVnaW5QcmludENvbnRleHQ6OnNwb29sUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6cHJpbnRCZWdpbik6CisKIDIwMTEtMDEtMTEgIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL0RFUFMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L0RFUFMJKHJldmlzaW9uIDc1NTU1KQorKysgV2ViS2l0L2Nocm9taXVtL0RFUFMJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIAogdmFycyA9IHsKICAgJ2Nocm9taXVtX3N2bic6ICdo
dHRwOi8vc3JjLmNocm9taXVtLm9yZy9zdm4vdHJ1bmsvc3JjJywKLSAgJ2Nocm9taXVtX3Jldic6
ICc3MTA2OScKKyAgJ2Nocm9taXVtX3Jldic6ICc3MTEwNCcKIH0KIAogZGVwcyA9IHsKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZXh0TWVudURhdGEuaAkocmV2aXNpb24g
NzU1NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYkNvbnRleHRNZW51RGF0
YV9oCiAKICNpbmNsdWRlICJXZWJNZW51SXRlbUluZm8uaCIKKyNpbmNsdWRlICJXZWJOb2RlLmgi
CiAjaW5jbHVkZSAiV2ViUG9pbnQuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRl
ICJXZWJVUkwuaCIKQEAgLTUwLDYgKzUxLDggQEAgc3RydWN0IFdlYkNvbnRleHRNZW51RGF0YSB7
CiAgICAgICAgIE1lZGlhVHlwZVZpZGVvLAogICAgICAgICAvLyBBbiBhdWRpbyBub2RlIGlzIHNl
bGVjdGVkLgogICAgICAgICBNZWRpYVR5cGVBdWRpbywKKyAgICAgICAgLy8gQSBwbHVnaW4gbm9k
ZSBpcyBzZWxlY3RlZC4KKyAgICAgICAgTWVkaWFUeXBlUGx1Z2luLAogICAgIH07CiAgICAgLy8g
VGhlIHR5cGUgb2YgbWVkaWEgdGhlIGNvbnRleHQgbWVudSBpcyBiZWluZyBpbnZva2VkIG9uLgog
ICAgIE1lZGlhVHlwZSBtZWRpYVR5cGU7CkBAIC04NSw2ICs4OCw3IEBAIHN0cnVjdCBXZWJDb250
ZXh0TWVudURhdGEgewogICAgICAgICBNZWRpYUhhc0F1ZGlvID0gMHgyMCwKICAgICAgICAgTWVk
aWFIYXNWaWRlbyA9IDB4NDAsCiAgICAgICAgIE1lZGlhQ29udHJvbHMgPSAweDgwLAorICAgICAg
ICBNZWRpYUNhblByaW50ID0gMHgxMDAsCiAgICAgfTsKIAogICAgIC8vIEV4dHJhIGF0dHJpYnV0
ZXMgZGVzY3JpYmluZyBtZWRpYSBlbGVtZW50cy4KQEAgLTEzNiw2ICsxNDAsOSBAQCBzdHJ1Y3Qg
V2ViQ29udGV4dE1lbnVEYXRhIHsKICAgICAvLyBDdXN0b20gY29udGV4dCBtZW51IGl0ZW1zIHBy
b3ZpZGVkIGJ5IHRoZSBXZWJDb3JlIGludGVybmFscy4KICAgICBXZWJWZWN0b3I8V2ViTWVudUl0
ZW1JbmZvPiBjdXN0b21JdGVtczsKIAorICAgIC8vIFRoZSBub2RlIHRoYXQgd2FzIGNsaWNrZWQu
CisgICAgV2ViTm9kZSBub2RlOworCiAgICAgV2ViQ29udGV4dE1lbnVEYXRhKCkKICAgICAgICAg
OiBtZWRpYVR5cGUoTWVkaWFUeXBlTm9uZSkKICAgICAgICAgLCBpc0ltYWdlQmxvY2tlZChmYWxz
ZSkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDc1NTU1KQorKysg
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2
ICs1Nyw3IEBAIGNsYXNzIFdlYkhpc3RvcnlJdGVtOwogY2xhc3MgV2ViSW5wdXRFbGVtZW50Owog
Y2xhc3MgV2ViUGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lcjsKIGNsYXNzIFdlYlBlcmZvcm1h
bmNlOworY2xhc3MgV2ViTm9kZTsKIGNsYXNzIFdlYlJhbmdlOwogY2xhc3MgV2ViU2VjdXJpdHlP
cmlnaW47CiBjbGFzcyBXZWJTdHJpbmc7CkBAIC03MSw2ICs3Miw5IEBAIHN0cnVjdCBXZWJTY3Jp
cHRTb3VyY2U7CiBzdHJ1Y3QgV2ViU2l6ZTsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBX
ZWJWZWN0b3I7CiAKKy8vIEZJWE1FKGphbSk6IHRha2UgdGhpcyBvdXQgb25jZSBDaHJvbWl1bSBo
YXMgdGhpcworI2RlZmluZSBXRUJGUkFNRV9QUklOVEJFR0lOX1RBS0VTX05PREUKKwogY2xhc3Mg
V2ViRnJhbWUgewogcHVibGljOgogICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBsaXZlIFdl
YkZyYW1lIG9iamVjdHMsIHVzZWQgZm9yIGxlYWsgY2hlY2tpbmcuCkBAIC0zOTcsMTIgKzQwMSwx
NiBAQCBwdWJsaWM6CiAgICAgLy8gUHJpbnRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBSZWZvcm1hdHMgdGhl
IFdlYkZyYW1lIGZvciBwcmludGluZy4gcGFnZVNpemUgaXMgdGhlIHBhZ2Ugc2l6ZSBpbgotICAg
IC8vIHBvaW50cyAoYSBwb2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBwcmludGVyRFBJIGlzIHRo
ZSB1c2VyIHNlbGVjdGVkLAotICAgIC8vIERQSSBmb3IgdGhlIHByaW50ZXIuIFJldHVybnMgdGhl
IG51bWJlciBvZiBwYWdlcyB0aGF0Ci0gICAgLy8gY2FuIGJlIHByaW50ZWQgYXQgdGhlIGdpdmVu
IHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJhbSB1c2VCcm93c2VyT3ZlcmxheXMKLSAgICAvLyBzcGVj
aWZpZXMgd2hldGhlciB0aGUgYnJvd3NlciBwcm9jZXNzIHNob3VsZCB1c2UgaXRzIG92ZXJsYXlz
IChoZWFkZXIsCi0gICAgLy8gZm9vdGVyLCBtYXJnaW5zIGV0Yykgb3Igd2hldGhlciB0aGUgcmVu
ZGVyZXIgY29udHJvbHMgdGhpcy4KLSAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdl
YlNpemUmIHBhZ2VTaXplLCBpbnQgcHJpbnRlckRQSSA9IDcyLAorICAgIC8vIHBvaW50cyAoYSBw
b2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBJZiB8bm9kZXwgaXMgc3BlY2lmaWVkLCB0aGVuIG9u
bHkKKyAgICAvLyB0aGUgZ2l2ZW4gbm9kZSBpcyBwcmludGVkIChmb3Igbm93IG9ubHkgcGx1Z2lu
cyBhcmUgc3VwcG9ydGVkKSwgaW5zdGVhZAorICAgIC8vIG9mIHRoZSBlbnRpcmUgZnJhbWUuICBw
cmludGVyRFBJIGlzIHRoZSB1c2VyIHNlbGVjdGVkLCBEUEkgZm9yIHRoZQorICAgIC8vIHByaW50
ZXIuIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNhbiBiZSBwcmludGVkIGF0IHRo
ZSBnaXZlbgorICAgIC8vIHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJhbSB1c2VCcm93c2VyT3Zlcmxh
eXMgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIKKyAgICAvLyBwcm9jZXNzIHNob3VsZCB1
c2UgaXRzIG92ZXJsYXlzIChoZWFkZXIsIGZvb3RlciwgbWFyZ2lucyBldGMpIG9yIHdoZXRoZXIK
KyAgICAvLyB0aGUgcmVuZGVyZXIgY29udHJvbHMgdGhpcy4KKyAgICB2aXJ0dWFsIGludCBwcmlu
dEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViTm9kZSogbm9kZSA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJp
bnRlckRQSSA9IDcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nl
ck92ZXJsYXlzID0gMCkgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0aGUgcGFnZSBzaHJpbmtpbmcg
ZmFjdG9yIGNhbGN1bGF0ZWQgYnkgd2Via2l0ICh1c3VhbGx5CkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA3NTU1NSkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNs
dWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVk
ZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRl
ICJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjExLDYgKzIxMiw3IEBAIFBs
YXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW4KICAgICAgICAgaWYgKG9iamVj
dCAmJiBvYmplY3QtPmlzV2lkZ2V0KCkpIHsKICAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0g
dG9SZW5kZXJXaWRnZXQob2JqZWN0KS0+d2lkZ2V0KCk7CiAgICAgICAgICAgICBpZiAod2lkZ2V0
ICYmIHdpZGdldC0+aXNQbHVnaW5Db250YWluZXIoKSkgeworICAgICAgICAgICAgICAgIGRhdGEu
bWVkaWFUeXBlID0gV2ViQ29udGV4dE1lbnVEYXRhOjpNZWRpYVR5cGVQbHVnaW47CiAgICAgICAg
ICAgICAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luID0gc3RhdGljX2Nhc3Q8V2Vi
UGx1Z2luQ29udGFpbmVySW1wbCo+KHdpZGdldCk7CiAgICAgICAgICAgICAgICAgV2ViU3RyaW5n
IHRleHQgPSBwbHVnaW4tPnBsdWdpbigpLT5zZWxlY3Rpb25Bc1RleHQoKTsKICAgICAgICAgICAg
ICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKSB7CkBAIC0yMTksNiArMjIxLDEyIEBAIFBsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW4KICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgZGF0YS5lZGl0RmxhZ3MgJj0gfldlYkNvbnRleHRNZW51RGF0YTo6Q2FuVHJh
bnNsYXRlOwogICAgICAgICAgICAgICAgIGRhdGEubGlua1VSTCA9IHBsdWdpbi0+cGx1Z2luKCkt
PmxpbmtBdFBvc2l0aW9uKGRhdGEubW91c2VQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgaWYg
KHBsdWdpbi0+cGx1Z2luKCktPnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSkKKyAgICAgICAgICAg
ICAgICAgICAgZGF0YS5tZWRpYUZsYWdzIHw9IFdlYkNvbnRleHRNZW51RGF0YTo6TWVkaWFDYW5Q
cmludDsKKworICAgICAgICAgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdpbkVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4oci5pbm5lck5vblNo
YXJlZE5vZGUoKSk7CisgICAgICAgICAgICAgICAgZGF0YS5zcmNVUkwgPSBwbHVnaW5FbGVtZW50
LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LT51cmwoKSk7CisgICAgICAg
ICAgICAgICAgZGF0YS5tZWRpYUZsYWdzIHw9IFdlYkNvbnRleHRNZW51RGF0YTo6TWVkaWFDYW5T
YXZlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMjY4LDYgKzI3Niw4IEBA
IFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW4KICAgICAvLyBGaWx0ZXIg
b3V0IGN1c3RvbSBtZW51IGVsZW1lbnRzIGFuZCBhZGQgdGhlbSBpbnRvIHRoZSBkYXRhLgogICAg
IHBvcHVsYXRlQ3VzdG9tTWVudUl0ZW1zKGRlZmF1bHRNZW51LCAmZGF0YSk7CiAKKyAgICBkYXRh
Lm5vZGUgPSByLmlubmVyTm9uU2hhcmVkTm9kZSgpOworCiAgICAgV2ViRnJhbWUqIHNlbGVjdGVk
X3dlYl9mcmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKHNlbGVjdGVkRnJhbWUpOwogICAg
IGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5z
aG93Q29udGV4dE1lbnUoc2VsZWN0ZWRfd2ViX2ZyYW1lLCBkYXRhKTsKSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDc1NTU1KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcg
QEAKICNpbmNsdWRlICJQbHVnaW5Eb2N1bWVudC5oIgogI2luY2x1ZGUgIlByaW50Q29udGV4dC5o
IgogI2luY2x1ZGUgIlJlbmRlckZyYW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKQEAgLTEzNCw2ICsxMzUsNyBAQAogI2luY2x1ZGUgIldl
YkZyYW1lQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJX
ZWJJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJOb2RlLmgiCiAjaW5jbHVkZSAiV2ViUGFz
c3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYlBlcmZvcm1hbmNlLmgi
CiAjaW5jbHVkZSAiV2ViUGx1Z2luLmgiCkBAIC0zNTUsMTEgKzM1Nyw5IEBAIHByaXZhdGU6CiAv
LyB3YW50IHRvIGRlbGVnYXRlIGFsbCBwcmludGluZyByZWxhdGVkIGNhbGxzIHRvIHRoZSBwbHVn
aW4uCiBjbGFzcyBDaHJvbWVQbHVnaW5QcmludENvbnRleHQgOiBwdWJsaWMgQ2hyb21lUHJpbnRD
b250ZXh0IHsKIHB1YmxpYzoKLSAgICBDaHJvbWVQbHVnaW5QcmludENvbnRleHQoRnJhbWUqIGZy
YW1lLCBpbnQgcHJpbnRlckRQSSkKLSAgICAgICAgOiBDaHJvbWVQcmludENvbnRleHQoZnJhbWUp
LCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludGVyRFBJKHByaW50ZXJEUEkpCisgICAgQ2hyb21lUGx1
Z2luUHJpbnRDb250ZXh0KEZyYW1lKiBmcmFtZSwgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1
Z2luLCBpbnQgcHJpbnRlckRQSSkKKyAgICAgICAgOiBDaHJvbWVQcmludENvbnRleHQoZnJhbWUp
LCBtX3BsdWdpbihwbHVnaW4pLCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludGVyRFBJKHByaW50ZXJE
UEkpCiAgICAgewotICAgICAgICAvLyBUaGlzIEhBUyB0byBiZSBhIGZyYW1lIGhvc3RpbmcgYSBm
dWxsLW1vZGUgcGx1Z2luCi0gICAgICAgIEFTU0VSVChmcmFtZS0+ZG9jdW1lbnQoKS0+aXNQbHVn
aW5Eb2N1bWVudCgpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW4oZmxvYXQgd2lk
dGgpCkBAIC0zNjgsMTEgKzM2OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBlbmQo
KQogICAgIHsKLSAgICAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVy
ID0gV2ViRnJhbWVJbXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAg
ICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2lu
YXRlZFByaW50KCkpCi0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnByaW50RW5kKCk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBt
X3BsdWdpbi0+cHJpbnRFbmQoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGZsb2F0IGdldFBhZ2VT
aHJpbmsoaW50IHBhZ2VOdW1iZXIpIGNvbnN0CkBAIC0zODMsMTEgKzM3OSw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUGFnZVJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgcHJp
bnRSZWN0LCBmbG9hdCBoZWFkZXJIZWlnaHQsIGZsb2F0IGZvb3RlckhlaWdodCwgZmxvYXQgdXNl
clNjYWxlRmFjdG9yLCBmbG9hdCYgb3V0UGFnZUhlaWdodCkKICAgICB7Ci0gICAgICAgIFdlYlBs
dWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9IFdlYkZyYW1lSW1wbDo6cGx1Z2lu
Q29udGFpbmVyRnJvbUZyYW1lKG1fZnJhbWUpOwotICAgICAgICBpZiAocGx1Z2luQ29udGFpbmVy
ICYmIHBsdWdpbkNvbnRhaW5lci0+c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgpKQotICAgICAgICAg
ICAgbV9wYWdlQ291bnQgPSBwbHVnaW5Db250YWluZXItPnByaW50QmVnaW4oSW50UmVjdChwcmlu
dFJlY3QpLCBtX3ByaW50ZXJEUEkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgbV9wYWdlQ291bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdp
bihJbnRSZWN0KHByaW50UmVjdCksIG1fcHJpbnRlckRQSSk7CiAgICAgfQogCiAgICAgdmlydHVh
bCBpbnQgcGFnZUNvdW50KCkgY29uc3QKQEAgLTQwMCwxMSArMzkyLDcgQEAgcHVibGljOgogICAg
IC8vIGluc3RlYWQuICBSZXR1cm5zIHRoZSBzY2FsZSB0byBiZSBhcHBsaWVkLgogICAgIHZpcnR1
YWwgZmxvYXQgc3Bvb2xQYWdlKEdyYXBoaWNzQ29udGV4dCYgY3R4LCBpbnQgcGFnZU51bWJlcikK
ICAgICB7Ci0gICAgICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9
IFdlYkZyYW1lSW1wbDo6cGx1Z2luQ29udGFpbmVyRnJvbUZyYW1lKG1fZnJhbWUpOwotICAgICAg
ICBpZiAocGx1Z2luQ29udGFpbmVyICYmIHBsdWdpbkNvbnRhaW5lci0+c3VwcG9ydHNQYWdpbmF0
ZWRQcmludCgpKQotICAgICAgICAgICAgcGx1Z2luQ29udGFpbmVyLT5wcmludFBhZ2UocGFnZU51
bWJlciwgJmN0eCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBtX3BsdWdpbi0+cHJpbnRQYWdlKHBhZ2VOdW1iZXIsICZjdHgpOwogICAg
ICAgICByZXR1cm4gMS4wOwogICAgIH0KIApAQCAtNDE1LDYgKzQwMyw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICAvLyBTZXQgd2hlbiBwcmludGluZy4KKyAgICBXZWJQbHVnaW5Db250YWlu
ZXJJbXBsKiBtX3BsdWdpbjsKICAgICBpbnQgbV9wYWdlQ291bnQ7CiAgICAgaW50IG1fcHJpbnRl
ckRQSTsKIH07CkBAIC0xMjg0LDE0ICsxMjczLDMyIEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpzZWxl
Y3RXb3JkQXJvdW5kQ2FyZXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotaW50IFdlYkZyYW1lSW1w
bDo6cHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSwgaW50IHByaW50ZXJEUEksIGJv
b2wgKnVzZUJyb3dzZXJPdmVybGF5cykKK2ludCBXZWJGcmFtZUltcGw6OnByaW50QmVnaW4oY29u
c3QgV2ViU2l6ZSYgcGFnZVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYk5v
ZGUqIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMpCiB7
CiAgICAgQVNTRVJUKCFmcmFtZSgpLT5kb2N1bWVudCgpLT5pc0ZyYW1lU2V0KCkpOwotICAgIC8v
IElmIHRoaXMgaXMgYSBwbHVnaW4gZG9jdW1lbnQsIGNoZWNrIGlmIHRoZSBwbHVnaW4gc3VwcG9y
dHMgaXRzIG93bgotICAgIC8vIHByaW50aW5nLiBJZiBpdCBkb2VzLCB3ZSB3aWxsIGRlbGVnYXRl
IGFsbCBwcmludGluZyB0byB0aGF0LgotICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdp
bkNvbnRhaW5lciA9IHBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSgpKTsKKyAgICBXZWJQ
bHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSAwOworICAgIGlmIChub2RlKSB7
CisgICAgICAgIC8vIFdlIG9ubHkgc3VwcG9ydCBwcmludGluZyBwbHVnaW4gbm9kZXMgZm9yIG5v
dy4KKyAgICAgICAgUmVmUHRyPE5vZGU+IHdlYmNvcmVOb2RlID0gUGFzc1JlZlB0cjxOb2RlPigq
bm9kZSk7CisgICAgICAgIGlmICh3ZWJjb3JlTm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9i
amVjdFRhZykgJiYgd2ViY29yZU5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjplbWJlZFRhZykp
IHsKKyAgICAgICAgICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gd2ViY29yZU5vZGUtPnJlbmRl
cmVyKCk7CisgICAgICAgICAgICBpZiAob2JqZWN0ICYmIG9iamVjdC0+aXNXaWRnZXQoKSkgewor
ICAgICAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gdG9SZW5kZXJXaWRnZXQob2JqZWN0KS0+
d2lkZ2V0KCk7CisgICAgICAgICAgICAgICAgaWYgKHdpZGdldCAmJiB3aWRnZXQtPmlzUGx1Z2lu
Q29udGFpbmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHBsdWdpbkNvbnRhaW5lciA9ICBzdGF0
aWNfY2FzdDxXZWJQbHVnaW5Db250YWluZXJJbXBsKj4od2lkZ2V0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIElmIHRoaXMgaXMgYSBwbHVnaW4g
ZG9jdW1lbnQsIGNoZWNrIGlmIHRoZSBwbHVnaW4gc3VwcG9ydHMgaXRzIG93bgorICAgICAgICAv
LyBwcmludGluZy4gSWYgaXQgZG9lcywgd2Ugd2lsbCBkZWxlZ2F0ZSBhbGwgcHJpbnRpbmcgdG8g
dGhhdC4KKyAgICAgICAgcGx1Z2luQ29udGFpbmVyID0gcGx1Z2luQ29udGFpbmVyRnJvbUZyYW1l
KGZyYW1lKCkpOworICAgIH0KKwogICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2luQ29u
dGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgIG1fcHJpbnRDb250ZXh0
LnNldChuZXcgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHByaW50ZXJEUEkpKTsK
KyAgICAgICAgbV9wcmludENvbnRleHQuc2V0KG5ldyBDaHJvbWVQbHVnaW5QcmludENvbnRleHQo
ZnJhbWUoKSwgcGx1Z2luQ29udGFpbmVyLCBwcmludGVyRFBJKSk7CiAgICAgZWxzZQogICAgICAg
ICBtX3ByaW50Q29udGV4dC5zZXQobmV3IENocm9tZVByaW50Q29udGV4dChmcmFtZSgpKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78628</attachid>
            <date>2011-01-11 17:06:29 -0800</date>
            <delta_ts>2011-01-12 00:16:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52134-20110111170440.patch</filename>
            <type>text/plain</type>
            <size>12503</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzU1NTgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDEtMTEgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBzdXBwb3J0IHRvIGFsbG93
IHByaW50aW5nIGp1c3QgYSBwbHVnaW4gaW4gYSBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMzQKKworICAgICAgICAqIHB1YmxpYy9XZWJD
b250ZXh0TWVudURhdGEuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAg
KiBzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29udGV4
dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblBy
aW50Q29udGV4dDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjplbmQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQ
bHVnaW5QcmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVQbHVnaW5QcmludENvbnRleHQ6OnNwb29sUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6cHJpbnRCZWdpbik6CisKIDIwMTEtMDEtMTEgIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL0RFUFMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L0RFUFMJKHJldmlzaW9uIDc1NTU1KQorKysgV2ViS2l0L2Nocm9taXVtL0RFUFMJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIAogdmFycyA9IHsKICAgJ2Nocm9taXVtX3N2bic6ICdo
dHRwOi8vc3JjLmNocm9taXVtLm9yZy9zdm4vdHJ1bmsvc3JjJywKLSAgJ2Nocm9taXVtX3Jldic6
ICc3MTA2OScKKyAgJ2Nocm9taXVtX3Jldic6ICc3MTEwNCcKIH0KIAogZGVwcyA9IHsKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZXh0TWVudURhdGEuaAkocmV2aXNpb24g
NzU1NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYkNvbnRleHRNZW51RGF0
YV9oCiAKICNpbmNsdWRlICJXZWJNZW51SXRlbUluZm8uaCIKKyNpbmNsdWRlICJXZWJOb2RlLmgi
CiAjaW5jbHVkZSAiV2ViUG9pbnQuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRl
ICJXZWJVUkwuaCIKQEAgLTUwLDYgKzUxLDggQEAgc3RydWN0IFdlYkNvbnRleHRNZW51RGF0YSB7
CiAgICAgICAgIE1lZGlhVHlwZVZpZGVvLAogICAgICAgICAvLyBBbiBhdWRpbyBub2RlIGlzIHNl
bGVjdGVkLgogICAgICAgICBNZWRpYVR5cGVBdWRpbywKKyAgICAgICAgLy8gQSBwbHVnaW4gbm9k
ZSBpcyBzZWxlY3RlZC4KKyAgICAgICAgTWVkaWFUeXBlUGx1Z2luLAogICAgIH07CiAgICAgLy8g
VGhlIHR5cGUgb2YgbWVkaWEgdGhlIGNvbnRleHQgbWVudSBpcyBiZWluZyBpbnZva2VkIG9uLgog
ICAgIE1lZGlhVHlwZSBtZWRpYVR5cGU7CkBAIC04NSw2ICs4OCw3IEBAIHN0cnVjdCBXZWJDb250
ZXh0TWVudURhdGEgewogICAgICAgICBNZWRpYUhhc0F1ZGlvID0gMHgyMCwKICAgICAgICAgTWVk
aWFIYXNWaWRlbyA9IDB4NDAsCiAgICAgICAgIE1lZGlhQ29udHJvbHMgPSAweDgwLAorICAgICAg
ICBNZWRpYUNhblByaW50ID0gMHgxMDAsCiAgICAgfTsKIAogICAgIC8vIEV4dHJhIGF0dHJpYnV0
ZXMgZGVzY3JpYmluZyBtZWRpYSBlbGVtZW50cy4KQEAgLTEzNiw2ICsxNDAsOSBAQCBzdHJ1Y3Qg
V2ViQ29udGV4dE1lbnVEYXRhIHsKICAgICAvLyBDdXN0b20gY29udGV4dCBtZW51IGl0ZW1zIHBy
b3ZpZGVkIGJ5IHRoZSBXZWJDb3JlIGludGVybmFscy4KICAgICBXZWJWZWN0b3I8V2ViTWVudUl0
ZW1JbmZvPiBjdXN0b21JdGVtczsKIAorICAgIC8vIFRoZSBub2RlIHRoYXQgd2FzIGNsaWNrZWQu
CisgICAgV2ViTm9kZSBub2RlOworCiAgICAgV2ViQ29udGV4dE1lbnVEYXRhKCkKICAgICAgICAg
OiBtZWRpYVR5cGUoTWVkaWFUeXBlTm9uZSkKICAgICAgICAgLCBpc0ltYWdlQmxvY2tlZChmYWxz
ZSkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDc1NTU1KQorKysg
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2
ICs1Nyw3IEBAIGNsYXNzIFdlYkhpc3RvcnlJdGVtOwogY2xhc3MgV2ViSW5wdXRFbGVtZW50Owog
Y2xhc3MgV2ViUGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lcjsKIGNsYXNzIFdlYlBlcmZvcm1h
bmNlOworY2xhc3MgV2ViTm9kZTsKIGNsYXNzIFdlYlJhbmdlOwogY2xhc3MgV2ViU2VjdXJpdHlP
cmlnaW47CiBjbGFzcyBXZWJTdHJpbmc7CkBAIC03MSw2ICs3Miw5IEBAIHN0cnVjdCBXZWJTY3Jp
cHRTb3VyY2U7CiBzdHJ1Y3QgV2ViU2l6ZTsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBX
ZWJWZWN0b3I7CiAKKy8vIEZJWE1FKGphbSk6IHRha2UgdGhpcyBvdXQgb25jZSBDaHJvbWl1bSBo
YXMgdGhpcworI2RlZmluZSBXRUJGUkFNRV9QUklOVEJFR0lOX1RBS0VTX05PREUKKwogY2xhc3Mg
V2ViRnJhbWUgewogcHVibGljOgogICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBsaXZlIFdl
YkZyYW1lIG9iamVjdHMsIHVzZWQgZm9yIGxlYWsgY2hlY2tpbmcuCkBAIC0zOTcsMTIgKzQwMSwx
NiBAQCBwdWJsaWM6CiAgICAgLy8gUHJpbnRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBSZWZvcm1hdHMgdGhl
IFdlYkZyYW1lIGZvciBwcmludGluZy4gcGFnZVNpemUgaXMgdGhlIHBhZ2Ugc2l6ZSBpbgotICAg
IC8vIHBvaW50cyAoYSBwb2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBwcmludGVyRFBJIGlzIHRo
ZSB1c2VyIHNlbGVjdGVkLAotICAgIC8vIERQSSBmb3IgdGhlIHByaW50ZXIuIFJldHVybnMgdGhl
IG51bWJlciBvZiBwYWdlcyB0aGF0Ci0gICAgLy8gY2FuIGJlIHByaW50ZWQgYXQgdGhlIGdpdmVu
IHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJhbSB1c2VCcm93c2VyT3ZlcmxheXMKLSAgICAvLyBzcGVj
aWZpZXMgd2hldGhlciB0aGUgYnJvd3NlciBwcm9jZXNzIHNob3VsZCB1c2UgaXRzIG92ZXJsYXlz
IChoZWFkZXIsCi0gICAgLy8gZm9vdGVyLCBtYXJnaW5zIGV0Yykgb3Igd2hldGhlciB0aGUgcmVu
ZGVyZXIgY29udHJvbHMgdGhpcy4KLSAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdl
YlNpemUmIHBhZ2VTaXplLCBpbnQgcHJpbnRlckRQSSA9IDcyLAorICAgIC8vIHBvaW50cyAoYSBw
b2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBJZiB8bm9kZXwgaXMgc3BlY2lmaWVkLCB0aGVuIG9u
bHkKKyAgICAvLyB0aGUgZ2l2ZW4gbm9kZSBpcyBwcmludGVkIChmb3Igbm93IG9ubHkgcGx1Z2lu
cyBhcmUgc3VwcG9ydGVkKSwgaW5zdGVhZAorICAgIC8vIG9mIHRoZSBlbnRpcmUgZnJhbWUuICBw
cmludGVyRFBJIGlzIHRoZSB1c2VyIHNlbGVjdGVkLCBEUEkgZm9yIHRoZQorICAgIC8vIHByaW50
ZXIuIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNhbiBiZSBwcmludGVkIGF0IHRo
ZSBnaXZlbgorICAgIC8vIHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJhbSB1c2VCcm93c2VyT3Zlcmxh
eXMgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIKKyAgICAvLyBwcm9jZXNzIHNob3VsZCB1
c2UgaXRzIG92ZXJsYXlzIChoZWFkZXIsIGZvb3RlciwgbWFyZ2lucyBldGMpIG9yIHdoZXRoZXIK
KyAgICAvLyB0aGUgcmVuZGVyZXIgY29udHJvbHMgdGhpcy4KKyAgICB2aXJ0dWFsIGludCBwcmlu
dEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViTm9kZSogbm9kZSA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJp
bnRlckRQSSA9IDcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nl
ck92ZXJsYXlzID0gMCkgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0aGUgcGFnZSBzaHJpbmtpbmcg
ZmFjdG9yIGNhbGN1bGF0ZWQgYnkgd2Via2l0ICh1c3VhbGx5CkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA3NTU1NSkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNs
dWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVk
ZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRl
ICJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjExLDYgKzIxMiw3IEBAIFBs
YXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW4KICAgICAgICAgaWYgKG9iamVj
dCAmJiBvYmplY3QtPmlzV2lkZ2V0KCkpIHsKICAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0g
dG9SZW5kZXJXaWRnZXQob2JqZWN0KS0+d2lkZ2V0KCk7CiAgICAgICAgICAgICBpZiAod2lkZ2V0
ICYmIHdpZGdldC0+aXNQbHVnaW5Db250YWluZXIoKSkgeworICAgICAgICAgICAgICAgIGRhdGEu
bWVkaWFUeXBlID0gV2ViQ29udGV4dE1lbnVEYXRhOjpNZWRpYVR5cGVQbHVnaW47CiAgICAgICAg
ICAgICAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luID0gc3RhdGljX2Nhc3Q8V2Vi
UGx1Z2luQ29udGFpbmVySW1wbCo+KHdpZGdldCk7CiAgICAgICAgICAgICAgICAgV2ViU3RyaW5n
IHRleHQgPSBwbHVnaW4tPnBsdWdpbigpLT5zZWxlY3Rpb25Bc1RleHQoKTsKICAgICAgICAgICAg
ICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKSB7CkBAIC0yMTksNiArMjIxLDEyIEBAIFBsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW4KICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgZGF0YS5lZGl0RmxhZ3MgJj0gfldlYkNvbnRleHRNZW51RGF0YTo6Q2FuVHJh
bnNsYXRlOwogICAgICAgICAgICAgICAgIGRhdGEubGlua1VSTCA9IHBsdWdpbi0+cGx1Z2luKCkt
PmxpbmtBdFBvc2l0aW9uKGRhdGEubW91c2VQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgaWYg
KHBsdWdpbi0+cGx1Z2luKCktPnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSkKKyAgICAgICAgICAg
ICAgICAgICAgZGF0YS5tZWRpYUZsYWdzIHw9IFdlYkNvbnRleHRNZW51RGF0YTo6TWVkaWFDYW5Q
cmludDsKKworICAgICAgICAgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdpbkVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4oci5pbm5lck5vblNo
YXJlZE5vZGUoKSk7CisgICAgICAgICAgICAgICAgZGF0YS5zcmNVUkwgPSBwbHVnaW5FbGVtZW50
LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LT51cmwoKSk7CisgICAgICAg
ICAgICAgICAgZGF0YS5tZWRpYUZsYWdzIHw9IFdlYkNvbnRleHRNZW51RGF0YTo6TWVkaWFDYW5T
YXZlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMjY4LDYgKzI3Niw4IEBA
IFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW4KICAgICAvLyBGaWx0ZXIg
b3V0IGN1c3RvbSBtZW51IGVsZW1lbnRzIGFuZCBhZGQgdGhlbSBpbnRvIHRoZSBkYXRhLgogICAg
IHBvcHVsYXRlQ3VzdG9tTWVudUl0ZW1zKGRlZmF1bHRNZW51LCAmZGF0YSk7CiAKKyAgICBkYXRh
Lm5vZGUgPSByLmlubmVyTm9uU2hhcmVkTm9kZSgpOworCiAgICAgV2ViRnJhbWUqIHNlbGVjdGVk
X3dlYl9mcmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKHNlbGVjdGVkRnJhbWUpOwogICAg
IGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5z
aG93Q29udGV4dE1lbnUoc2VsZWN0ZWRfd2ViX2ZyYW1lLCBkYXRhKTsKSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDc1NTU1KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcg
QEAKICNpbmNsdWRlICJQbHVnaW5Eb2N1bWVudC5oIgogI2luY2x1ZGUgIlByaW50Q29udGV4dC5o
IgogI2luY2x1ZGUgIlJlbmRlckZyYW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKQEAgLTEzNCw2ICsxMzUsNyBAQAogI2luY2x1ZGUgIldl
YkZyYW1lQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJX
ZWJJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJOb2RlLmgiCiAjaW5jbHVkZSAiV2ViUGFz
c3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYlBlcmZvcm1hbmNlLmgi
CiAjaW5jbHVkZSAiV2ViUGx1Z2luLmgiCkBAIC0zNTUsMTEgKzM1Nyw5IEBAIHByaXZhdGU6CiAv
LyB3YW50IHRvIGRlbGVnYXRlIGFsbCBwcmludGluZyByZWxhdGVkIGNhbGxzIHRvIHRoZSBwbHVn
aW4uCiBjbGFzcyBDaHJvbWVQbHVnaW5QcmludENvbnRleHQgOiBwdWJsaWMgQ2hyb21lUHJpbnRD
b250ZXh0IHsKIHB1YmxpYzoKLSAgICBDaHJvbWVQbHVnaW5QcmludENvbnRleHQoRnJhbWUqIGZy
YW1lLCBpbnQgcHJpbnRlckRQSSkKLSAgICAgICAgOiBDaHJvbWVQcmludENvbnRleHQoZnJhbWUp
LCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludGVyRFBJKHByaW50ZXJEUEkpCisgICAgQ2hyb21lUGx1
Z2luUHJpbnRDb250ZXh0KEZyYW1lKiBmcmFtZSwgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1
Z2luLCBpbnQgcHJpbnRlckRQSSkKKyAgICAgICAgOiBDaHJvbWVQcmludENvbnRleHQoZnJhbWUp
LCBtX3BsdWdpbihwbHVnaW4pLCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludGVyRFBJKHByaW50ZXJE
UEkpCiAgICAgewotICAgICAgICAvLyBUaGlzIEhBUyB0byBiZSBhIGZyYW1lIGhvc3RpbmcgYSBm
dWxsLW1vZGUgcGx1Z2luCi0gICAgICAgIEFTU0VSVChmcmFtZS0+ZG9jdW1lbnQoKS0+aXNQbHVn
aW5Eb2N1bWVudCgpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW4oZmxvYXQgd2lk
dGgpCkBAIC0zNjgsMTEgKzM2OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBlbmQo
KQogICAgIHsKLSAgICAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVy
ID0gV2ViRnJhbWVJbXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAg
ICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2lu
YXRlZFByaW50KCkpCi0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnByaW50RW5kKCk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBt
X3BsdWdpbi0+cHJpbnRFbmQoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGZsb2F0IGdldFBhZ2VT
aHJpbmsoaW50IHBhZ2VOdW1iZXIpIGNvbnN0CkBAIC0zODMsMTEgKzM3OSw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUGFnZVJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgcHJp
bnRSZWN0LCBmbG9hdCBoZWFkZXJIZWlnaHQsIGZsb2F0IGZvb3RlckhlaWdodCwgZmxvYXQgdXNl
clNjYWxlRmFjdG9yLCBmbG9hdCYgb3V0UGFnZUhlaWdodCkKICAgICB7Ci0gICAgICAgIFdlYlBs
dWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9IFdlYkZyYW1lSW1wbDo6cGx1Z2lu
Q29udGFpbmVyRnJvbUZyYW1lKG1fZnJhbWUpOwotICAgICAgICBpZiAocGx1Z2luQ29udGFpbmVy
ICYmIHBsdWdpbkNvbnRhaW5lci0+c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgpKQotICAgICAgICAg
ICAgbV9wYWdlQ291bnQgPSBwbHVnaW5Db250YWluZXItPnByaW50QmVnaW4oSW50UmVjdChwcmlu
dFJlY3QpLCBtX3ByaW50ZXJEUEkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgbV9wYWdlQ291bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdp
bihJbnRSZWN0KHByaW50UmVjdCksIG1fcHJpbnRlckRQSSk7CiAgICAgfQogCiAgICAgdmlydHVh
bCBpbnQgcGFnZUNvdW50KCkgY29uc3QKQEAgLTQwMCwxMSArMzkyLDcgQEAgcHVibGljOgogICAg
IC8vIGluc3RlYWQuICBSZXR1cm5zIHRoZSBzY2FsZSB0byBiZSBhcHBsaWVkLgogICAgIHZpcnR1
YWwgZmxvYXQgc3Bvb2xQYWdlKEdyYXBoaWNzQ29udGV4dCYgY3R4LCBpbnQgcGFnZU51bWJlcikK
ICAgICB7Ci0gICAgICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9
IFdlYkZyYW1lSW1wbDo6cGx1Z2luQ29udGFpbmVyRnJvbUZyYW1lKG1fZnJhbWUpOwotICAgICAg
ICBpZiAocGx1Z2luQ29udGFpbmVyICYmIHBsdWdpbkNvbnRhaW5lci0+c3VwcG9ydHNQYWdpbmF0
ZWRQcmludCgpKQotICAgICAgICAgICAgcGx1Z2luQ29udGFpbmVyLT5wcmludFBhZ2UocGFnZU51
bWJlciwgJmN0eCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBtX3BsdWdpbi0+cHJpbnRQYWdlKHBhZ2VOdW1iZXIsICZjdHgpOwogICAg
ICAgICByZXR1cm4gMS4wOwogICAgIH0KIApAQCAtNDE1LDYgKzQwMyw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICAvLyBTZXQgd2hlbiBwcmludGluZy4KKyAgICBXZWJQbHVnaW5Db250YWlu
ZXJJbXBsKiBtX3BsdWdpbjsKICAgICBpbnQgbV9wYWdlQ291bnQ7CiAgICAgaW50IG1fcHJpbnRl
ckRQSTsKIH07CkBAIC0xMjg0LDE0ICsxMjczLDMyIEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpzZWxl
Y3RXb3JkQXJvdW5kQ2FyZXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotaW50IFdlYkZyYW1lSW1w
bDo6cHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSwgaW50IHByaW50ZXJEUEksIGJv
b2wgKnVzZUJyb3dzZXJPdmVybGF5cykKK2ludCBXZWJGcmFtZUltcGw6OnByaW50QmVnaW4oY29u
c3QgV2ViU2l6ZSYgcGFnZVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYk5v
ZGUqIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMpCiB7
CiAgICAgQVNTRVJUKCFmcmFtZSgpLT5kb2N1bWVudCgpLT5pc0ZyYW1lU2V0KCkpOwotICAgIC8v
IElmIHRoaXMgaXMgYSBwbHVnaW4gZG9jdW1lbnQsIGNoZWNrIGlmIHRoZSBwbHVnaW4gc3VwcG9y
dHMgaXRzIG93bgotICAgIC8vIHByaW50aW5nLiBJZiBpdCBkb2VzLCB3ZSB3aWxsIGRlbGVnYXRl
IGFsbCBwcmludGluZyB0byB0aGF0LgotICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdp
bkNvbnRhaW5lciA9IHBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSgpKTsKKyAgICBXZWJQ
bHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSAwOworICAgIGlmIChub2RlKSB7
CisgICAgICAgIC8vIFdlIG9ubHkgc3VwcG9ydCBwcmludGluZyBwbHVnaW4gbm9kZXMgZm9yIG5v
dy4KKyAgICAgICAgUmVmUHRyPE5vZGU+IHdlYmNvcmVOb2RlID0gUGFzc1JlZlB0cjxOb2RlPigq
bm9kZSk7CisgICAgICAgIGlmICh3ZWJjb3JlTm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9i
amVjdFRhZykgJiYgd2ViY29yZU5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjplbWJlZFRhZykp
IHsKKyAgICAgICAgICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gd2ViY29yZU5vZGUtPnJlbmRl
cmVyKCk7CisgICAgICAgICAgICBpZiAob2JqZWN0ICYmIG9iamVjdC0+aXNXaWRnZXQoKSkgewor
ICAgICAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gdG9SZW5kZXJXaWRnZXQob2JqZWN0KS0+
d2lkZ2V0KCk7CisgICAgICAgICAgICAgICAgaWYgKHdpZGdldCAmJiB3aWRnZXQtPmlzUGx1Z2lu
Q29udGFpbmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHBsdWdpbkNvbnRhaW5lciA9ICBzdGF0
aWNfY2FzdDxXZWJQbHVnaW5Db250YWluZXJJbXBsKj4od2lkZ2V0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIElmIHRoaXMgaXMgYSBwbHVnaW4g
ZG9jdW1lbnQsIGNoZWNrIGlmIHRoZSBwbHVnaW4gc3VwcG9ydHMgaXRzIG93bgorICAgICAgICAv
LyBwcmludGluZy4gSWYgaXQgZG9lcywgd2Ugd2lsbCBkZWxlZ2F0ZSBhbGwgcHJpbnRpbmcgdG8g
dGhhdC4KKyAgICAgICAgcGx1Z2luQ29udGFpbmVyID0gcGx1Z2luQ29udGFpbmVyRnJvbUZyYW1l
KGZyYW1lKCkpOworICAgIH0KKwogICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2luQ29u
dGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgIG1fcHJpbnRDb250ZXh0
LnNldChuZXcgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHByaW50ZXJEUEkpKTsK
KyAgICAgICAgbV9wcmludENvbnRleHQuc2V0KG5ldyBDaHJvbWVQbHVnaW5QcmludENvbnRleHQo
ZnJhbWUoKSwgcGx1Z2luQ29udGFpbmVyLCBwcmludGVyRFBJKSk7CiAgICAgZWxzZQogICAgICAg
ICBtX3ByaW50Q29udGV4dC5zZXQobmV3IENocm9tZVByaW50Q29udGV4dChmcmFtZSgpKSk7CiAK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAkocmV2aXNpb24gNzU1NTUpCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAs
NyArMTUwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHNlbGVjdGlvbkFzVGV4
dCgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHNlbGVjdGlvbkFzTWFya3VwKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdFdvcmRBcm91bmRDYXJldCgpOwotICAgIHZpcnR1
YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcGFnZVNpemUsIGludCBwcmludGVyRFBJ
LAorICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcGFnZVNpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJOb2RlKiBub2RlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IHByaW50ZXJEUEksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sKiB1c2VCcm93c2VyT3ZlcmxheXMpOwogICAgIHZpcnR1YWwgZmxvYXQgcHJpbnRQYWdlKGlu
dCBwYWdlVG9QcmludCwgV2ViQ2FudmFzKik7CiAgICAgdmlydHVhbCBmbG9hdCBnZXRQcmludFBh
Z2VTaHJpbmsoaW50IHBhZ2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78661</attachid>
            <date>2011-01-12 00:16:42 -0800</date>
            <delta_ts>2011-01-12 16:12:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52134-20110112001453.patch</filename>
            <type>text/plain</type>
            <size>12493</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzU1NTgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDEtMTEgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBzdXBwb3J0IHRvIGFsbG93
IHByaW50aW5nIGp1c3QgYSBwbHVnaW4gaW4gYSBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMzQKKworICAgICAgICAqIHB1YmxpYy9XZWJD
b250ZXh0TWVudURhdGEuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAg
KiBzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29udGV4
dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblBy
aW50Q29udGV4dDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjplbmQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQ
bHVnaW5QcmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVQbHVnaW5QcmludENvbnRleHQ6OnNwb29sUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6cHJpbnRCZWdpbik6CisKIDIwMTEtMDEtMTEgIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL0RFUFMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L0RFUFMJKHJldmlzaW9uIDc1NTU1KQorKysgV2ViS2l0L2Nocm9taXVtL0RFUFMJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIAogdmFycyA9IHsKICAgJ2Nocm9taXVtX3N2bic6ICdo
dHRwOi8vc3JjLmNocm9taXVtLm9yZy9zdm4vdHJ1bmsvc3JjJywKLSAgJ2Nocm9taXVtX3Jldic6
ICc3MTA2OScKKyAgJ2Nocm9taXVtX3Jldic6ICc3MTEwNCcKIH0KIAogZGVwcyA9IHsKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZXh0TWVudURhdGEuaAkocmV2aXNpb24g
NzU1NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYkNvbnRleHRNZW51RGF0
YV9oCiAKICNpbmNsdWRlICJXZWJNZW51SXRlbUluZm8uaCIKKyNpbmNsdWRlICJXZWJOb2RlLmgi
CiAjaW5jbHVkZSAiV2ViUG9pbnQuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRl
ICJXZWJVUkwuaCIKQEAgLTUwLDYgKzUxLDggQEAgc3RydWN0IFdlYkNvbnRleHRNZW51RGF0YSB7
CiAgICAgICAgIE1lZGlhVHlwZVZpZGVvLAogICAgICAgICAvLyBBbiBhdWRpbyBub2RlIGlzIHNl
bGVjdGVkLgogICAgICAgICBNZWRpYVR5cGVBdWRpbywKKyAgICAgICAgLy8gQSBwbHVnaW4gbm9k
ZSBpcyBzZWxlY3RlZC4KKyAgICAgICAgTWVkaWFUeXBlUGx1Z2luLAogICAgIH07CiAgICAgLy8g
VGhlIHR5cGUgb2YgbWVkaWEgdGhlIGNvbnRleHQgbWVudSBpcyBiZWluZyBpbnZva2VkIG9uLgog
ICAgIE1lZGlhVHlwZSBtZWRpYVR5cGU7CkBAIC04NSw2ICs4OCw3IEBAIHN0cnVjdCBXZWJDb250
ZXh0TWVudURhdGEgewogICAgICAgICBNZWRpYUhhc0F1ZGlvID0gMHgyMCwKICAgICAgICAgTWVk
aWFIYXNWaWRlbyA9IDB4NDAsCiAgICAgICAgIE1lZGlhQ29udHJvbHMgPSAweDgwLAorICAgICAg
ICBNZWRpYUNhblByaW50ID0gMHgxMDAsCiAgICAgfTsKIAogICAgIC8vIEV4dHJhIGF0dHJpYnV0
ZXMgZGVzY3JpYmluZyBtZWRpYSBlbGVtZW50cy4KQEAgLTEzNiw2ICsxNDAsOSBAQCBzdHJ1Y3Qg
V2ViQ29udGV4dE1lbnVEYXRhIHsKICAgICAvLyBDdXN0b20gY29udGV4dCBtZW51IGl0ZW1zIHBy
b3ZpZGVkIGJ5IHRoZSBXZWJDb3JlIGludGVybmFscy4KICAgICBXZWJWZWN0b3I8V2ViTWVudUl0
ZW1JbmZvPiBjdXN0b21JdGVtczsKIAorICAgIC8vIFRoZSBub2RlIHRoYXQgd2FzIGNsaWNrZWQu
CisgICAgV2ViTm9kZSBub2RlOworCiAgICAgV2ViQ29udGV4dE1lbnVEYXRhKCkKICAgICAgICAg
OiBtZWRpYVR5cGUoTWVkaWFUeXBlTm9uZSkKICAgICAgICAgLCBpc0ltYWdlQmxvY2tlZChmYWxz
ZSkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDc1NTU1KQorKysg
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2
ICs1Nyw3IEBAIGNsYXNzIFdlYkhpc3RvcnlJdGVtOwogY2xhc3MgV2ViSW5wdXRFbGVtZW50Owog
Y2xhc3MgV2ViUGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lcjsKIGNsYXNzIFdlYlBlcmZvcm1h
bmNlOworY2xhc3MgV2ViTm9kZTsKIGNsYXNzIFdlYlJhbmdlOwogY2xhc3MgV2ViU2VjdXJpdHlP
cmlnaW47CiBjbGFzcyBXZWJTdHJpbmc7CkBAIC03MSw2ICs3Miw5IEBAIHN0cnVjdCBXZWJTY3Jp
cHRTb3VyY2U7CiBzdHJ1Y3QgV2ViU2l6ZTsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBX
ZWJWZWN0b3I7CiAKKy8vIEZJWE1FKGphbSk6IHRha2UgdGhpcyBvdXQgb25jZSBDaHJvbWl1bSBo
YXMgdGhpcworI2RlZmluZSBXRUJGUkFNRV9QUklOVEJFR0lOX1RBS0VTX05PREUKKwogY2xhc3Mg
V2ViRnJhbWUgewogcHVibGljOgogICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBsaXZlIFdl
YkZyYW1lIG9iamVjdHMsIHVzZWQgZm9yIGxlYWsgY2hlY2tpbmcuCkBAIC0zOTcsMTIgKzQwMSwx
NiBAQCBwdWJsaWM6CiAgICAgLy8gUHJpbnRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBSZWZvcm1hdHMgdGhl
IFdlYkZyYW1lIGZvciBwcmludGluZy4gcGFnZVNpemUgaXMgdGhlIHBhZ2Ugc2l6ZSBpbgotICAg
IC8vIHBvaW50cyAoYSBwb2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBwcmludGVyRFBJIGlzIHRo
ZSB1c2VyIHNlbGVjdGVkLAotICAgIC8vIERQSSBmb3IgdGhlIHByaW50ZXIuIFJldHVybnMgdGhl
IG51bWJlciBvZiBwYWdlcyB0aGF0Ci0gICAgLy8gY2FuIGJlIHByaW50ZWQgYXQgdGhlIGdpdmVu
IHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJhbSB1c2VCcm93c2VyT3ZlcmxheXMKLSAgICAvLyBzcGVj
aWZpZXMgd2hldGhlciB0aGUgYnJvd3NlciBwcm9jZXNzIHNob3VsZCB1c2UgaXRzIG92ZXJsYXlz
IChoZWFkZXIsCi0gICAgLy8gZm9vdGVyLCBtYXJnaW5zIGV0Yykgb3Igd2hldGhlciB0aGUgcmVu
ZGVyZXIgY29udHJvbHMgdGhpcy4KLSAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdl
YlNpemUmIHBhZ2VTaXplLCBpbnQgcHJpbnRlckRQSSA9IDcyLAorICAgIC8vIHBvaW50cyAoYSBw
b2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBJZiBhIG5vZGUgaXMgc3BlY2lmaWVkLCB0aGVuIG9u
bHkKKyAgICAvLyB0aGUgZ2l2ZW4gbm9kZSBpcyBwcmludGVkIChmb3Igbm93IG9ubHkgcGx1Z2lu
cyBhcmUgc3VwcG9ydGVkKSwgaW5zdGVhZAorICAgIC8vIG9mIHRoZSBlbnRpcmUgZnJhbWUuICBw
cmludGVyRFBJIGlzIHRoZSB1c2VyIHNlbGVjdGVkLCBEUEkgZm9yIHRoZQorICAgIC8vIHByaW50
ZXIuIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNhbiBiZSBwcmludGVkIGF0IHRo
ZSBnaXZlbgorICAgIC8vIHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJhbSB1c2VCcm93c2VyT3Zlcmxh
eXMgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIKKyAgICAvLyBwcm9jZXNzIHNob3VsZCB1
c2UgaXRzIG92ZXJsYXlzIChoZWFkZXIsIGZvb3RlciwgbWFyZ2lucyBldGMpIG9yIHdoZXRoZXIK
KyAgICAvLyB0aGUgcmVuZGVyZXIgY29udHJvbHMgdGhpcy4KKyAgICB2aXJ0dWFsIGludCBwcmlu
dEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViTm9kZSogPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJE
UEkgPSA3MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVy
bGF5cyA9IDApID0gMDsKIAogICAgIC8vIFJldHVybnMgdGhlIHBhZ2Ugc2hyaW5raW5nIGZhY3Rv
ciBjYWxjdWxhdGVkIGJ5IHdlYmtpdCAodXN1YWxseQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNzU1NTUpCisrKyBXZWJL
aXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAi
SFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTWVk
aWFFcnJvci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTIxMSw2ICsyMTIsNyBAQCBQbGF0Zm9y
bU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVuCiAgICAgICAgIGlmIChvYmplY3QgJiYg
b2JqZWN0LT5pc1dpZGdldCgpKSB7CiAgICAgICAgICAgICBXaWRnZXQqIHdpZGdldCA9IHRvUmVu
ZGVyV2lkZ2V0KG9iamVjdCktPndpZGdldCgpOwogICAgICAgICAgICAgaWYgKHdpZGdldCAmJiB3
aWRnZXQtPmlzUGx1Z2luQ29udGFpbmVyKCkpIHsKKyAgICAgICAgICAgICAgICBkYXRhLm1lZGlh
VHlwZSA9IFdlYkNvbnRleHRNZW51RGF0YTo6TWVkaWFUeXBlUGx1Z2luOwogICAgICAgICAgICAg
ICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbiA9IHN0YXRpY19jYXN0PFdlYlBsdWdp
bkNvbnRhaW5lckltcGwqPih3aWRnZXQpOwogICAgICAgICAgICAgICAgIFdlYlN0cmluZyB0ZXh0
ID0gcGx1Z2luLT5wbHVnaW4oKS0+c2VsZWN0aW9uQXNUZXh0KCk7CiAgICAgICAgICAgICAgICAg
aWYgKCF0ZXh0LmlzRW1wdHkoKSkgewpAQCAtMjE5LDYgKzIyMSwxMiBAQCBQbGF0Zm9ybU1lbnVE
ZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVuCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIGRhdGEuZWRpdEZsYWdzICY9IH5XZWJDb250ZXh0TWVudURhdGE6OkNhblRyYW5zbGF0
ZTsKICAgICAgICAgICAgICAgICBkYXRhLmxpbmtVUkwgPSBwbHVnaW4tPnBsdWdpbigpLT5saW5r
QXRQb3NpdGlvbihkYXRhLm1vdXNlUG9zaXRpb24pOworICAgICAgICAgICAgICAgIGlmIChwbHVn
aW4tPnBsdWdpbigpLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCisgICAgICAgICAgICAgICAg
ICAgIGRhdGEubWVkaWFGbGFncyB8PSBXZWJDb250ZXh0TWVudURhdGE6Ok1lZGlhQ2FuUHJpbnQ7
CisKKyAgICAgICAgICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnaW5FbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+KHIuaW5uZXJOb25TaGFyZWRO
b2RlKCkpOworICAgICAgICAgICAgICAgIGRhdGEuc3JjVVJMID0gcGx1Z2luRWxlbWVudC0+ZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwocGx1Z2luRWxlbWVudC0+dXJsKCkpOworICAgICAgICAgICAg
ICAgIGRhdGEubWVkaWFGbGFncyB8PSBXZWJDb250ZXh0TWVudURhdGE6Ok1lZGlhQ2FuU2F2ZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTI2OCw2ICsyNzYsOCBAQCBQbGF0
Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVuCiAgICAgLy8gRmlsdGVyIG91dCBj
dXN0b20gbWVudSBlbGVtZW50cyBhbmQgYWRkIHRoZW0gaW50byB0aGUgZGF0YS4KICAgICBwb3B1
bGF0ZUN1c3RvbU1lbnVJdGVtcyhkZWZhdWx0TWVudSwgJmRhdGEpOwogCisgICAgZGF0YS5ub2Rl
ID0gci5pbm5lck5vblNoYXJlZE5vZGUoKTsKKwogICAgIFdlYkZyYW1lKiBzZWxlY3RlZF93ZWJf
ZnJhbWUgPSBXZWJGcmFtZUltcGw6OmZyb21GcmFtZShzZWxlY3RlZEZyYW1lKTsKICAgICBpZiAo
bV93ZWJWaWV3LT5jbGllbnQoKSkKICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2hvd0Nv
bnRleHRNZW51KHNlbGVjdGVkX3dlYl9mcmFtZSwgZGF0YSk7CkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCShyZXZpc2lvbiA3NTU1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBACiAj
aW5jbHVkZSAiUGx1Z2luRG9jdW1lbnQuaCIKICNpbmNsdWRlICJQcmludENvbnRleHQuaCIKICNp
bmNsdWRlICJSZW5kZXJGcmFtZS5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1
ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyV2lkZ2V0LmgiCkBAIC0xMzQsNiArMTM1LDcgQEAKICNpbmNsdWRlICJXZWJGcmFt
ZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiV2ViSW5w
dXRFbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViTm9kZS5oIgogI2luY2x1ZGUgIldlYlBhc3N3b3Jk
QXV0b2NvbXBsZXRlTGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJQZXJmb3JtYW5jZS5oIgogI2lu
Y2x1ZGUgIldlYlBsdWdpbi5oIgpAQCAtMzU1LDExICszNTcsOSBAQCBwcml2YXRlOgogLy8gd2Fu
dCB0byBkZWxlZ2F0ZSBhbGwgcHJpbnRpbmcgcmVsYXRlZCBjYWxscyB0byB0aGUgcGx1Z2luLgog
Y2xhc3MgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0IDogcHVibGljIENocm9tZVByaW50Q29udGV4
dCB7CiBwdWJsaWM6Ci0gICAgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KEZyYW1lKiBmcmFtZSwg
aW50IHByaW50ZXJEUEkpCi0gICAgICAgIDogQ2hyb21lUHJpbnRDb250ZXh0KGZyYW1lKSwgbV9w
YWdlQ291bnQoMCksIG1fcHJpbnRlckRQSShwcmludGVyRFBJKQorICAgIENocm9tZVBsdWdpblBy
aW50Q29udGV4dChGcmFtZSogZnJhbWUsIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbiwg
aW50IHByaW50ZXJEUEkpCisgICAgICAgIDogQ2hyb21lUHJpbnRDb250ZXh0KGZyYW1lKSwgbV9w
bHVnaW4ocGx1Z2luKSwgbV9wYWdlQ291bnQoMCksIG1fcHJpbnRlckRQSShwcmludGVyRFBJKQog
ICAgIHsKLSAgICAgICAgLy8gVGhpcyBIQVMgdG8gYmUgYSBmcmFtZSBob3N0aW5nIGEgZnVsbC1t
b2RlIHBsdWdpbgotICAgICAgICBBU1NFUlQoZnJhbWUtPmRvY3VtZW50KCktPmlzUGx1Z2luRG9j
dW1lbnQoKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luKGZsb2F0IHdpZHRoKQpA
QCAtMzY4LDExICszNjgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5kKCkKICAg
ICB7Ci0gICAgICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9IFdl
YkZyYW1lSW1wbDo6cGx1Z2luQ29udGFpbmVyRnJvbUZyYW1lKG1fZnJhbWUpOwotICAgICAgICBp
ZiAocGx1Z2luQ29udGFpbmVyICYmIHBsdWdpbkNvbnRhaW5lci0+c3VwcG9ydHNQYWdpbmF0ZWRQ
cmludCgpKQotICAgICAgICAgICAgcGx1Z2luQ29udGFpbmVyLT5wcmludEVuZCgpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgbV9wbHVn
aW4tPnByaW50RW5kKCk7CiAgICAgfQogCiAgICAgdmlydHVhbCBmbG9hdCBnZXRQYWdlU2hyaW5r
KGludCBwYWdlTnVtYmVyKSBjb25zdApAQCAtMzgzLDExICszNzksNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVBhZ2VSZWN0cyhjb25zdCBGbG9hdFJlY3QmIHByaW50UmVj
dCwgZmxvYXQgaGVhZGVySGVpZ2h0LCBmbG9hdCBmb290ZXJIZWlnaHQsIGZsb2F0IHVzZXJTY2Fs
ZUZhY3RvciwgZmxvYXQmIG91dFBhZ2VIZWlnaHQpCiAgICAgewotICAgICAgICBXZWJQbHVnaW5D
b250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJGcmFtZUltcGw6OnBsdWdpbkNvbnRh
aW5lckZyb21GcmFtZShtX2ZyYW1lKTsKLSAgICAgICAgaWYgKHBsdWdpbkNvbnRhaW5lciAmJiBw
bHVnaW5Db250YWluZXItPnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSkKLSAgICAgICAgICAgIG1f
cGFnZUNvdW50ID0gcGx1Z2luQ29udGFpbmVyLT5wcmludEJlZ2luKEludFJlY3QocHJpbnRSZWN0
KSwgbV9wcmludGVyRFBJKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIG1fcGFnZUNvdW50ID0gbV9wbHVnaW4tPnByaW50QmVnaW4oSW50
UmVjdChwcmludFJlY3QpLCBtX3ByaW50ZXJEUEkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgaW50
IHBhZ2VDb3VudCgpIGNvbnN0CkBAIC00MDAsMTEgKzM5Miw3IEBAIHB1YmxpYzoKICAgICAvLyBp
bnN0ZWFkLiAgUmV0dXJucyB0aGUgc2NhbGUgdG8gYmUgYXBwbGllZC4KICAgICB2aXJ0dWFsIGZs
b2F0IHNwb29sUGFnZShHcmFwaGljc0NvbnRleHQmIGN0eCwgaW50IHBhZ2VOdW1iZXIpCiAgICAg
ewotICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJG
cmFtZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShtX2ZyYW1lKTsKLSAgICAgICAgaWYg
KHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1cHBvcnRzUGFnaW5hdGVkUHJp
bnQoKSkKLSAgICAgICAgICAgIHBsdWdpbkNvbnRhaW5lci0+cHJpbnRQYWdlKHBhZ2VOdW1iZXIs
ICZjdHgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgbV9wbHVnaW4tPnByaW50UGFnZShwYWdlTnVtYmVyLCAmY3R4KTsKICAgICAgICAg
cmV0dXJuIDEuMDsKICAgICB9CiAKQEAgLTQxNSw2ICs0MDMsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgLy8gU2V0IHdoZW4gcHJpbnRpbmcuCisgICAgV2ViUGx1Z2luQ29udGFpbmVySW1w
bCogbV9wbHVnaW47CiAgICAgaW50IG1fcGFnZUNvdW50OwogICAgIGludCBtX3ByaW50ZXJEUEk7
CiB9OwpAQCAtMTI4NCwxNCArMTI3MywzMiBAQCBib29sIFdlYkZyYW1lSW1wbDo6c2VsZWN0V29y
ZEFyb3VuZENhcmV0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWludCBXZWJGcmFtZUltcGw6OnBy
aW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcGFnZVNpemUsIGludCBwcmludGVyRFBJLCBib29sICp1
c2VCcm93c2VyT3ZlcmxheXMpCitpbnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdl
YlNpemUmIHBhZ2VTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJOb2RlKiBu
b2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlzKQogewogICAg
IEFTU0VSVCghZnJhbWUoKS0+ZG9jdW1lbnQoKS0+aXNGcmFtZVNldCgpKTsKLSAgICAvLyBJZiB0
aGlzIGlzIGEgcGx1Z2luIGRvY3VtZW50LCBjaGVjayBpZiB0aGUgcGx1Z2luIHN1cHBvcnRzIGl0
cyBvd24KLSAgICAvLyBwcmludGluZy4gSWYgaXQgZG9lcywgd2Ugd2lsbCBkZWxlZ2F0ZSBhbGwg
cHJpbnRpbmcgdG8gdGhhdC4KLSAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250
YWluZXIgPSBwbHVnaW5Db250YWluZXJGcm9tRnJhbWUoZnJhbWUoKSk7CisgICAgV2ViUGx1Z2lu
Q29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gMDsKKyAgICBpZiAobm9kZSkgeworICAg
ICAgICAvLyBXZSBvbmx5IHN1cHBvcnQgcHJpbnRpbmcgcGx1Z2luIG5vZGVzIGZvciBub3cuCisg
ICAgICAgIFJlZlB0cjxOb2RlPiB3ZWJjb3JlTm9kZSA9IFBhc3NSZWZQdHI8Tm9kZT4oKm5vZGUp
OworICAgICAgICBpZiAod2ViY29yZU5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvYmplY3RU
YWcpICYmIHdlYmNvcmVOb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6ZW1iZWRUYWcpKSB7Cisg
ICAgICAgICAgICBSZW5kZXJPYmplY3QqIG9iamVjdCA9IHdlYmNvcmVOb2RlLT5yZW5kZXJlcigp
OworICAgICAgICAgICAgaWYgKG9iamVjdCAmJiBvYmplY3QtPmlzV2lkZ2V0KCkpIHsKKyAgICAg
ICAgICAgICAgICBXaWRnZXQqIHdpZGdldCA9IHRvUmVuZGVyV2lkZ2V0KG9iamVjdCktPndpZGdl
dCgpOworICAgICAgICAgICAgICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0LT5pc1BsdWdpbkNvbnRh
aW5lcigpKQorICAgICAgICAgICAgICAgICAgICBwbHVnaW5Db250YWluZXIgPSAgc3RhdGljX2Nh
c3Q8V2ViUGx1Z2luQ29udGFpbmVySW1wbCo+KHdpZGdldCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcGx1Z2luIGRvY3Vt
ZW50LCBjaGVjayBpZiB0aGUgcGx1Z2luIHN1cHBvcnRzIGl0cyBvd24KKyAgICAgICAgLy8gcHJp
bnRpbmcuIElmIGl0IGRvZXMsIHdlIHdpbGwgZGVsZWdhdGUgYWxsIHByaW50aW5nIHRvIHRoYXQu
CisgICAgICAgIHBsdWdpbkNvbnRhaW5lciA9IHBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFt
ZSgpKTsKKyAgICB9CisKICAgICBpZiAocGx1Z2luQ29udGFpbmVyICYmIHBsdWdpbkNvbnRhaW5l
ci0+c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgpKQotICAgICAgICBtX3ByaW50Q29udGV4dC5zZXQo
bmV3IENocm9tZVBsdWdpblByaW50Q29udGV4dChmcmFtZSgpLCBwcmludGVyRFBJKSk7CisgICAg
ICAgIG1fcHJpbnRDb250ZXh0LnNldChuZXcgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1l
KCksIHBsdWdpbkNvbnRhaW5lciwgcHJpbnRlckRQSSkpOwogICAgIGVsc2UKICAgICAgICAgbV9w
cmludENvbnRleHQuc2V0KG5ldyBDaHJvbWVQcmludENvbnRleHQoZnJhbWUoKSkpOwogCkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJKHJldmlzaW9uIDc1NTU1KQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTUwLDcgKzE1
MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBzZWxlY3Rpb25Bc1RleHQoKSBj
b25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBzZWxlY3Rpb25Bc01hcmt1cCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RXb3JkQXJvdW5kQ2FyZXQoKTsKLSAgICB2aXJ0dWFsIGlu
dCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLCBpbnQgcHJpbnRlckRQSSwKKyAg
ICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViTm9kZSosCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgcHJpbnRlckRQSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJy
b3dzZXJPdmVybGF5cyk7CiAgICAgdmlydHVhbCBmbG9hdCBwcmludFBhZ2UoaW50IHBhZ2VUb1By
aW50LCBXZWJDYW52YXMqKTsKICAgICB2aXJ0dWFsIGZsb2F0IGdldFByaW50UGFnZVNocmluayhp
bnQgcGFnZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78752</attachid>
            <date>2011-01-12 16:12:35 -0800</date>
            <delta_ts>2011-01-13 11:32:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52134-20110112161046.patch</filename>
            <type>text/plain</type>
            <size>12036</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzU1NTgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDEtMTEgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBzdXBwb3J0IHRvIGFsbG93
IHByaW50aW5nIGp1c3QgYSBwbHVnaW4gaW4gYSBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMzQKKworICAgICAgICAqIHB1YmxpYy9XZWJD
b250ZXh0TWVudURhdGEuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAg
KiBzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29udGV4
dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblBy
aW50Q29udGV4dDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjplbmQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQ
bHVnaW5QcmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVQbHVnaW5QcmludENvbnRleHQ6OnNwb29sUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6cHJpbnRCZWdpbik6CisKIDIwMTEtMDEtMTEgIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb250ZXh0TWVudURhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oCShyZXZp
c2lvbiA3NTU1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViQ29udGV4dE1l
bnVEYXRhX2gKIAogI2luY2x1ZGUgIldlYk1lbnVJdGVtSW5mby5oIgorI2luY2x1ZGUgIldlYk5v
ZGUuaCIKICNpbmNsdWRlICJXZWJQb2ludC5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2lu
Y2x1ZGUgIldlYlVSTC5oIgpAQCAtNTAsNiArNTEsOCBAQCBzdHJ1Y3QgV2ViQ29udGV4dE1lbnVE
YXRhIHsKICAgICAgICAgTWVkaWFUeXBlVmlkZW8sCiAgICAgICAgIC8vIEFuIGF1ZGlvIG5vZGUg
aXMgc2VsZWN0ZWQuCiAgICAgICAgIE1lZGlhVHlwZUF1ZGlvLAorICAgICAgICAvLyBBIHBsdWdp
biBub2RlIGlzIHNlbGVjdGVkLgorICAgICAgICBNZWRpYVR5cGVQbHVnaW4sCiAgICAgfTsKICAg
ICAvLyBUaGUgdHlwZSBvZiBtZWRpYSB0aGUgY29udGV4dCBtZW51IGlzIGJlaW5nIGludm9rZWQg
b24uCiAgICAgTWVkaWFUeXBlIG1lZGlhVHlwZTsKQEAgLTg1LDYgKzg4LDcgQEAgc3RydWN0IFdl
YkNvbnRleHRNZW51RGF0YSB7CiAgICAgICAgIE1lZGlhSGFzQXVkaW8gPSAweDIwLAogICAgICAg
ICBNZWRpYUhhc1ZpZGVvID0gMHg0MCwKICAgICAgICAgTWVkaWFDb250cm9scyA9IDB4ODAsCisg
ICAgICAgIE1lZGlhQ2FuUHJpbnQgPSAweDEwMCwKICAgICB9OwogCiAgICAgLy8gRXh0cmEgYXR0
cmlidXRlcyBkZXNjcmliaW5nIG1lZGlhIGVsZW1lbnRzLgpAQCAtMTM2LDYgKzE0MCw5IEBAIHN0
cnVjdCBXZWJDb250ZXh0TWVudURhdGEgewogICAgIC8vIEN1c3RvbSBjb250ZXh0IG1lbnUgaXRl
bXMgcHJvdmlkZWQgYnkgdGhlIFdlYkNvcmUgaW50ZXJuYWxzLgogICAgIFdlYlZlY3RvcjxXZWJN
ZW51SXRlbUluZm8+IGN1c3RvbUl0ZW1zOwogCisgICAgLy8gVGhlIG5vZGUgdGhhdCB3YXMgY2xp
Y2tlZC4KKyAgICBXZWJOb2RlIG5vZGU7CisKICAgICBXZWJDb250ZXh0TWVudURhdGEoKQogICAg
ICAgICA6IG1lZGlhVHlwZShNZWRpYVR5cGVOb25lKQogICAgICAgICAsIGlzSW1hZ2VCbG9ja2Vk
KGZhbHNlKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAkocmV2aXNpb24gNzU1NTUp
CisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViRnJhbWVfaAogCiAjaW5jbHVkZSAiV2ViQ2FudmFz
LmgiCisjaW5jbHVkZSAiV2ViTm9kZS5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgogCiBzdHJ1Y3Qg
TlBPYmplY3Q7CkBAIC03MSw2ICs3Miw5IEBAIHN0cnVjdCBXZWJTY3JpcHRTb3VyY2U7CiBzdHJ1
Y3QgV2ViU2l6ZTsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBXZWJWZWN0b3I7CiAKKy8v
IEZJWE1FKGphbSk6IHRha2UgdGhpcyBvdXQgb25jZSBDaHJvbWl1bSBoYXMgdGhpcworI2RlZmlu
ZSBXRUJGUkFNRV9QUklOVEJFR0lOX1RBS0VTX05PREUKKwogY2xhc3MgV2ViRnJhbWUgewogcHVi
bGljOgogICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBsaXZlIFdlYkZyYW1lIG9iamVjdHMs
IHVzZWQgZm9yIGxlYWsgY2hlY2tpbmcuCkBAIC0zOTcsMTIgKzQwMSwxNiBAQCBwdWJsaWM6CiAg
ICAgLy8gUHJpbnRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBSZWZvcm1hdHMgdGhlIFdlYkZyYW1lIGZvciBw
cmludGluZy4gcGFnZVNpemUgaXMgdGhlIHBhZ2Ugc2l6ZSBpbgotICAgIC8vIHBvaW50cyAoYSBw
b2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBwcmludGVyRFBJIGlzIHRoZSB1c2VyIHNlbGVjdGVk
LAotICAgIC8vIERQSSBmb3IgdGhlIHByaW50ZXIuIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdl
cyB0aGF0Ci0gICAgLy8gY2FuIGJlIHByaW50ZWQgYXQgdGhlIGdpdmVuIHBhZ2Ugc2l6ZS4gVGhl
IG91dCBwYXJhbSB1c2VCcm93c2VyT3ZlcmxheXMKKyAgICAvLyBwb2ludHMgKGEgcG9pbnQgaW4g
MS83MiBvZiBhbiBpbmNoKS4gSWYgfGNvbnN0cmFpblRvTm9kZXwgbm9kZSBpcworICAgIC8vIHNw
ZWNpZmllZCwgdGhlbiBvbmx5IHRoZSBnaXZlbiBub2RlIGlzIHByaW50ZWQgKGZvciBub3cgb25s
eSBwbHVnaW5zIGFyZQorICAgIC8vIHN1cHBvcnRlZCksIGluc3RlYWQgb2YgdGhlIGVudGlyZSBm
cmFtZS4gIHByaW50ZXJEUEkgaXMgdGhlIHVzZXIKKyAgICAvLyBzZWxlY3RlZCwgRFBJIGZvciB0
aGUgcHJpbnRlci4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2FuIGJlCisgICAg
Ly8gcHJpbnRlZCBhdCB0aGUgZ2l2ZW4gcGFnZSBzaXplLiBUaGUgb3V0IHBhcmFtIHVzZUJyb3dz
ZXJPdmVybGF5cwogICAgIC8vIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBicm93c2VyIHByb2Nlc3Mg
c2hvdWxkIHVzZSBpdHMgb3ZlcmxheXMgKGhlYWRlciwKICAgICAvLyBmb290ZXIsIG1hcmdpbnMg
ZXRjKSBvciB3aGV0aGVyIHRoZSByZW5kZXJlciBjb250cm9scyB0aGlzLgotICAgIHZpcnR1YWwg
aW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcGFnZVNpemUsIGludCBwcmludGVyRFBJID0g
NzIsCisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9k
ZSA9IFdlYk5vZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJ
ID0gNzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3Zlcmxh
eXMgPSAwKSA9IDA7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBwYWdlIHNocmlua2luZyBmYWN0b3Ig
Y2FsY3VsYXRlZCBieSB3ZWJraXQgKHVzdWFsbHkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMv
Q29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
c3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDc1NTU1KQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkhU
TUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk1lZGlh
RXJyb3IuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0yMTEsNiArMjEyLDcgQEAgUGxhdGZvcm1N
ZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVDbGllbgogICAgICAgICBpZiAob2JqZWN0ICYmIG9i
amVjdC0+aXNXaWRnZXQoKSkgewogICAgICAgICAgICAgV2lkZ2V0KiB3aWRnZXQgPSB0b1JlbmRl
cldpZGdldChvYmplY3QpLT53aWRnZXQoKTsKICAgICAgICAgICAgIGlmICh3aWRnZXQgJiYgd2lk
Z2V0LT5pc1BsdWdpbkNvbnRhaW5lcigpKSB7CisgICAgICAgICAgICAgICAgZGF0YS5tZWRpYVR5
cGUgPSBXZWJDb250ZXh0TWVudURhdGE6Ok1lZGlhVHlwZVBsdWdpbjsKICAgICAgICAgICAgICAg
ICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW4gPSBzdGF0aWNfY2FzdDxXZWJQbHVnaW5D
b250YWluZXJJbXBsKj4od2lkZ2V0KTsKICAgICAgICAgICAgICAgICBXZWJTdHJpbmcgdGV4dCA9
IHBsdWdpbi0+cGx1Z2luKCktPnNlbGVjdGlvbkFzVGV4dCgpOwogICAgICAgICAgICAgICAgIGlm
ICghdGV4dC5pc0VtcHR5KCkpIHsKQEAgLTIxOSw2ICsyMjEsMTIgQEAgUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24gQ29udGV4dE1lbnVDbGllbgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBkYXRhLmVkaXRGbGFncyAmPSB+V2ViQ29udGV4dE1lbnVEYXRhOjpDYW5UcmFuc2xhdGU7
CiAgICAgICAgICAgICAgICAgZGF0YS5saW5rVVJMID0gcGx1Z2luLT5wbHVnaW4oKS0+bGlua0F0
UG9zaXRpb24oZGF0YS5tb3VzZVBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAocGx1Z2lu
LT5wbHVnaW4oKS0+c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgpKQorICAgICAgICAgICAgICAgICAg
ICBkYXRhLm1lZGlhRmxhZ3MgfD0gV2ViQ29udGV4dE1lbnVEYXRhOjpNZWRpYUNhblByaW50Owor
CisgICAgICAgICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxlbWVudCA9
IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihyLmlubmVyTm9uU2hhcmVkTm9k
ZSgpKTsKKyAgICAgICAgICAgICAgICBkYXRhLnNyY1VSTCA9IHBsdWdpbkVsZW1lbnQtPmRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKHBsdWdpbkVsZW1lbnQtPnVybCgpKTsKKyAgICAgICAgICAgICAg
ICBkYXRhLm1lZGlhRmxhZ3MgfD0gV2ViQ29udGV4dE1lbnVEYXRhOjpNZWRpYUNhblNhdmU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjgsNiArMjc2LDggQEAgUGxhdGZv
cm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVDbGllbgogICAgIC8vIEZpbHRlciBvdXQgY3Vz
dG9tIG1lbnUgZWxlbWVudHMgYW5kIGFkZCB0aGVtIGludG8gdGhlIGRhdGEuCiAgICAgcG9wdWxh
dGVDdXN0b21NZW51SXRlbXMoZGVmYXVsdE1lbnUsICZkYXRhKTsKIAorICAgIGRhdGEubm9kZSA9
IHIuaW5uZXJOb25TaGFyZWROb2RlKCk7CisKICAgICBXZWJGcmFtZSogc2VsZWN0ZWRfd2ViX2Zy
YW1lID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoc2VsZWN0ZWRGcmFtZSk7CiAgICAgaWYgKG1f
d2ViVmlldy0+Y2xpZW50KCkpCiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnNob3dDb250
ZXh0TWVudShzZWxlY3RlZF93ZWJfZnJhbWUsIGRhdGEpOwpJbmRleDogV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gNzU1NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQAogI2lu
Y2x1ZGUgIlBsdWdpbkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyRnJhbWUuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUg
IlJlbmRlcldpZGdldC5oIgpAQCAtMTM0LDYgKzEzNSw3IEBACiAjaW5jbHVkZSAiV2ViRnJhbWVD
bGllbnQuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIldlYklucHV0
RWxlbWVudC5oIgorI2luY2x1ZGUgIldlYk5vZGUuaCIKICNpbmNsdWRlICJXZWJQYXNzd29yZEF1
dG9jb21wbGV0ZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGVyZm9ybWFuY2UuaCIKICNpbmNs
dWRlICJXZWJQbHVnaW4uaCIKQEAgLTM1NSwxMSArMzU3LDkgQEAgcHJpdmF0ZToKIC8vIHdhbnQg
dG8gZGVsZWdhdGUgYWxsIHByaW50aW5nIHJlbGF0ZWQgY2FsbHMgdG8gdGhlIHBsdWdpbi4KIGNs
YXNzIENocm9tZVBsdWdpblByaW50Q29udGV4dCA6IHB1YmxpYyBDaHJvbWVQcmludENvbnRleHQg
ewogcHVibGljOgotICAgIENocm9tZVBsdWdpblByaW50Q29udGV4dChGcmFtZSogZnJhbWUsIGlu
dCBwcmludGVyRFBJKQotICAgICAgICA6IENocm9tZVByaW50Q29udGV4dChmcmFtZSksIG1fcGFn
ZUNvdW50KDApLCBtX3ByaW50ZXJEUEkocHJpbnRlckRQSSkKKyAgICBDaHJvbWVQbHVnaW5Qcmlu
dENvbnRleHQoRnJhbWUqIGZyYW1lLCBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW4sIGlu
dCBwcmludGVyRFBJKQorICAgICAgICA6IENocm9tZVByaW50Q29udGV4dChmcmFtZSksIG1fcGx1
Z2luKHBsdWdpbiksIG1fcGFnZUNvdW50KDApLCBtX3ByaW50ZXJEUEkocHJpbnRlckRQSSkKICAg
ICB7Ci0gICAgICAgIC8vIFRoaXMgSEFTIHRvIGJlIGEgZnJhbWUgaG9zdGluZyBhIGZ1bGwtbW9k
ZSBwbHVnaW4KLSAgICAgICAgQVNTRVJUKGZyYW1lLT5kb2N1bWVudCgpLT5pc1BsdWdpbkRvY3Vt
ZW50KCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBiZWdpbihmbG9hdCB3aWR0aCkKQEAg
LTM2OCwxMSArMzY4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGVuZCgpCiAgICAg
ewotICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJG
cmFtZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShtX2ZyYW1lKTsKLSAgICAgICAgaWYg
KHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1cHBvcnRzUGFnaW5hdGVkUHJp
bnQoKSkKLSAgICAgICAgICAgIHBsdWdpbkNvbnRhaW5lci0+cHJpbnRFbmQoKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIG1fcGx1Z2lu
LT5wcmludEVuZCgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgZmxvYXQgZ2V0UGFnZVNocmluayhp
bnQgcGFnZU51bWJlcikgY29uc3QKQEAgLTM4MywxMSArMzc5LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVQYWdlUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBwcmludFJlY3Qs
IGZsb2F0IGhlYWRlckhlaWdodCwgZmxvYXQgZm9vdGVySGVpZ2h0LCBmbG9hdCB1c2VyU2NhbGVG
YWN0b3IsIGZsb2F0JiBvdXRQYWdlSGVpZ2h0KQogICAgIHsKLSAgICAgICAgV2ViUGx1Z2luQ29u
dGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJbXBsOjpwbHVnaW5Db250YWlu
ZXJGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1
Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgICAgICBtX3Bh
Z2VDb3VudCA9IHBsdWdpbkNvbnRhaW5lci0+cHJpbnRCZWdpbihJbnRSZWN0KHByaW50UmVjdCks
IG1fcHJpbnRlckRQSSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICBtX3BhZ2VDb3VudCA9IG1fcGx1Z2luLT5wcmludEJlZ2luKEludFJl
Y3QocHJpbnRSZWN0KSwgbV9wcmludGVyRFBJKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGludCBw
YWdlQ291bnQoKSBjb25zdApAQCAtNDAwLDExICszOTIsNyBAQCBwdWJsaWM6CiAgICAgLy8gaW5z
dGVhZC4gIFJldHVybnMgdGhlIHNjYWxlIHRvIGJlIGFwcGxpZWQuCiAgICAgdmlydHVhbCBmbG9h
dCBzcG9vbFBhZ2UoR3JhcGhpY3NDb250ZXh0JiBjdHgsIGludCBwYWdlTnVtYmVyKQogICAgIHsK
LSAgICAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJh
bWVJbXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgICAgIGlmIChw
bHVnaW5Db250YWluZXIgJiYgcGx1Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50
KCkpCi0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnByaW50UGFnZShwYWdlTnVtYmVyLCAm
Y3R4KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIG1fcGx1Z2luLT5wcmludFBhZ2UocGFnZU51bWJlciwgJmN0eCk7CiAgICAgICAgIHJl
dHVybiAxLjA7CiAgICAgfQogCkBAIC00MTUsNiArNDAzLDcgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIC8vIFNldCB3aGVuIHByaW50aW5nLgorICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwq
IG1fcGx1Z2luOwogICAgIGludCBtX3BhZ2VDb3VudDsKICAgICBpbnQgbV9wcmludGVyRFBJOwog
fTsKQEAgLTEyODQsMTQgKzEyNzMsMzIgQEAgYm9vbCBXZWJGcmFtZUltcGw6OnNlbGVjdFdvcmRB
cm91bmRDYXJldAogICAgIHJldHVybiB0cnVlOwogfQogCi1pbnQgV2ViRnJhbWVJbXBsOjpwcmlu
dEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLCBpbnQgcHJpbnRlckRQSSwgYm9vbCAqdXNl
QnJvd3Nlck92ZXJsYXlzKQoraW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJT
aXplJiBwYWdlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9k
ZSYgY29uc3RyYWluVG9Ob2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJp
bnRlckRQSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92
ZXJsYXlzKQogewogICAgIEFTU0VSVCghZnJhbWUoKS0+ZG9jdW1lbnQoKS0+aXNGcmFtZVNldCgp
KTsKLSAgICAvLyBJZiB0aGlzIGlzIGEgcGx1Z2luIGRvY3VtZW50LCBjaGVjayBpZiB0aGUgcGx1
Z2luIHN1cHBvcnRzIGl0cyBvd24KLSAgICAvLyBwcmludGluZy4gSWYgaXQgZG9lcywgd2Ugd2ls
bCBkZWxlZ2F0ZSBhbGwgcHJpbnRpbmcgdG8gdGhhdC4KLSAgICBXZWJQbHVnaW5Db250YWluZXJJ
bXBsKiBwbHVnaW5Db250YWluZXIgPSBwbHVnaW5Db250YWluZXJGcm9tRnJhbWUoZnJhbWUoKSk7
CisgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gMDsKKyAgICBp
ZiAoY29uc3RyYWluVG9Ob2RlLmlzTnVsbCgpKSB7CisgICAgICAgIC8vIElmIHRoaXMgaXMgYSBw
bHVnaW4gZG9jdW1lbnQsIGNoZWNrIGlmIHRoZSBwbHVnaW4gc3VwcG9ydHMgaXRzIG93bgorICAg
ICAgICAvLyBwcmludGluZy4gSWYgaXQgZG9lcywgd2Ugd2lsbCBkZWxlZ2F0ZSBhbGwgcHJpbnRp
bmcgdG8gdGhhdC4KKyAgICAgICAgcGx1Z2luQ29udGFpbmVyID0gcGx1Z2luQ29udGFpbmVyRnJv
bUZyYW1lKGZyYW1lKCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFdlIG9ubHkgc3VwcG9y
dCBwcmludGluZyBwbHVnaW4gbm9kZXMgZm9yIG5vdy4KKyAgICAgICAgY29uc3QgTm9kZSogY29y
ZU5vZGUgPSBjb25zdHJhaW5Ub05vZGUuY29uc3RVbndyYXA8Tm9kZT4oKTsKKyAgICAgICAgaWYg
KGNvcmVOb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFnKSAmJiBjb3JlTm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OmVtYmVkVGFnKSkgeworICAgICAgICAgICAgUmVuZGVyT2Jq
ZWN0KiBvYmplY3QgPSBjb3JlTm9kZS0+cmVuZGVyZXIoKTsKKyAgICAgICAgICAgIGlmIChvYmpl
Y3QgJiYgb2JqZWN0LT5pc1dpZGdldCgpKSB7CisgICAgICAgICAgICAgICAgV2lkZ2V0KiB3aWRn
ZXQgPSB0b1JlbmRlcldpZGdldChvYmplY3QpLT53aWRnZXQoKTsKKyAgICAgICAgICAgICAgICBp
ZiAod2lkZ2V0ICYmIHdpZGdldC0+aXNQbHVnaW5Db250YWluZXIoKSkKKyAgICAgICAgICAgICAg
ICAgICAgcGx1Z2luQ29udGFpbmVyID0gIHN0YXRpY19jYXN0PFdlYlBsdWdpbkNvbnRhaW5lcklt
cGwqPih3aWRnZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgaWYg
KHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1cHBvcnRzUGFnaW5hdGVkUHJp
bnQoKSkKLSAgICAgICAgbV9wcmludENvbnRleHQuc2V0KG5ldyBDaHJvbWVQbHVnaW5QcmludENv
bnRleHQoZnJhbWUoKSwgcHJpbnRlckRQSSkpOworICAgICAgICBtX3ByaW50Q29udGV4dC5zZXQo
bmV3IENocm9tZVBsdWdpblByaW50Q29udGV4dChmcmFtZSgpLCBwbHVnaW5Db250YWluZXIsIHBy
aW50ZXJEUEkpKTsKICAgICBlbHNlCiAgICAgICAgIG1fcHJpbnRDb250ZXh0LnNldChuZXcgQ2hy
b21lUHJpbnRDb250ZXh0KGZyYW1lKCkpKTsKIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5oCShyZXZpc2lvbiA3NTU1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBXZWJTdHJpbmcgc2VsZWN0aW9uQXNUZXh0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJT
dHJpbmcgc2VsZWN0aW9uQXNNYXJrdXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0
V29yZEFyb3VuZENhcmV0KCk7Ci0gICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJT
aXplJiBwYWdlU2l6ZSwgaW50IHByaW50ZXJEUEksCisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdp
bihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBwcmludGVyRFBJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJv
d3Nlck92ZXJsYXlzKTsKICAgICB2aXJ0dWFsIGZsb2F0IHByaW50UGFnZShpbnQgcGFnZVRvUHJp
bnQsIFdlYkNhbnZhcyopOwogICAgIHZpcnR1YWwgZmxvYXQgZ2V0UHJpbnRQYWdlU2hyaW5rKGlu
dCBwYWdlKTsK
</data>
<flag name="review"
          id="70115"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>