<?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>84312</bug_id>
          
          <creation_ts>2012-04-18 20:06:43 -0700</creation_ts>
          <short_desc>[Chromium] Added more params to Chromium-Webkit print api to implement auto fit to page functionality.</short_desc>
          <delta_ts>2012-05-15 18:42:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Printing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="kmadhusu">kmadhusu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>605322</commentid>
    <comment_count>0</comment_count>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-04-18 20:06:43 -0700</bug_when>
    <thetext>To fix crbug.com/85132, I need to pass additional print params such as selected printer paper size, printable area and scale to fit value to the plugin print context. Therefore, I modified printBegin() function accordingly. Please review and let me know your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605326</commentid>
    <comment_count>1</comment_count>
      <attachid>137828</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-04-18 20:08:58 -0700</bug_when>
    <thetext>Created attachment 137828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605327</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-18 20:10:54 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605701</commentid>
    <comment_count>3</comment_count>
      <attachid>137828</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-04-19 11:09:54 -0700</bug_when>
    <thetext>Comment on attachment 137828
Patch

Patch is not ready for review yet. I will update the review flag as soon as it is ready for review. 

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606949</commentid>
    <comment_count>4</comment_count>
      <attachid>138175</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-04-20 15:17:53 -0700</bug_when>
    <thetext>Created attachment 138175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607810</commentid>
    <comment_count>5</comment_count>
      <attachid>138378</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-04-23 10:30:51 -0700</bug_when>
    <thetext>Created attachment 138378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607811</commentid>
    <comment_count>6</comment_count>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-04-23 10:33:18 -0700</bug_when>
    <thetext>Latest patch uses WebPrintScalingOption.h. This is a new header file. I would like to commit that header file first to support Chrome side changes. Therefore, I uploaded that header file patch in https://bugs.webkit.org/show_bug.cgi?id=84608.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608371</commentid>
    <comment_count>7</comment_count>
      <attachid>138378</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 22:59:53 -0700</bug_when>
    <thetext>Comment on attachment 138378
Patch

Attachment 138378 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12518135</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612449</commentid>
    <comment_count>8</comment_count>
      <attachid>139405</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-04-29 12:43:50 -0700</bug_when>
    <thetext>Created attachment 139405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612450</commentid>
    <comment_count>9</comment_count>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-04-29 12:48:15 -0700</bug_when>
    <thetext>Updated patch and it is ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613718</commentid>
    <comment_count>10</comment_count>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-05-01 15:24:59 -0700</bug_when>
    <thetext>ping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617894</commentid>
    <comment_count>11</comment_count>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-05-07 13:42:31 -0700</bug_when>
    <thetext>fishd@: Can you please review the latest patch?

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619704</commentid>
    <comment_count>12</comment_count>
      <attachid>139405</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-05-09 11:52:46 -0700</bug_when>
    <thetext>Comment on attachment 139405
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:468
&gt; +    // TODO(kmadhusu@chromium.org): This is a temporary interface to avoid the

nit: webkit style doesn&apos;t use TODO(user).  just use FIXME.

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

I suspect it would be better to bottle up these parameters into a WebPrintParams
struct.  See for example WebPluginParams.  Exclude the constrainToNode parameter
so that you can reuse WebPrintParams in the WebPlugin printBegin method.

&gt; Source/WebKit/chromium/public/WebPlugin.h:104
&gt; +    // TODO(kmadhusu@chromium.org): Change the data type of printScalingOption to

nit: TODO(user) -&gt; FIXME

Use WebPrintParams here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621955</commentid>
    <comment_count>13</comment_count>
      <attachid>141493</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-05-11 14:04:44 -0700</bug_when>
    <thetext>Created attachment 141493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621970</commentid>
    <comment_count>14</comment_count>
      <attachid>141495</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-05-11 14:16:05 -0700</bug_when>
    <thetext>Created attachment 141495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623106</commentid>
    <comment_count>15</comment_count>
      <attachid>139405</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-05-14 10:52:23 -0700</bug_when>
    <thetext>Comment on attachment 139405
Patch

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

Addressed review comments. PTAL. Thanks.

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:468
&gt;&gt; +    // TODO(kmadhusu@chromium.org): This is a temporary interface to avoid the
&gt; 
&gt; nit: webkit style doesn&apos;t use TODO(user).  just use FIXME.

Fixed.

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:488
&gt;&gt; +    virtual int printBegin(const WebSize&amp; printContentSize,
&gt; 
&gt; I suspect it would be better to bottle up these parameters into a WebPrintParams
&gt; struct.  See for example WebPluginParams.  Exclude the constrainToNode parameter
&gt; so that you can reuse WebPrintParams in the WebPlugin printBegin method.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebPlugin.h:104
&gt;&gt; +    // TODO(kmadhusu@chromium.org): Change the data type of printScalingOption to
&gt; 
&gt; nit: TODO(user) -&gt; FIXME
&gt; 
&gt; Use WebPrintParams here too.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624484</commentid>
    <comment_count>16</comment_count>
      <attachid>141495</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-05-15 13:29:37 -0700</bug_when>
    <thetext>Comment on attachment 141495
Patch

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

&gt; Source/WebKit/chromium/public/WebPrintParams.h:60
&gt; +          , printScalingOption(WebPrintScalingOptionFitToPrintableArea) { }

nit: indentation

unindent the comma-prefixed rows by 2 spaces

&gt; Source/WebKit/chromium/public/WebPrintParams.h:64
&gt; +          , printableArea(printableArea)

nit: indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624597</commentid>
    <comment_count>17</comment_count>
      <attachid>142063</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-05-15 14:45:31 -0700</bug_when>
    <thetext>Created attachment 142063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624601</commentid>
    <comment_count>18</comment_count>
      <attachid>141495</attachid>
    <who name="kmadhusu">kmadhusu</who>
    <bug_when>2012-05-15 14:48:56 -0700</bug_when>
    <thetext>Comment on attachment 141495
Patch

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

Fixed nits.

&gt;&gt; Source/WebKit/chromium/public/WebPrintParams.h:60
&gt;&gt; +          , printScalingOption(WebPrintScalingOptionFitToPrintableArea) { }
&gt; 
&gt; nit: indentation
&gt; 
&gt; unindent the comma-prefixed rows by 2 spaces

Fixed.

&gt;&gt; Source/WebKit/chromium/public/WebPrintParams.h:64
&gt;&gt; +          , printableArea(printableArea)
&gt; 
&gt; nit: indentation

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624832</commentid>
    <comment_count>19</comment_count>
      <attachid>142063</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-15 18:42:01 -0700</bug_when>
    <thetext>Comment on attachment 142063
Patch

Clearing flags on attachment: 142063

Committed r117200: &lt;http://trac.webkit.org/changeset/117200&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624833</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-15 18:42:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137828</attachid>
            <date>2012-04-18 20:08:58 -0700</date>
            <delta_ts>2012-04-20 15:17:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84312-20120418200857.patch</filename>
            <type>text/plain</type>
            <size>11927</size>
            <attacher name="kmadhusu">kmadhusu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ2MDQpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4
IEBACisyMDEyLTA0LTE4ICBLYXVzYWx5YSBNYWRodXN1ZGhhbmFuICA8a21hZGh1c3VAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFkZGVkIG1vcmUgcGFyYW1zIHRvIGNocm9taXVtLXdlYmtpdCBw
cmludCBhcGkgdG8gc3VwcG9ydCBhdXRvIGZpdCB0byBwYWdlIGZ1bmN0aW9uYWxpdHkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkZy
YW1lLmg6CisgICAgICAgIChXZWJGcmFtZSk6CisgICAgICAgICogcHVibGljL1dlYlBsdWdpbi5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlBsdWdpbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsdWdpbjo6cHJpbnRCZWdpbik6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblByaW50Q29udGV4dDo6Q2hyb21lUGx1
Z2luUHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lUGx1Z2luUHJpbnRDb250
ZXh0Ojpjb21wdXRlUGFnZVJlY3RzKToKKyAgICAgICAgKENocm9tZVBsdWdpblByaW50Q29udGV4
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbik6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5oOgorICAgICAgICAoV2ViRnJhbWVJbXBsKToKKyAgICAgICAg
KiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBs
dWdpbkNvbnRhaW5lckltcGw6OnByaW50QmVnaW4pOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5D
b250YWluZXJJbXBsLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBsKToKKwogMjAx
Mi0wNC0xNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gQ29udmVydCBXZWJQbHVnaW5Db250YWluZXJJbXBsIG92ZXIgdG8gdXNlIFdl
YkV4dGVybmFsVGV4dHVyZUxheWVyCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkZyYW1lLmgJKHJldmlzaW9uIDExNDU3MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNs
dWRlICJXZWJVUkxMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ2FudmFz
LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgInBsYXRm
b3JtL1dlYlJlY3QuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTaXplLmgiCiAjaW5jbHVkZSAi
cGxhdGZvcm0vV2ViVVJMLmgiCiAKIHN0cnVjdCBOUE9iamVjdDsKQEAgLTQ0OSwxNyArNDUxLDI0
IEBAIHB1YmxpYzoKIAogICAgIC8vIFByaW50aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0gICAgLy8gUmVmb3JtYXRzIHRo
ZSBXZWJGcmFtZSBmb3IgcHJpbnRpbmcuIHBhZ2VTaXplIGlzIHRoZSBwYWdlIHNpemUgaW4KLSAg
ICAvLyBwb2ludHMgKGEgcG9pbnQgaW4gMS83MiBvZiBhbiBpbmNoKS4gSWYgfGNvbnN0cmFpblRv
Tm9kZXwgbm9kZSBpcworICAgIC8vIFJlZm9ybWF0cyB0aGUgV2ViRnJhbWUgZm9yIHByaW50aW5n
LiBwcmludENvbnRlbnRTaXplIGlzIHRoZSBwcmludGFibGUKKyAgICAvLyBjb250ZW50IHNpemUg
aW4gcG9pbnRzIChhIHBvaW50IGluIDEvNzIgb2YgYW4gaW5jaCkuIHByaW50YWJsZUFyZWEgYW5k
CisgICAgLy8gcGFwZXJTaXplIHNwZWNpZmllcyB0aGUgc2VsZWN0ZWQgcHJpbnRlciBkZWZhdWx0
IHBhcGVyIHNpemUgYW5kIHByaW50YWJsZQorICAgIC8vIGFyZWEgZGV0YWlscy4gSWYgZml0VG9Q
YXBlclNpemUgaXMgdHJ1ZSwgdGhlIHBsdWdpbiB3aWxsIGZpdCB0aGUgcHJpbnQKKyAgICAvLyBj
b250ZW50cyBpbiB0aGUgc3BlY2lmaWVkIHByaW50YWJsZSBhcmVhIHRvIGZpdCB0aGUgcGFwZXIg
c2l6ZSAoVGhpcworICAgIC8vIHBhcmFtIGlzIHVzZWQgb25seSBieSBwbHVnaW4gcHJpbnRpbmcp
LiBJZiB8Y29uc3RyYWluVG9Ob2RlfCBub2RlIGlzCiAgICAgLy8gc3BlY2lmaWVkLCB0aGVuIG9u
bHkgdGhlIGdpdmVuIG5vZGUgaXMgcHJpbnRlZCAoZm9yIG5vdyBvbmx5IHBsdWdpbnMgYXJlCi0g
ICAgLy8gc3VwcG9ydGVkKSwgaW5zdGVhZCBvZiB0aGUgZW50aXJlIGZyYW1lLiAgcHJpbnRlckRQ
SSBpcyB0aGUgdXNlcgotICAgIC8vIHNlbGVjdGVkLCBEUEkgZm9yIHRoZSBwcmludGVyLiBSZXR1
cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW4gYmUKLSAgICAvLyBwcmludGVkIGF0IHRo
ZSBnaXZlbiBwYWdlIHNpemUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92ZXJsYXlzCi0gICAg
Ly8gc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgcHJvY2VzcyBzaG91bGQgdXNlIGl0cyBv
dmVybGF5cyAoaGVhZGVyLAotICAgIC8vIGZvb3RlciwgbWFyZ2lucyBldGMpIG9yIHdoZXRoZXIg
dGhlIHJlbmRlcmVyIGNvbnRyb2xzIHRoaXMuCi0gICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihj
b25zdCBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAvLyBzdXBwb3J0ZWQpLCBpbnN0ZWFkIG9mIHRo
ZSBlbnRpcmUgZnJhbWUuIHByaW50ZXJEUEkgaXMgdGhlIHVzZXIgc2VsZWN0ZWQsCisgICAgLy8g
RFBJIGZvciB0aGUgcHJpbnRlci4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2Fu
IGJlIHByaW50ZWQgYXQKKyAgICAvLyB0aGUgZ2l2ZW4gcGFnZSBzaXplLiBUaGUgb3V0IHBhcmFt
IHVzZUJyb3dzZXJPdmVybGF5cyBzcGVjaWZpZXMgd2hldGhlcgorICAgIC8vIHRoZSBicm93c2Vy
IHByb2Nlc3Mgc2hvdWxkIHVzZSBpdHMgb3ZlcmxheXMgKGhlYWRlciwgZm9vdGVyLCBtYXJnaW5z
IGV0YykKKyAgICAvLyBvciB3aGV0aGVyIHRoZSByZW5kZXJlciBjb250cm9scyB0aGlzLgorICAg
IHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcHJpbnRDb250ZW50U2l6ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEg
PSBXZWJSZWN0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTaXplJiBw
YXBlclNpemUgPSBXZWJTaXplKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJOb2RlJiBjb25zdHJhaW5Ub05vZGUgPSBXZWJOb2RlKCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgcHJpbnRlckRQSSA9IDcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBmaXRUb1BhcGVyU2l6ZSA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCogdXNlQnJvd3Nlck92ZXJsYXlzID0gMCkgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0aGUg
cGFnZSBzaHJpbmtpbmcgZmFjdG9yIGNhbGN1bGF0ZWQgYnkgd2Via2l0ICh1c3VhbGx5CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAkocmV2aXNpb24gMTE0
NTczKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RydWN0IFdlYkN1cnNvckluZm87CiBzdHJ1Y3Qg
V2ViUGx1Z2luUGFyYW1zOwogc3RydWN0IFdlYlBvaW50Owogc3RydWN0IFdlYlJlY3Q7CitzdHJ1
Y3QgV2ViU2l6ZTsKIHN0cnVjdCBXZWJVUkxFcnJvcjsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBj
bGFzcyBXZWJWZWN0b3I7CiAKQEAgLTk0LDEwICs5NSwxNyBAQCBwdWJsaWM6CiAgICAgLy8gUmV0
dXJucyB0cnVlIGlmIHRoZSBwcmludGVkIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBzY2FsZWQgdG8K
ICAgICAvLyB0aGUgcHJpbnRlcidzIHByaW50YWJsZSBhcmVhLgogICAgIHZpcnR1YWwgYm9vbCBp
c1ByaW50U2NhbGluZ0Rpc2FibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAvLyBTZXRzIHVw
IHByaW50aW5nIGF0IHRoZSBnaXZlbiBwcmludCByZWN0IGFuZCBwcmludGVyIERQSS4gcHJpbnRh
YmxlQXJlYQotICAgIC8vIGlzIGluIHBvaW50cyAoYSBwb2ludCBpcyAxLzcyIG9mIGFuIGluY2gp
LlJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0bwotICAgIC8vIGJlIHByaW50ZWQgYXQgdGhl
c2Ugc2V0dGluZ3MuCi0gICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJSZWN0JiBw
cmludGFibGVBcmVhLCBpbnQgcHJpbnRlckRQSSkgeyByZXR1cm4gMDsgfQorICAgIC8vIFNldHMg
dXAgcHJpbnRpbmcgYXQgdGhlIGdpdmVuIHByaW50IHJlY3QgYW5kIHByaW50ZXIgRFBJLiBJZgor
ICAgIC8vIGZpdFRvUGFwZXJTaXplIGlzIHRydWUsIHBsdWdpbiB3aWxsIHNldHMgdXAgcHJpbnRp
bmcgYXQgdGhlIGdpdmVuCisgICAgLy8gcHJpbnRhYmxlQXJlYSB0byBmaXQgdGhlIHNlbGVjdGVk
IHByaW50ZXIgZGVmYXVsdCBwYXBlciBzaXplLgorICAgIC8vIHByaW50Q29udGVudEFyZWEsIHBy
aW50YWJsZUFyZWEgYW5kIHBhcGVyU2l6ZSBhcmUgaW4gcG9pbnRzIChhIHBvaW50IGlzCisgICAg
Ly8gMS83MiBvZiBhbiBpbmNoKS4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRvIGJlIHBy
aW50ZWQgYXQgdGhlc2UKKyAgICAvLyBzZXR0aW5ncy4KKyAgICB2aXJ0dWFsIGludCBwcmludEJl
Z2luKGNvbnN0IFdlYlJlY3QmIHByaW50Q29udGVudEFyZWEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBXZWJSZWN0JiBwcmludGFibGVBcmVhLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgV2ViU2l6ZSYgcGFwZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBmaXRUb1BhcGVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBwcmludGVyRFBJKSB7IHJldHVybiAwOyB9CiAgICAgLy8gUHJpbnRzIHRoZSBwYWdlIHNwZWNp
ZmllZCBieSBwYWdlTnVtYmVyICgwLWJhc2VkIGluZGV4KSBpbnRvIHRoZSBzdXBwbGllZCBjYW52
YXMuCiAgICAgdmlydHVhbCBib29sIHByaW50UGFnZShpbnQgcGFnZU51bWJlciwgV2ViQ2FudmFz
KiBjYW52YXMpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgLy8gRW5kcyB0aGUgcHJpbnQgb3BlcmF0
aW9uLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CShyZXZpc2lvbiAxMTQ1NzMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDMsOCArNDQzLDggQEAgcHJpdmF0ZToKIC8v
IHdhbnQgdG8gZGVsZWdhdGUgYWxsIHByaW50aW5nIHJlbGF0ZWQgY2FsbHMgdG8gdGhlIHBsdWdp
bi4KIGNsYXNzIENocm9tZVBsdWdpblByaW50Q29udGV4dCA6IHB1YmxpYyBDaHJvbWVQcmludENv
bnRleHQgewogcHVibGljOgotICAgIENocm9tZVBsdWdpblByaW50Q29udGV4dChGcmFtZSogZnJh
bWUsIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbiwgaW50IHByaW50ZXJEUEkpCi0gICAg
ICAgIDogQ2hyb21lUHJpbnRDb250ZXh0KGZyYW1lKSwgbV9wbHVnaW4ocGx1Z2luKSwgbV9wYWdl
Q291bnQoMCksIG1fcHJpbnRlckRQSShwcmludGVyRFBJKQorICAgIENocm9tZVBsdWdpblByaW50
Q29udGV4dChGcmFtZSogZnJhbWUsIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbiwgaW50
IHByaW50ZXJEUEksIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEsIGNvbnN0IFdlYlNpemUm
IHBhcGVyU2l6ZSwgYm9vbCBmaXRUb1BhcGVyU2l6ZSkKKyAgICAgICAgOiBDaHJvbWVQcmludENv
bnRleHQoZnJhbWUpLCBtX3BsdWdpbihwbHVnaW4pLCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludGVy
RFBJKHByaW50ZXJEUEkpLCBtX3ByaW50YWJsZUFyZWEocHJpbnRhYmxlQXJlYSksIG1fcGFwZXJT
aXplKHBhcGVyU2l6ZSksIG1fZml0VG9QYXBlclNpemUoZml0VG9QYXBlclNpemUpCiAgICAgewog
ICAgIH0KIApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlUGFnZVJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgcHJpbnRSZWN0LCBmbG9hdCBoZWFkZXJI
ZWlnaHQsIGZsb2F0IGZvb3RlckhlaWdodCwgZmxvYXQgdXNlclNjYWxlRmFjdG9yLCBmbG9hdCYg
b3V0UGFnZUhlaWdodCkKICAgICB7Ci0gICAgICAgIG1fcGFnZUNvdW50ID0gbV9wbHVnaW4tPnBy
aW50QmVnaW4oSW50UmVjdChwcmludFJlY3QpLCBtX3ByaW50ZXJEUEkpOworICAgICAgICBtX3Bh
Z2VDb3VudCA9IG1fcGx1Z2luLT5wcmludEJlZ2luKEludFJlY3QocHJpbnRSZWN0KSwgbV9wcmlu
dGFibGVBcmVhLCBtX3BhcGVyU2l6ZSwgbV9maXRUb1BhcGVyU2l6ZSwgbV9wcmludGVyRFBJKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIGludCBwYWdlQ291bnQoKSBjb25zdApAQCAtNDk0LDYgKzQ5
NCwxMCBAQCBwcml2YXRlOgogICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIG1fcGx1Z2luOwog
ICAgIGludCBtX3BhZ2VDb3VudDsKICAgICBpbnQgbV9wcmludGVyRFBJOworICAgIFdlYlJlY3Qg
bV9wcmludGFibGVBcmVhOworICAgIFdlYlNpemUgbV9wYXBlclNpemU7CisgICAgYm9vbCBtX2Zp
dFRvUGFwZXJTaXplOworCiB9OwogCiBzdGF0aWMgV2ViRGF0YVNvdXJjZSogRGF0YVNvdXJjZUZv
ckRvY0xvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyKQpAQCAtMTQxNCw5ICsxNDE4LDEyIEBA
IFZpc2libGVQb3NpdGlvbiBXZWJGcmFtZUltcGw6OnZpc2libGVQb3MKICAgICByZXR1cm4gbm9k
ZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChyZXN1bHQubG9jYWxQb2ludCgpKTsKIH0K
IAotaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSwK
K2ludCBXZWJGcmFtZUltcGw6OnByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcHJpbnRDb250ZW50
U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViUmVjdCYgcHJpbnRh
YmxlQXJlYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU2l6ZSYgcGFw
ZXJTaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJOb2RlJiBjb25z
dHJhaW5Ub05vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJ
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZpdFRvUGFwZXJTaXplLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMpCiB7CiAg
ICAgQVNTRVJUKCFmcmFtZSgpLT5kb2N1bWVudCgpLT5pc0ZyYW1lU2V0KCkpOwpAQCAtMTQzMSwx
MiArMTQzOCwxMiBAQCBpbnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNpCiAg
ICAgfQogCiAgICAgaWYgKHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1cHBv
cnRzUGFnaW5hdGVkUHJpbnQoKSkKLSAgICAgICAgbV9wcmludENvbnRleHQgPSBhZG9wdFB0cihu
ZXcgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHBsdWdpbkNvbnRhaW5lciwgcHJp
bnRlckRQSSkpOworICAgICAgICBtX3ByaW50Q29udGV4dCA9IGFkb3B0UHRyKG5ldyBDaHJvbWVQ
bHVnaW5QcmludENvbnRleHQoZnJhbWUoKSwgcGx1Z2luQ29udGFpbmVyLCBwcmludGVyRFBJLCBw
cmludGFibGVBcmVhLCBwYXBlclNpemUsIGZpdFRvUGFwZXJTaXplKSk7CiAgICAgZWxzZQogICAg
ICAgICBtX3ByaW50Q29udGV4dCA9IGFkb3B0UHRyKG5ldyBDaHJvbWVQcmludENvbnRleHQoZnJh
bWUoKSkpOwogCi0gICAgRmxvYXRSZWN0IHJlY3QoMCwgMCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBh
Z2VTaXplLndpZHRoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxmbG9h
dD4ocGFnZVNpemUuaGVpZ2h0KSk7CisgICAgRmxvYXRSZWN0IHJlY3QoMCwgMCwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHByaW50Q29udGVudFNpemUud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PGZsb2F0PihwcmludENvbnRlbnRTaXplLmhlaWdodCkpOwogICAgIG1f
cHJpbnRDb250ZXh0LT5iZWdpbihyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwogICAgIGZs
b2F0IHBhZ2VIZWlnaHQ7CiAgICAgLy8gV2UgaWdub3JlIHRoZSBvdmVybGF5cyBjYWxjdWxhdGlv
biBmb3Igbm93IHNpbmNlIHRoZXkgYXJlIGdlbmVyYXRlZCBpbiB0aGUKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCShyZXZpc2lvbiAxMTQ1NzMpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMTcwLDkgKzE3MCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgc2VsZWN0
aW9uQXNNYXJrdXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0V29yZEFyb3VuZENh
cmV0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdFJhbmdlKGNvbnN0IFdlYlBvaW50JiBzdGFy
dCwgY29uc3QgV2ViUG9pbnQmIGVuZCk7Ci0gICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25z
dCBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdl
YlNpemUmIHByaW50Q29udGVudFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXZWJSZWN0JiBwcmludGFibGVBcmVhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgV2ViU2l6ZSYgcGFwZXJTaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IHByaW50ZXJEUEksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZpdFRvUGFwZXJT
aXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlz
KTsKICAgICB2aXJ0dWFsIGZsb2F0IHByaW50UGFnZShpbnQgcGFnZVRvUHJpbnQsIFdlYkNhbnZh
cyopOwogICAgIHZpcnR1YWwgZmxvYXQgZ2V0UHJpbnRQYWdlU2hyaW5rKGludCBwYWdlKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuY3BwCShyZXZpc2lvbiAxMTQ1NzMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUwLDEw
ICsyNTAsMTMgQEAgYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjppc1ByaW50U2NhbAogICAg
IHJldHVybiBtX3dlYlBsdWdpbi0+aXNQcmludFNjYWxpbmdEaXNhYmxlZCgpOwogfQogCi1pbnQg
V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRCZWdpbihjb25zdCBJbnRSZWN0JiBwcmludGFi
bGVBcmVhLAoraW50IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50QmVnaW4oY29uc3QgSW50
UmVjdCYgcHJpbnRDb250ZW50UmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEludFJlY3QmIHByaW50YWJsZUFyZWEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRTaXplJiBwYXBlclNpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZpdFRvUGFwZXJTaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEkpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fd2ViUGx1Z2luLT5wcmludEJlZ2luKHByaW50YWJsZUFyZWEsIHByaW50
ZXJEUEkpOworICAgIHJldHVybiBtX3dlYlBsdWdpbi0+cHJpbnRCZWdpbihwcmludENvbnRlbnRS
ZWN0LCBwcmludGFibGVBcmVhLCBwYXBlclNpemUsIGZpdFRvUGFwZXJTaXplLCBwcmludGVyRFBJ
KTsKIH0KIAogYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludFBhZ2UoaW50IHBhZ2VO
dW1iZXIsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5oCShyZXZpc2lvbiAxMTQ1NzMpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEy
Miw3ICsxMjIsMTEgQEAgcHVibGljOgogICAgIC8vIFNldHMgdXAgcHJpbnRpbmcgYXQgdGhlIGdp
dmVuIHByaW50IHJlY3QgYW5kIHByaW50ZXIgRFBJLiBwcmludGFibGVBcmVhCiAgICAgLy8gaXMg
aW4gcG9pbnRzIChhIHBvaW50IGlzIDEvNzIgb2YgYW4gaW5jaCkuUmV0dXJucyB0aGUgbnVtYmVy
IG9mIHBhZ2VzIHRvCiAgICAgLy8gYmUgcHJpbnRlZCBhdCB0aGVzZSBzZXR0aW5ncy4KLSAgICBp
bnQgcHJpbnRCZWdpbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwcmludGFibGVBcmVhLCBpbnQg
cHJpbnRlckRQSSkgY29uc3Q7CisgICAgaW50IHByaW50QmVnaW4oY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgcHJpbnRDb250ZW50UmVjdCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBwcmludGFibGVBcmVhLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHBhcGVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICBib29sIGZpdFRvUGFw
ZXJTaXplLAorICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJKSBjb25zdDsKICAgICAv
LyBQcmludHMgdGhlIHBhZ2Ugc3BlY2lmaWVkIGJ5IHBhZ2VOdW1iZXIgKDAtYmFzZWQgaW5kZXgp
IGludG8gdGhlIHN1cHBsaWVkIGNhbnZhcy4KICAgICBib29sIHByaW50UGFnZShpbnQgcGFnZU51
bWJlciwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiBnYyk7CiAgICAgLy8gRW5kcyB0aGUgcHJp
bnQgb3BlcmF0aW9uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138175</attachid>
            <date>2012-04-20 15:17:53 -0700</date>
            <delta_ts>2012-04-23 10:30:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84312-20120420151752.patch</filename>
            <type>text/plain</type>
            <size>17892</size>
            <attacher name="kmadhusu">kmadhusu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ3ODUpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMy
IEBACisyMDEyLTA0LTIwICBLYXVzYWx5YSBNYWRodXN1ZGhhbmFuICA8a21hZGh1c3VAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT3ZlcmxvYWRlZCBwcmludEJlZ2luKCkgZnVu
Y3Rpb24gdG8gc3VwcG9ydCBhdXRvIGZpdCB0byBwYWdlIGZ1bmN0aW9uYWxpdHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAgKFdlYkZyYW1lKToKKyAgICAgICAg
KiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUGx1
Z2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luOjpwcmludEJlZ2luKToKKyAgICAgICAg
KiBwdWJsaWMvV2ViUHJpbnRTY2FsaW5nT3B0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lUGx1Z2luUHJpbnRDb250ZXh0OjpDaHJvbWVQbHVnaW5QcmludENvbnRleHQpOgorICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVQbHVnaW5QcmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgor
ICAgICAgICAoQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbik6CisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5oOgorICAgICAgICAoV2ViRnJhbWVJbXBsKToKKyAgICAgICAgKiBzcmMv
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNv
bnRhaW5lckltcGw6OnByaW50QmVnaW4pOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNC0y
MCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDkwCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCShyZXZpc2lvbiAxMTQ3NjgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTIyNCw2ICsyMjQsNyBAQAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViUGx1Z2luRG9jdW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQ
bHVnaW5MaXN0QnVpbGRlci5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYlByaW50U2Nh
bGluZ09wdGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBvcHVwTWVudS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBvcHVwTWVudUluZm8uaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJQb3B1cFR5cGUuaCcsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDExNDc2OCkKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcg
QEAKIAogI2luY2x1ZGUgIldlYkljb25VUkwuaCIKICNpbmNsdWRlICJXZWJOb2RlLmgiCisjaW5j
bHVkZSAiV2ViUHJpbnRTY2FsaW5nT3B0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUmVmZXJyZXJQb2xp
Y3kuaCIKICNpbmNsdWRlICJXZWJVUkxMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAicGxhdGZv
cm0vV2ViQ2FudmFzLmgiCkBAIC00NDksMTcgKzQ1MCw0MSBAQCBwdWJsaWM6CiAKICAgICAvLyBQ
cmludGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotICAgIC8vIFJlZm9ybWF0cyB0aGUgV2ViRnJhbWUgZm9yIHByaW50aW5n
LiBwYWdlU2l6ZSBpcyB0aGUgcGFnZSBzaXplIGluCi0gICAgLy8gcG9pbnRzIChhIHBvaW50IGlu
IDEvNzIgb2YgYW4gaW5jaCkuIElmIHxjb25zdHJhaW5Ub05vZGV8IG5vZGUgaXMKLSAgICAvLyBz
cGVjaWZpZWQsIHRoZW4gb25seSB0aGUgZ2l2ZW4gbm9kZSBpcyBwcmludGVkIChmb3Igbm93IG9u
bHkgcGx1Z2lucyBhcmUKLSAgICAvLyBzdXBwb3J0ZWQpLCBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUg
ZnJhbWUuICBwcmludGVyRFBJIGlzIHRoZSB1c2VyCi0gICAgLy8gc2VsZWN0ZWQsIERQSSBmb3Ig
dGhlIHByaW50ZXIuIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNhbiBiZQotICAg
IC8vIHByaW50ZWQgYXQgdGhlIGdpdmVuIHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJhbSB1c2VCcm93
c2VyT3ZlcmxheXMKKyAgICAvLyBSZWZvcm1hdHMgdGhlIFdlYkZyYW1lIGZvciBwcmludGluZy4g
cHJpbnRDb250ZW50U2l6ZSBpcyB0aGUgcHJpbnQKKyAgICAvLyBjb250ZW50IHNpemUgaW4gcG9p
bnRzIChhIHBvaW50IGluIDEvNzIgb2YgYW4gaW5jaCkuIElmIGNvbnN0cmFpblRvTm9kZQorICAg
IC8vIG5vZGUgaXMgc3BlY2lmaWVkLCB0aGVuIG9ubHkgdGhlIGdpdmVuIG5vZGUgaXMgcHJpbnRl
ZCAoZm9yIG5vdyBvbmx5CisgICAgLy8gcGx1Z2lucyBhcmUgc3VwcG9ydGVkKSwgaW5zdGVhZCBv
ZiB0aGUgZW50aXJlIGZyYW1lLiBwcmludGVyRFBJIGlzIHRoZQorICAgIC8vIHVzZXIgc2VsZWN0
ZWQsIERQSSBmb3IgdGhlIHByaW50ZXIuIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0
IGNhbgorICAgIC8vIGJlIHByaW50ZWQgYXQgdGhlIGdpdmVuIHBhZ2Ugc2l6ZS4gVGhlIG91dCBw
YXJhbSB1c2VCcm93c2VyT3ZlcmxheXMKICAgICAvLyBzcGVjaWZpZXMgd2hldGhlciB0aGUgYnJv
d3NlciBwcm9jZXNzIHNob3VsZCB1c2UgaXRzIG92ZXJsYXlzIChoZWFkZXIsCiAgICAgLy8gZm9v
dGVyLCBtYXJnaW5zIGV0Yykgb3Igd2hldGhlciB0aGUgcmVuZGVyZXIgY29udHJvbHMgdGhpcy4K
LSAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorICAg
IC8vCisgICAgLy8gVE9ETyhrbWFkaHVzdUBjaHJvbWl1bS5vcmcpOiBUaGlzIGlzIGEgdGVtcG9y
YXJ5IGludGVyZmFjZSB0byBhdm9pZCB0aGUKKyAgICAvLyBjb21waWxlIGVycm9ycy4gUmVtb3Zl
IHRoaXMgaW50ZXJmYWNlIGFmdGVyIGZpeGluZyBjcmJ1Zy5jb20vODUxMzIuIFdlCisgICAgLy8g
d2lsbCB1c2UgdGhlIG92ZXJsb2FkZWQgcHJpbnRCZWdpbiBmdW5jdGlvbi4KKyAgICB2aXJ0dWFs
IGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNpemUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJOb2RlJiBjb25zdHJhaW5Ub05vZGUgPSBXZWJO
b2RlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSA9IDcyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlzID0gMCkg
PSAwOworCisgICAgLy8gUmVmb3JtYXRzIHRoZSBXZWJGcmFtZSBmb3IgcHJpbnRpbmcuIHByaW50
Q29udGVudFNpemUgaXMgdGhlIHByaW50YWJsZQorICAgIC8vIGNvbnRlbnQgc2l6ZSBpbiBwb2lu
dHMgKGEgcG9pbnQgaW4gMS83MiBvZiBhbiBpbmNoKS4gcHJpbnRhYmxlQXJlYSBhbmQKKyAgICAv
LyBwYXBlclNpemUgc3BlY2lmaWVzIHRoZSBzZWxlY3RlZCBwcmludGVyIGRlZmF1bHQgcGFwZXIg
c2l6ZSBhbmQgcHJpbnRhYmxlCisgICAgLy8gYXJlYSBkZXRhaWxzLiBwYWdlU2NhbGluZ09wdGlv
biBzcGVjaWZpZXMgd2hldGhlciB0byByZWR1Y2UvZW5sYXJnZS9yZXRhaW4KKyAgICAvLyB0aGUg
IHNvdXJjZSBwYWdlIGNvbnRlbnRzIHRvIGZpdCB0aGUgc3BlY2lmaWVkIHByaW50YWJsZSBhcmVh
LiAoVGhpcyBwYXJhbQorICAgIC8vIGlzIHVzZWQgb25seSBieSBwbHVnaW4gcHJpbnRpbmcpLiBJ
ZiBjb25zdHJhaW5Ub05vZGUgbm9kZSBpcyBzcGVjaWZpZWQsCisgICAgLy8gdGhlbiBvbmx5IHRo
ZSBnaXZlbiBub2RlIGlzIHByaW50ZWQgKGZvciBub3cgb25seSBwbHVnaW5zIGFyZSBzdXBwb3J0
ZWQpLAorICAgIC8vIGluc3RlYWQgb2YgdGhlIGVudGlyZSBmcmFtZS4gcHJpbnRlckRQSSBpcyB0
aGUgdXNlciBzZWxlY3RlZCwgRFBJIGZvcgorICAgIC8vIHRoZSBwcmludGVyLiBSZXR1cm5zIHRo
ZSBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW4gYmUgcHJpbnRlZCBhdCB0aGUgZ2l2ZW4KKyAgICAv
LyBwYWdlIHNpemUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92ZXJsYXlzIHNwZWNpZmllcyB3
aGV0aGVyIHRoZSBicm93c2VyCisgICAgLy8gcHJvY2VzcyBzaG91bGQgdXNlIGl0cyBvdmVybGF5
cyAoaGVhZGVyLCBmb290ZXIsIG1hcmdpbnMgZXRjKSBvciB3aGV0aGVyCisgICAgLy8gdGhlIHJl
bmRlcmVyIGNvbnRyb2xzIHRoaXMuCisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBX
ZWJTaXplJiBwcmludENvbnRlbnRTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgV2ViUmVjdCYgcHJpbnRhYmxlQXJlYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYlNpemUmIHBhcGVyU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9kZSA9IFdlYk5vZGUoKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBwcmludGVyRFBJID0gNzIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJQcmludFNjYWxpbmdPcHRpb24gcGFnZVNjYWxpbmdPcHRpb24gPSBXZWJQcmludEZpdFRv
UHJpbnRhYmxlQXJlYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dz
ZXJPdmVybGF5cyA9IDApID0gMDsKIAogICAgIC8vIFJldHVybnMgdGhlIHBhZ2Ugc2hyaW5raW5n
IGZhY3RvciBjYWxjdWxhdGVkIGJ5IHdlYmtpdCAodXN1YWxseQpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgJKHJldmlzaW9uIDExNDc2OCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw2ICszMSw3IEBACiAjaWZuZGVmIFdlYlBsdWdpbl9oCiAjZGVmaW5lIFdlYlBsdWdpbl9oCiAK
KyNpbmNsdWRlICJXZWJQcmludFNjYWxpbmdPcHRpb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJDYW52YXMuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJVUkwuaCIKQEAgLTQ4LDYgKzQ5LDcgQEAgc3RydWN0IFdlYkN1cnNvckluZm87
CiBzdHJ1Y3QgV2ViUGx1Z2luUGFyYW1zOwogc3RydWN0IFdlYlBvaW50Owogc3RydWN0IFdlYlJl
Y3Q7CitzdHJ1Y3QgV2ViU2l6ZTsKIHN0cnVjdCBXZWJVUkxFcnJvcjsKIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiBjbGFzcyBXZWJWZWN0b3I7CiAKQEAgLTk0LDEwICs5NiwxOCBAQCBwdWJsaWM6CiAg
ICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBwcmludGVkIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBz
Y2FsZWQgdG8KICAgICAvLyB0aGUgcHJpbnRlcidzIHByaW50YWJsZSBhcmVhLgogICAgIHZpcnR1
YWwgYm9vbCBpc1ByaW50U2NhbGluZ0Rpc2FibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAv
LyBTZXRzIHVwIHByaW50aW5nIGF0IHRoZSBnaXZlbiBwcmludCByZWN0IGFuZCBwcmludGVyIERQ
SS4gcHJpbnRhYmxlQXJlYQotICAgIC8vIGlzIGluIHBvaW50cyAoYSBwb2ludCBpcyAxLzcyIG9m
IGFuIGluY2gpLlJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0bwotICAgIC8vIGJlIHByaW50
ZWQgYXQgdGhlc2Ugc2V0dGluZ3MuCi0gICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBX
ZWJSZWN0JiBwcmludGFibGVBcmVhLCBpbnQgcHJpbnRlckRQSSkgeyByZXR1cm4gMDsgfQorICAg
IC8vIFNldHMgdXAgcHJpbnRpbmcgYXQgdGhlIGdpdmVuIHByaW50IHJlY3QgYW5kIHByaW50ZXIg
RFBJLiBwcmludFNjYWxpbmdPcHRpb24KKyAgICAvLyBzcGVjaWZpZXMgd2hldGhlciB0aGUgcGx1
Z2luIG5lZWRzIHRvIHJlZHVjZS9lbmxhcmdlL3JldGFpbiB0aGUgcHJpbnQgY29udGVudHMKKyAg
ICAvLyB0byBmaXQgdGhlIHBhcGVyIHNpemUuIHByaW50Q29udGVudEFyZWEsIHByaW50YWJsZUFy
ZWEgYW5kIHBhcGVyU2l6ZSBhcmUgaW4KKyAgICAvLyBwb2ludHMgKGEgcG9pbnQgaXMgMS83MiBv
ZiBhbiBpbmNoKS4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRvIGJlIHByaW50ZWQKKyAg
ICAvLyBhdCB0aGVzZSBzZXR0aW5ncy4KKyAgICAvLyBUT0RPKGttYWRodXN1QGNocm9taXVtLm9y
Zyk6IENoYW5nZSB0aGUgZGF0YSB0eXBlIG9mIHByaW50U2NhbGluZ09wdGlvbiB0bworICAgIC8v
IFdlYlByaW50U2NhbGluZ09wdGlvbiBhZnRlciBmaXhpbmcgY3JidWcuY29tLzg1MTMyLgorICAg
IHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViUmVjdCYgcHJpbnRDb250ZW50QXJlYSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTaXplJiBwYXBlclNpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbnRTY2FsaW5nT3B0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEkpIHsgcmV0dXJuIDA7IH0KICAgICAv
LyBQcmludHMgdGhlIHBhZ2Ugc3BlY2lmaWVkIGJ5IHBhZ2VOdW1iZXIgKDAtYmFzZWQgaW5kZXgp
IGludG8gdGhlIHN1cHBsaWVkIGNhbnZhcy4KICAgICB2aXJ0dWFsIGJvb2wgcHJpbnRQYWdlKGlu
dCBwYWdlTnVtYmVyLCBXZWJDYW52YXMqIGNhbnZhcykgeyByZXR1cm4gZmFsc2U7IH0KICAgICAv
LyBFbmRzIHRoZSBwcmludCBvcGVyYXRpb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJQcmludFNjYWxpbmdPcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQcmludFNjYWxpbmdPcHRpb24uaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlByaW50U2NhbGluZ09wdGlvbi5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQcmludFNjYWxpbmdPcHRp
b25faAorI2RlZmluZSBXZWJQcmludFNjYWxpbmdPcHRpb25faAorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworZW51bSBXZWJQcmludFNjYWxpbmdPcHRpb24geworICAgIFdlYlByaW50U2NhbGVOb25l
LCAvLyBQcmludHMgdGhlIHVwcGVyIGxlZnQgb2YgYSBwYWdlIHdpdGhvdXQgc2NhbGluZy4gQ3Jv
cCB0aGUgcGFnZSBjb250ZW50cyB0aGF0IGRvbid0IGZpdCBvbiB0aGUgcGFwZXIuCisgICAgV2Vi
UHJpbnRGaXRUb1ByaW50YWJsZUFyZWEsIC8vIFJlZHVjZXMgb3IgZW5sYXJnZXMgZWFjaCBwYWdl
IHRvIGZpdCB0aGUgcHJpbnRhYmxlIGFyZWEgb2YgdGhlIHNlbGVjdGVkIHByaW50ZXIgcGFwZXIg
c2l6ZS4KKyAgICBXZWJQcmludEFjdHVhbFNpemUsIC8vIFByaW50IG91dHB1dCBwYWdlIHNpemUg
aXMgc2FtZSBhcyB0aGUgYWN0dWFsIHNvdXJjZSBwYWdlIHNpemUuIERvIG5vdCBzY2FsZS9jZW50
ZXIvZml0IHRvIHByaW50YWJsZSBhcmVhLgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUHJpbnRTY2FsaW5nT3B0aW9uLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIExGCgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwCShyZXZpc2lvbiAxMTQ3NjgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDMsOCArNDQzLDggQEAgcHJpdmF0
ZToKIC8vIHdhbnQgdG8gZGVsZWdhdGUgYWxsIHByaW50aW5nIHJlbGF0ZWQgY2FsbHMgdG8gdGhl
IHBsdWdpbi4KIGNsYXNzIENocm9tZVBsdWdpblByaW50Q29udGV4dCA6IHB1YmxpYyBDaHJvbWVQ
cmludENvbnRleHQgewogcHVibGljOgotICAgIENocm9tZVBsdWdpblByaW50Q29udGV4dChGcmFt
ZSogZnJhbWUsIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbiwgaW50IHByaW50ZXJEUEkp
Ci0gICAgICAgIDogQ2hyb21lUHJpbnRDb250ZXh0KGZyYW1lKSwgbV9wbHVnaW4ocGx1Z2luKSwg
bV9wYWdlQ291bnQoMCksIG1fcHJpbnRlckRQSShwcmludGVyRFBJKQorICAgIENocm9tZVBsdWdp
blByaW50Q29udGV4dChGcmFtZSogZnJhbWUsIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdp
biwgaW50IHByaW50ZXJEUEksIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEsIGNvbnN0IFdl
YlNpemUmIHBhcGVyU2l6ZSwgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIHByaW50U2NhbGluZ09wdGlv
bikKKyAgICAgICAgOiBDaHJvbWVQcmludENvbnRleHQoZnJhbWUpLCBtX3BsdWdpbihwbHVnaW4p
LCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludGVyRFBJKHByaW50ZXJEUEkpLCBtX3ByaW50YWJsZUFy
ZWEocHJpbnRhYmxlQXJlYSksIG1fcGFwZXJTaXplKHBhcGVyU2l6ZSksIG1fcHJpbnRTY2FsaW5n
T3B0aW9uKHByaW50U2NhbGluZ09wdGlvbikKICAgICB7CiAgICAgfQogCkBAIC00NjcsNyArNDY3
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQYWdlUmVjdHMoY29uc3Qg
RmxvYXRSZWN0JiBwcmludFJlY3QsIGZsb2F0IGhlYWRlckhlaWdodCwgZmxvYXQgZm9vdGVySGVp
Z2h0LCBmbG9hdCB1c2VyU2NhbGVGYWN0b3IsIGZsb2F0JiBvdXRQYWdlSGVpZ2h0KQogICAgIHsK
LSAgICAgICAgbV9wYWdlQ291bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdpbihJbnRSZWN0KHByaW50
UmVjdCksIG1fcHJpbnRlckRQSSk7CisgICAgICAgIG1fcGFnZUNvdW50ID0gbV9wbHVnaW4tPnBy
aW50QmVnaW4oSW50UmVjdChwcmludFJlY3QpLCBtX3ByaW50YWJsZUFyZWEsIG1fcGFwZXJTaXpl
LCBtX3ByaW50U2NhbGluZ09wdGlvbiwgbV9wcmludGVyRFBJKTsKICAgICB9CiAKICAgICB2aXJ0
dWFsIGludCBwYWdlQ291bnQoKSBjb25zdApAQCAtNDk0LDYgKzQ5NCwxMCBAQCBwcml2YXRlOgog
ICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIG1fcGx1Z2luOwogICAgIGludCBtX3BhZ2VDb3Vu
dDsKICAgICBpbnQgbV9wcmludGVyRFBJOworICAgIFdlYlJlY3QgbV9wcmludGFibGVBcmVhOwor
ICAgIFdlYlNpemUgbV9wYXBlclNpemU7CisgICAgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIG1fcHJp
bnRTY2FsaW5nT3B0aW9uOworCiB9OwogCiBzdGF0aWMgV2ViRGF0YVNvdXJjZSogRGF0YVNvdXJj
ZUZvckRvY0xvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyKQpAQCAtMTQxNCw5ICsxNDE4LDI1
IEBAIFZpc2libGVQb3NpdGlvbiBXZWJGcmFtZUltcGw6OnZpc2libGVQb3MKICAgICByZXR1cm4g
bm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChyZXN1bHQubG9jYWxQb2ludCgpKTsK
IH0KIAotaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6
ZSwKKy8vIFRPRE8oa21hZGh1c3VAY2hyb21pdW0ub3JnKTogUmVtb3ZlIHRoaXMgZnVuY3Rpb24g
YWZ0ZXIgZml4aW5nCisvLyBjcmJ1Zy5jb20vODUxMzIuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBw
bGVhc2UgcmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluCisvLyBXZWJGcmFtZS5oCitpbnQgV2ViRnJh
bWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNpemUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9kZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5cykgeworICAgIFdlYlJl
Y3QgcHJpbnRhYmxlQXJlYSgwLCAwLCBwcmludENvbnRlbnRTaXplLndpZHRoLCBwcmludENvbnRl
bnRTaXplLmhlaWdodCk7CisgICAgV2ViU2l6ZSBwYXBlclNpemUocHJpbnRDb250ZW50U2l6ZSk7
CisgICAgcmV0dXJuIHByaW50QmVnaW4ocHJpbnRDb250ZW50U2l6ZSwgcHJpbnRhYmxlQXJlYSwg
cGFwZXJTaXplLCBjb25zdHJhaW5Ub05vZGUsCisgICAgICAgICAgICAgICAgICAgICAgcHJpbnRl
ckRQSSwgV2ViUHJpbnRBY3R1YWxTaXplLCB1c2VCcm93c2VyT3ZlcmxheXMpOworfQorCitpbnQg
V2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFy
ZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlNpemUmIHBhcGVyU2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWlu
VG9Ob2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIHByaW50U2Nh
bGluZ09wdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nl
ck92ZXJsYXlzKQogewogICAgIEFTU0VSVCghZnJhbWUoKS0+ZG9jdW1lbnQoKS0+aXNGcmFtZVNl
dCgpKTsKQEAgLTE0MzEsMTIgKzE0NTEsMTIgQEAgaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdp
bihjb25zdCBXZWJTaQogICAgIH0KIAogICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2lu
Q29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgIG1fcHJpbnRDb250
ZXh0ID0gYWRvcHRQdHIobmV3IENocm9tZVBsdWdpblByaW50Q29udGV4dChmcmFtZSgpLCBwbHVn
aW5Db250YWluZXIsIHByaW50ZXJEUEkpKTsKKyAgICAgICAgbV9wcmludENvbnRleHQgPSBhZG9w
dFB0cihuZXcgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHBsdWdpbkNvbnRhaW5l
ciwgcHJpbnRlckRQSSwgcHJpbnRhYmxlQXJlYSwgcGFwZXJTaXplLCBwcmludFNjYWxpbmdPcHRp
b24pKTsKICAgICBlbHNlCiAgICAgICAgIG1fcHJpbnRDb250ZXh0ID0gYWRvcHRQdHIobmV3IENo
cm9tZVByaW50Q29udGV4dChmcmFtZSgpKSk7CiAKLSAgICBGbG9hdFJlY3QgcmVjdCgwLCAwLCBz
dGF0aWNfY2FzdDxmbG9hdD4ocGFnZVNpemUud2lkdGgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PGZsb2F0PihwYWdlU2l6ZS5oZWlnaHQpKTsKKyAgICBGbG9hdFJlY3Qg
cmVjdCgwLCAwLCBzdGF0aWNfY2FzdDxmbG9hdD4ocHJpbnRDb250ZW50U2l6ZS53aWR0aCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHByaW50Q29udGVudFNp
emUuaGVpZ2h0KSk7CiAgICAgbV9wcmludENvbnRleHQtPmJlZ2luKHJlY3Qud2lkdGgoKSwgcmVj
dC5oZWlnaHQoKSk7CiAgICAgZmxvYXQgcGFnZUhlaWdodDsKICAgICAvLyBXZSBpZ25vcmUgdGhl
IG92ZXJsYXlzIGNhbGN1bGF0aW9uIGZvciBub3cgc2luY2UgdGhleSBhcmUgZ2VuZXJhdGVkIGlu
IHRoZQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJKHJl
dmlzaW9uIDExNDc2OCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsOSArMTcwLDIwIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFdlYlN0cmluZyBzZWxlY3Rpb25Bc01hcmt1cCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9v
bCBzZWxlY3RXb3JkQXJvdW5kQ2FyZXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0UmFuZ2Uo
Y29uc3QgV2ViUG9pbnQmIHN0YXJ0LCBjb25zdCBXZWJQb2ludCYgZW5kKTsKLSAgICB2aXJ0dWFs
IGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorCisgICAgLy8gVE9ETyhr
bWFkaHVzdUBjaHJvbWl1bS5vcmcpOiBSZW1vdmUgdGhpcyBmdW5jdGlvbiBhZnRlciBmaXhpbmcK
KyAgICAvLyBjcmJ1Zy5jb20vODUxMzIuIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgcGxlYXNl
IHJlZmVyIHRvIHRoZSBjb21tZW50cworICAgIC8vIHByZXNlbnQgaW4gV2ViRnJhbWUuaAorICAg
IHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcHJpbnRDb250ZW50U2l6ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlzKTsKKyAgICB2aXJ0dWFs
IGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNpemUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJSZWN0JiBwcmludGFibGVBcmVhLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU2l6ZSYgcGFwZXJTaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJQcmludFNjYWxpbmdPcHRpb24gcGFnZVNjYWxpbmdPcHRpb24sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMpOwogICAgIHZpcnR1
YWwgZmxvYXQgcHJpbnRQYWdlKGludCBwYWdlVG9QcmludCwgV2ViQ2FudmFzKik7CiAgICAgdmly
dHVhbCBmbG9hdCBnZXRQcmludFBhZ2VTaHJpbmsoaW50IHBhZ2UpOwpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJ
KHJldmlzaW9uIDExNDc2OCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksMTAgKzI0OSwxMyBAQCBi
b29sIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmlzUHJpbnRTY2FsCiAgICAgcmV0dXJuIG1fd2Vi
UGx1Z2luLT5pc1ByaW50U2NhbGluZ0Rpc2FibGVkKCk7CiB9CiAKLWludCBXZWJQbHVnaW5Db250
YWluZXJJbXBsOjpwcmludEJlZ2luKGNvbnN0IEludFJlY3QmIHByaW50YWJsZUFyZWEsCitpbnQg
V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRCZWdpbihjb25zdCBJbnRSZWN0JiBwcmludENv
bnRlbnRSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SW50UmVjdCYgcHJpbnRhYmxlQXJlYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEludFNpemUmIHBhcGVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYlByaW50U2NhbGluZ09wdGlvbiBzY2FsaW5nT3B0aW9uLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEkpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fd2ViUGx1Z2luLT5wcmludEJlZ2luKHByaW50YWJsZUFyZWEsIHBy
aW50ZXJEUEkpOworICAgIHJldHVybiBtX3dlYlBsdWdpbi0+cHJpbnRCZWdpbihwcmludENvbnRl
bnRSZWN0LCBwcmludGFibGVBcmVhLCBwYXBlclNpemUsIHNjYWxpbmdPcHRpb24sIHByaW50ZXJE
UEkpOwogfQogCiBib29sIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50UGFnZShpbnQgcGFn
ZU51bWJlciwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmgJKHJldmlzaW9uIDExNDc2OCkKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJX
ZWJQbHVnaW5Db250YWluZXIuaCIKKyNpbmNsdWRlICJXZWJQcmludFNjYWxpbmdPcHRpb24uaCIK
ICNpbmNsdWRlICJXaWRnZXQuaCIKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1
cmVMYXllci5oPgpAQCAtMTIyLDcgKzEyMywxMSBAQCBwdWJsaWM6CiAgICAgLy8gU2V0cyB1cCBw
cmludGluZyBhdCB0aGUgZ2l2ZW4gcHJpbnQgcmVjdCBhbmQgcHJpbnRlciBEUEkuIHByaW50YWJs
ZUFyZWEKICAgICAvLyBpcyBpbiBwb2ludHMgKGEgcG9pbnQgaXMgMS83MiBvZiBhbiBpbmNoKS5S
ZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgdG8KICAgICAvLyBiZSBwcmludGVkIGF0IHRoZXNl
IHNldHRpbmdzLgotICAgIGludCBwcmludEJlZ2luKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHBy
aW50YWJsZUFyZWEsIGludCBwcmludGVyRFBJKSBjb25zdDsKKyAgICBpbnQgcHJpbnRCZWdpbihj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwcmludENvbnRlbnRSZWN0LAorICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHByaW50YWJsZUFyZWEsCisgICAgICAgICAgICAg
ICAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGFwZXJTaXplLAorICAgICAgICAgICAgICAg
ICAgIFdlYlByaW50U2NhbGluZ09wdGlvbiBwYWdlU2NhbGluZ09wdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICBpbnQgcHJpbnRlckRQSSkgY29uc3Q7CiAgICAgLy8gUHJpbnRzIHRoZSBwYWdlIHNw
ZWNpZmllZCBieSBwYWdlTnVtYmVyICgwLWJhc2VkIGluZGV4KSBpbnRvIHRoZSBzdXBwbGllZCBj
YW52YXMuCiAgICAgYm9vbCBwcmludFBhZ2UoaW50IHBhZ2VOdW1iZXIsIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCogZ2MpOwogICAgIC8vIEVuZHMgdGhlIHByaW50IG9wZXJhdGlvbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138378</attachid>
            <date>2012-04-23 10:30:51 -0700</date>
            <delta_ts>2012-04-29 12:43:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84312-20120423103050.patch</filename>
            <type>text/plain</type>
            <size>14703</size>
            <attacher name="kmadhusu">kmadhusu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ5MTQpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5
IEBACisyMDEyLTA0LTIzICBLYXVzYWx5YSBNYWRodXN1ZGhhbmFuICA8a21hZGh1c3VAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT3ZlcmxvYWRlZCBwcmludEJlZ2luKCkgZnVu
Y3Rpb24gdG8gc3VwcG9ydCBhdXRvIGZpdCB0byBwYWdlIGZ1bmN0aW9uYWxpdHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1l
Lmg6CisgICAgICAgIChXZWJGcmFtZSk6CisgICAgICAgICogcHVibGljL1dlYlBsdWdpbi5oOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBsdWdpbjo6cHJpbnRCZWdpbik6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblByaW50Q29udGV4dDo6Q2hyb21lUGx1Z2lu
UHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0
Ojpjb21wdXRlUGFnZVJlY3RzKToKKyAgICAgICAgKENocm9tZVBsdWdpblByaW50Q29udGV4dCk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnByaW50
QmVnaW4pOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuaDoKKyAgICAgICAgKFdlYkZyYW1l
SW1wbCk6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludEJlZ2luKToKKyAgICAgICAg
KiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oOgorICAgICAgICAoV2ViUGx1Z2luQ29udGFp
bmVySW1wbCk6CisKIDIwMTItMDQtMjMgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBXaGVuIHByZXBhcmVUb0RyYXcgZmFpbHMgZHVlIHRv
IGFuaW1hdGlvbiBjaGVja2VyYm9hcmQsIHdlIG5lZWQgdG8gY2FsbCBzZXROZWVkc0NvbW1pdApJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCShyZXZpc2lvbiAx
MTQ4NTgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJXZWJJY29uVVJMLmgiCiAj
aW5jbHVkZSAiV2ViTm9kZS5oIgorI2luY2x1ZGUgIldlYlByaW50U2NhbGluZ09wdGlvbi5oIgog
I2luY2x1ZGUgIldlYlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiV2ViVVJMTG9hZGVyT3B0
aW9ucy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNhbnZhcy5oIgpAQCAtNDQ5LDE3ICs0NTAs
NDEgQEAgcHVibGljOgogCiAgICAgLy8gUHJpbnRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICAvLyBSZWZvcm1hdHMg
dGhlIFdlYkZyYW1lIGZvciBwcmludGluZy4gcGFnZVNpemUgaXMgdGhlIHBhZ2Ugc2l6ZSBpbgot
ICAgIC8vIHBvaW50cyAoYSBwb2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBJZiB8Y29uc3RyYWlu
VG9Ob2RlfCBub2RlIGlzCi0gICAgLy8gc3BlY2lmaWVkLCB0aGVuIG9ubHkgdGhlIGdpdmVuIG5v
ZGUgaXMgcHJpbnRlZCAoZm9yIG5vdyBvbmx5IHBsdWdpbnMgYXJlCi0gICAgLy8gc3VwcG9ydGVk
KSwgaW5zdGVhZCBvZiB0aGUgZW50aXJlIGZyYW1lLiAgcHJpbnRlckRQSSBpcyB0aGUgdXNlcgot
ICAgIC8vIHNlbGVjdGVkLCBEUEkgZm9yIHRoZSBwcmludGVyLiBSZXR1cm5zIHRoZSBudW1iZXIg
b2YgcGFnZXMgdGhhdCBjYW4gYmUKLSAgICAvLyBwcmludGVkIGF0IHRoZSBnaXZlbiBwYWdlIHNp
emUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92ZXJsYXlzCisgICAgLy8gUmVmb3JtYXRzIHRo
ZSBXZWJGcmFtZSBmb3IgcHJpbnRpbmcuIHByaW50Q29udGVudFNpemUgaXMgdGhlIHByaW50Cisg
ICAgLy8gY29udGVudCBzaXplIGluIHBvaW50cyAoYSBwb2ludCBpbiAxLzcyIG9mIGFuIGluY2gp
LiBJZiBjb25zdHJhaW5Ub05vZGUKKyAgICAvLyBub2RlIGlzIHNwZWNpZmllZCwgdGhlbiBvbmx5
IHRoZSBnaXZlbiBub2RlIGlzIHByaW50ZWQgKGZvciBub3cgb25seQorICAgIC8vIHBsdWdpbnMg
YXJlIHN1cHBvcnRlZCksIGluc3RlYWQgb2YgdGhlIGVudGlyZSBmcmFtZS4gcHJpbnRlckRQSSBp
cyB0aGUKKyAgICAvLyB1c2VyIHNlbGVjdGVkLCBEUEkgZm9yIHRoZSBwcmludGVyLiBSZXR1cm5z
IHRoZSBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW4KKyAgICAvLyBiZSBwcmludGVkIGF0IHRoZSBn
aXZlbiBwYWdlIHNpemUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92ZXJsYXlzCiAgICAgLy8g
c3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgcHJvY2VzcyBzaG91bGQgdXNlIGl0cyBvdmVy
bGF5cyAoaGVhZGVyLAogICAgIC8vIGZvb3RlciwgbWFyZ2lucyBldGMpIG9yIHdoZXRoZXIgdGhl
IHJlbmRlcmVyIGNvbnRyb2xzIHRoaXMuCi0gICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25z
dCBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAvLworICAgIC8vIFRPRE8oa21hZGh1c3VAY2hyb21p
dW0ub3JnKTogVGhpcyBpcyBhIHRlbXBvcmFyeSBpbnRlcmZhY2UgdG8gYXZvaWQgdGhlCisgICAg
Ly8gY29tcGlsZSBlcnJvcnMuIFJlbW92ZSB0aGlzIGludGVyZmFjZSBhZnRlciBmaXhpbmcgY3Ji
dWcuY29tLzg1MTMyLiBXZQorICAgIC8vIHdpbGwgdXNlIHRoZSBvdmVybG9hZGVkIHByaW50QmVn
aW4gZnVuY3Rpb24uCisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBw
cmludENvbnRlbnRTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9k
ZSYgY29uc3RyYWluVG9Ob2RlID0gV2ViTm9kZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IHByaW50ZXJEUEkgPSA3MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wq
IHVzZUJyb3dzZXJPdmVybGF5cyA9IDApID0gMDsKKworICAgIC8vIFJlZm9ybWF0cyB0aGUgV2Vi
RnJhbWUgZm9yIHByaW50aW5nLiBwcmludENvbnRlbnRTaXplIGlzIHRoZSBwcmludGFibGUKKyAg
ICAvLyBjb250ZW50IHNpemUgaW4gcG9pbnRzIChhIHBvaW50IGluIDEvNzIgb2YgYW4gaW5jaCku
IHByaW50YWJsZUFyZWEgYW5kCisgICAgLy8gcGFwZXJTaXplIHNwZWNpZmllcyB0aGUgc2VsZWN0
ZWQgcHJpbnRlciBkZWZhdWx0IHBhcGVyIHNpemUgYW5kIHByaW50YWJsZQorICAgIC8vIGFyZWEg
ZGV0YWlscy4gcGFnZVNjYWxpbmdPcHRpb24gc3BlY2lmaWVzIHdoZXRoZXIgdG8gcmVkdWNlL2Vu
bGFyZ2UvcmV0YWluCisgICAgLy8gdGhlICBzb3VyY2UgcGFnZSBjb250ZW50cyB0byBmaXQgdGhl
IHNwZWNpZmllZCBwcmludGFibGUgYXJlYS4gKFRoaXMgcGFyYW0KKyAgICAvLyBpcyB1c2VkIG9u
bHkgYnkgcGx1Z2luIHByaW50aW5nKS4gSWYgY29uc3RyYWluVG9Ob2RlIG5vZGUgaXMgc3BlY2lm
aWVkLAorICAgIC8vIHRoZW4gb25seSB0aGUgZ2l2ZW4gbm9kZSBpcyBwcmludGVkIChmb3Igbm93
IG9ubHkgcGx1Z2lucyBhcmUgc3VwcG9ydGVkKSwKKyAgICAvLyBpbnN0ZWFkIG9mIHRoZSBlbnRp
cmUgZnJhbWUuIHByaW50ZXJEUEkgaXMgdGhlIHVzZXIgc2VsZWN0ZWQsIERQSSBmb3IKKyAgICAv
LyB0aGUgcHJpbnRlci4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2FuIGJlIHBy
aW50ZWQgYXQgdGhlIGdpdmVuCisgICAgLy8gcGFnZSBzaXplLiBUaGUgb3V0IHBhcmFtIHVzZUJy
b3dzZXJPdmVybGF5cyBzcGVjaWZpZXMgd2hldGhlciB0aGUgYnJvd3NlcgorICAgIC8vIHByb2Nl
c3Mgc2hvdWxkIHVzZSBpdHMgb3ZlcmxheXMgKGhlYWRlciwgZm9vdGVyLCBtYXJnaW5zIGV0Yykg
b3Igd2hldGhlcgorICAgIC8vIHRoZSByZW5kZXJlciBjb250cm9scyB0aGlzLgorICAgIHZpcnR1
YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcHJpbnRDb250ZW50U2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTaXplJiBwYXBlclNpemUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJOb2RlJiBjb25zdHJhaW5Ub05vZGUgPSBXZWJO
b2RlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSA9IDcyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIHBhZ2VTY2Fs
aW5nT3B0aW9uID0gV2ViUHJpbnRGaXRUb1ByaW50YWJsZUFyZWEsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMgPSAwKSA9IDA7CiAKICAgICAvLyBS
ZXR1cm5zIHRoZSBwYWdlIHNocmlua2luZyBmYWN0b3IgY2FsY3VsYXRlZCBieSB3ZWJraXQgKHVz
dWFsbHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCShy
ZXZpc2lvbiAxMTQ4NTgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVn
aW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBXZWJQbHVnaW5f
aAogI2RlZmluZSBXZWJQbHVnaW5faAogCisjaW5jbHVkZSAiV2ViUHJpbnRTY2FsaW5nT3B0aW9u
LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ2FudmFzLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0v
V2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCkBAIC00OCw2ICs0OSw3
IEBAIHN0cnVjdCBXZWJDdXJzb3JJbmZvOwogc3RydWN0IFdlYlBsdWdpblBhcmFtczsKIHN0cnVj
dCBXZWJQb2ludDsKIHN0cnVjdCBXZWJSZWN0Oworc3RydWN0IFdlYlNpemU7CiBzdHJ1Y3QgV2Vi
VVJMRXJyb3I7CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOwogCkBAIC05
NCwxMCArOTYsMTggQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJpbnRl
ZCBjb250ZW50IHNob3VsZCBub3QgYmUgc2NhbGVkIHRvCiAgICAgLy8gdGhlIHByaW50ZXIncyBw
cmludGFibGUgYXJlYS4KICAgICB2aXJ0dWFsIGJvb2wgaXNQcmludFNjYWxpbmdEaXNhYmxlZCgp
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgLy8gU2V0cyB1cCBwcmludGluZyBhdCB0aGUgZ2l2ZW4g
cHJpbnQgcmVjdCBhbmQgcHJpbnRlciBEUEkuIHByaW50YWJsZUFyZWEKLSAgICAvLyBpcyBpbiBw
b2ludHMgKGEgcG9pbnQgaXMgMS83MiBvZiBhbiBpbmNoKS5SZXR1cm5zIHRoZSBudW1iZXIgb2Yg
cGFnZXMgdG8KLSAgICAvLyBiZSBwcmludGVkIGF0IHRoZXNlIHNldHRpbmdzLgotICAgIHZpcnR1
YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViUmVjdCYgcHJpbnRhYmxlQXJlYSwgaW50IHByaW50
ZXJEUEkpIHsgcmV0dXJuIDA7IH0KKyAgICAvLyBTZXRzIHVwIHByaW50aW5nIGF0IHRoZSBnaXZl
biBwcmludCByZWN0IGFuZCBwcmludGVyIERQSS4gcHJpbnRTY2FsaW5nT3B0aW9uCisgICAgLy8g
c3BlY2lmaWVzIHdoZXRoZXIgdGhlIHBsdWdpbiBuZWVkcyB0byByZWR1Y2UvZW5sYXJnZS9yZXRh
aW4gdGhlIHByaW50IGNvbnRlbnRzCisgICAgLy8gdG8gZml0IHRoZSBwYXBlciBzaXplLiBwcmlu
dENvbnRlbnRBcmVhLCBwcmludGFibGVBcmVhIGFuZCBwYXBlclNpemUgYXJlIGluCisgICAgLy8g
cG9pbnRzIChhIHBvaW50IGlzIDEvNzIgb2YgYW4gaW5jaCkuIFJldHVybnMgdGhlIG51bWJlciBv
ZiBwYWdlcyB0byBiZSBwcmludGVkCisgICAgLy8gYXQgdGhlc2Ugc2V0dGluZ3MuCisgICAgLy8g
VE9ETyhrbWFkaHVzdUBjaHJvbWl1bS5vcmcpOiBDaGFuZ2UgdGhlIGRhdGEgdHlwZSBvZiBwcmlu
dFNjYWxpbmdPcHRpb24gdG8KKyAgICAvLyBXZWJQcmludFNjYWxpbmdPcHRpb24gYWZ0ZXIgZml4
aW5nIGNyYnVnLmNvbS84NTEzMi4KKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdl
YlJlY3QmIHByaW50Q29udGVudEFyZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXZWJSZWN0JiBwcmludGFibGVBcmVhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgV2ViU2l6ZSYgcGFwZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViUHJp
bnRTY2FsaW5nT3B0aW9uIHByaW50U2NhbGluZ09wdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBwcmludGVyRFBJKSB7IHJldHVybiAwOyB9CiAgICAgLy8gUHJpbnRzIHRoZSBw
YWdlIHNwZWNpZmllZCBieSBwYWdlTnVtYmVyICgwLWJhc2VkIGluZGV4KSBpbnRvIHRoZSBzdXBw
bGllZCBjYW52YXMuCiAgICAgdmlydHVhbCBib29sIHByaW50UGFnZShpbnQgcGFnZU51bWJlciwg
V2ViQ2FudmFzKiBjYW52YXMpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgLy8gRW5kcyB0aGUgcHJp
bnQgb3BlcmF0aW9uLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCShyZXZpc2lvbiAxMTQ4NTgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDMsOCArNDQzLDggQEAgcHJp
dmF0ZToKIC8vIHdhbnQgdG8gZGVsZWdhdGUgYWxsIHByaW50aW5nIHJlbGF0ZWQgY2FsbHMgdG8g
dGhlIHBsdWdpbi4KIGNsYXNzIENocm9tZVBsdWdpblByaW50Q29udGV4dCA6IHB1YmxpYyBDaHJv
bWVQcmludENvbnRleHQgewogcHVibGljOgotICAgIENocm9tZVBsdWdpblByaW50Q29udGV4dChG
cmFtZSogZnJhbWUsIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbiwgaW50IHByaW50ZXJE
UEkpCi0gICAgICAgIDogQ2hyb21lUHJpbnRDb250ZXh0KGZyYW1lKSwgbV9wbHVnaW4ocGx1Z2lu
KSwgbV9wYWdlQ291bnQoMCksIG1fcHJpbnRlckRQSShwcmludGVyRFBJKQorICAgIENocm9tZVBs
dWdpblByaW50Q29udGV4dChGcmFtZSogZnJhbWUsIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBs
dWdpbiwgaW50IHByaW50ZXJEUEksIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEsIGNvbnN0
IFdlYlNpemUmIHBhcGVyU2l6ZSwgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIHByaW50U2NhbGluZ09w
dGlvbikKKyAgICAgICAgOiBDaHJvbWVQcmludENvbnRleHQoZnJhbWUpLCBtX3BsdWdpbihwbHVn
aW4pLCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludGVyRFBJKHByaW50ZXJEUEkpLCBtX3ByaW50YWJs
ZUFyZWEocHJpbnRhYmxlQXJlYSksIG1fcGFwZXJTaXplKHBhcGVyU2l6ZSksIG1fcHJpbnRTY2Fs
aW5nT3B0aW9uKHByaW50U2NhbGluZ09wdGlvbikKICAgICB7CiAgICAgfQogCkBAIC00NjcsNyAr
NDY3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQYWdlUmVjdHMoY29u
c3QgRmxvYXRSZWN0JiBwcmludFJlY3QsIGZsb2F0IGhlYWRlckhlaWdodCwgZmxvYXQgZm9vdGVy
SGVpZ2h0LCBmbG9hdCB1c2VyU2NhbGVGYWN0b3IsIGZsb2F0JiBvdXRQYWdlSGVpZ2h0KQogICAg
IHsKLSAgICAgICAgbV9wYWdlQ291bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdpbihJbnRSZWN0KHBy
aW50UmVjdCksIG1fcHJpbnRlckRQSSk7CisgICAgICAgIG1fcGFnZUNvdW50ID0gbV9wbHVnaW4t
PnByaW50QmVnaW4oSW50UmVjdChwcmludFJlY3QpLCBtX3ByaW50YWJsZUFyZWEsIG1fcGFwZXJT
aXplLCBtX3ByaW50U2NhbGluZ09wdGlvbiwgbV9wcmludGVyRFBJKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIGludCBwYWdlQ291bnQoKSBjb25zdApAQCAtNDk0LDYgKzQ5NCwxMCBAQCBwcml2YXRl
OgogICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIG1fcGx1Z2luOwogICAgIGludCBtX3BhZ2VD
b3VudDsKICAgICBpbnQgbV9wcmludGVyRFBJOworICAgIFdlYlJlY3QgbV9wcmludGFibGVBcmVh
OworICAgIFdlYlNpemUgbV9wYXBlclNpemU7CisgICAgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIG1f
cHJpbnRTY2FsaW5nT3B0aW9uOworCiB9OwogCiBzdGF0aWMgV2ViRGF0YVNvdXJjZSogRGF0YVNv
dXJjZUZvckRvY0xvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyKQpAQCAtMTQxNCw5ICsxNDE4
LDI1IEBAIFZpc2libGVQb3NpdGlvbiBXZWJGcmFtZUltcGw6OnZpc2libGVQb3MKICAgICByZXR1
cm4gbm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChyZXN1bHQubG9jYWxQb2ludCgp
KTsKIH0KIAotaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdl
U2l6ZSwKKy8vIFRPRE8oa21hZGh1c3VAY2hyb21pdW0ub3JnKTogUmVtb3ZlIHRoaXMgZnVuY3Rp
b24gYWZ0ZXIgZml4aW5nCisvLyBjcmJ1Zy5jb20vODUxMzIuIEZvciBtb3JlIGluZm9ybWF0aW9u
LCBwbGVhc2UgcmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluCisvLyBXZWJGcmFtZS5oCitpbnQgV2Vi
RnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5cykgeworICAgIFdl
YlJlY3QgcHJpbnRhYmxlQXJlYSgwLCAwLCBwcmludENvbnRlbnRTaXplLndpZHRoLCBwcmludENv
bnRlbnRTaXplLmhlaWdodCk7CisgICAgV2ViU2l6ZSBwYXBlclNpemUocHJpbnRDb250ZW50U2l6
ZSk7CisgICAgcmV0dXJuIHByaW50QmVnaW4ocHJpbnRDb250ZW50U2l6ZSwgcHJpbnRhYmxlQXJl
YSwgcGFwZXJTaXplLCBjb25zdHJhaW5Ub05vZGUsCisgICAgICAgICAgICAgICAgICAgICAgcHJp
bnRlckRQSSwgV2ViUHJpbnRTb3VyY2VTaXplLCB1c2VCcm93c2VyT3ZlcmxheXMpOworfQorCitp
bnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNp
emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIHByaW50YWJs
ZUFyZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlNpemUmIHBhcGVy
U2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3Ry
YWluVG9Ob2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIHByaW50
U2NhbGluZ09wdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJv
d3Nlck92ZXJsYXlzKQogewogICAgIEFTU0VSVCghZnJhbWUoKS0+ZG9jdW1lbnQoKS0+aXNGcmFt
ZVNldCgpKTsKQEAgLTE0MzEsMTIgKzE0NTEsMTIgQEAgaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRC
ZWdpbihjb25zdCBXZWJTaQogICAgIH0KIAogICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1
Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgIG1fcHJpbnRD
b250ZXh0ID0gYWRvcHRQdHIobmV3IENocm9tZVBsdWdpblByaW50Q29udGV4dChmcmFtZSgpLCBw
bHVnaW5Db250YWluZXIsIHByaW50ZXJEUEkpKTsKKyAgICAgICAgbV9wcmludENvbnRleHQgPSBh
ZG9wdFB0cihuZXcgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHBsdWdpbkNvbnRh
aW5lciwgcHJpbnRlckRQSSwgcHJpbnRhYmxlQXJlYSwgcGFwZXJTaXplLCBwcmludFNjYWxpbmdP
cHRpb24pKTsKICAgICBlbHNlCiAgICAgICAgIG1fcHJpbnRDb250ZXh0ID0gYWRvcHRQdHIobmV3
IENocm9tZVByaW50Q29udGV4dChmcmFtZSgpKSk7CiAKLSAgICBGbG9hdFJlY3QgcmVjdCgwLCAw
LCBzdGF0aWNfY2FzdDxmbG9hdD4ocGFnZVNpemUud2lkdGgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PGZsb2F0PihwYWdlU2l6ZS5oZWlnaHQpKTsKKyAgICBGbG9hdFJl
Y3QgcmVjdCgwLCAwLCBzdGF0aWNfY2FzdDxmbG9hdD4ocHJpbnRDb250ZW50U2l6ZS53aWR0aCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHByaW50Q29udGVu
dFNpemUuaGVpZ2h0KSk7CiAgICAgbV9wcmludENvbnRleHQtPmJlZ2luKHJlY3Qud2lkdGgoKSwg
cmVjdC5oZWlnaHQoKSk7CiAgICAgZmxvYXQgcGFnZUhlaWdodDsKICAgICAvLyBXZSBpZ25vcmUg
dGhlIG92ZXJsYXlzIGNhbGN1bGF0aW9uIGZvciBub3cgc2luY2UgdGhleSBhcmUgZ2VuZXJhdGVk
IGluIHRoZQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJ
KHJldmlzaW9uIDExNDg1OCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsOSArMTcwLDIwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFdlYlN0cmluZyBzZWxlY3Rpb25Bc01hcmt1cCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBzZWxlY3RXb3JkQXJvdW5kQ2FyZXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0UmFu
Z2UoY29uc3QgV2ViUG9pbnQmIHN0YXJ0LCBjb25zdCBXZWJQb2ludCYgZW5kKTsKLSAgICB2aXJ0
dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorCisgICAgLy8gVE9E
TyhrbWFkaHVzdUBjaHJvbWl1bS5vcmcpOiBSZW1vdmUgdGhpcyBmdW5jdGlvbiBhZnRlciBmaXhp
bmcKKyAgICAvLyBjcmJ1Zy5jb20vODUxMzIuIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgcGxl
YXNlIHJlZmVyIHRvIHRoZSBjb21tZW50cworICAgIC8vIHByZXNlbnQgaW4gV2ViRnJhbWUuaAor
ICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcHJpbnRDb250ZW50U2l6
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFpblRv
Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlzKTsKKyAgICB2aXJ0
dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNpemUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJSZWN0JiBwcmludGFibGVBcmVhLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU2l6ZSYgcGFwZXJTaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJQcmludFNjYWxpbmdPcHRpb24gcGFnZVNjYWxpbmdPcHRpb24sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMpOwogICAgIHZp
cnR1YWwgZmxvYXQgcHJpbnRQYWdlKGludCBwYWdlVG9QcmludCwgV2ViQ2FudmFzKik7CiAgICAg
dmlydHVhbCBmbG9hdCBnZXRQcmludFBhZ2VTaHJpbmsoaW50IHBhZ2UpOwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5j
cHAJKHJldmlzaW9uIDExNDg1OCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksMTAgKzI0OSwxMyBA
QCBib29sIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmlzUHJpbnRTY2FsCiAgICAgcmV0dXJuIG1f
d2ViUGx1Z2luLT5pc1ByaW50U2NhbGluZ0Rpc2FibGVkKCk7CiB9CiAKLWludCBXZWJQbHVnaW5D
b250YWluZXJJbXBsOjpwcmludEJlZ2luKGNvbnN0IEludFJlY3QmIHByaW50YWJsZUFyZWEsCitp
bnQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRCZWdpbihjb25zdCBJbnRSZWN0JiBwcmlu
dENvbnRlbnRSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgSW50UmVjdCYgcHJpbnRhYmxlQXJlYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEludFNpemUmIHBhcGVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYlByaW50U2NhbGluZ09wdGlvbiBzY2FsaW5nT3B0aW9uLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEkpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fd2ViUGx1Z2luLT5wcmludEJlZ2luKHByaW50YWJsZUFyZWEs
IHByaW50ZXJEUEkpOworICAgIHJldHVybiBtX3dlYlBsdWdpbi0+cHJpbnRCZWdpbihwcmludENv
bnRlbnRSZWN0LCBwcmludGFibGVBcmVhLCBwYXBlclNpemUsIHNjYWxpbmdPcHRpb24sIHByaW50
ZXJEUEkpOwogfQogCiBib29sIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50UGFnZShpbnQg
cGFnZU51bWJlciwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNv
bnRhaW5lckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJQbHVnaW5Db250YWluZXJJbXBsLmgJKHJldmlzaW9uIDExNDg1OCkKKysrIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRl
ICJXZWJQbHVnaW5Db250YWluZXIuaCIKKyNpbmNsdWRlICJXZWJQcmludFNjYWxpbmdPcHRpb24u
aCIKICNpbmNsdWRlICJXaWRnZXQuaCIKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRl
eHR1cmVMYXllci5oPgpAQCAtMTIyLDcgKzEyMywxMSBAQCBwdWJsaWM6CiAgICAgLy8gU2V0cyB1
cCBwcmludGluZyBhdCB0aGUgZ2l2ZW4gcHJpbnQgcmVjdCBhbmQgcHJpbnRlciBEUEkuIHByaW50
YWJsZUFyZWEKICAgICAvLyBpcyBpbiBwb2ludHMgKGEgcG9pbnQgaXMgMS83MiBvZiBhbiBpbmNo
KS5SZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgdG8KICAgICAvLyBiZSBwcmludGVkIGF0IHRo
ZXNlIHNldHRpbmdzLgotICAgIGludCBwcmludEJlZ2luKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHByaW50YWJsZUFyZWEsIGludCBwcmludGVyRFBJKSBjb25zdDsKKyAgICBpbnQgcHJpbnRCZWdp
bihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwcmludENvbnRlbnRSZWN0LAorICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHByaW50YWJsZUFyZWEsCisgICAgICAgICAg
ICAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGFwZXJTaXplLAorICAgICAgICAgICAg
ICAgICAgIFdlYlByaW50U2NhbGluZ09wdGlvbiBwYWdlU2NhbGluZ09wdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICBpbnQgcHJpbnRlckRQSSkgY29uc3Q7CiAgICAgLy8gUHJpbnRzIHRoZSBwYWdl
IHNwZWNpZmllZCBieSBwYWdlTnVtYmVyICgwLWJhc2VkIGluZGV4KSBpbnRvIHRoZSBzdXBwbGll
ZCBjYW52YXMuCiAgICAgYm9vbCBwcmludFBhZ2UoaW50IHBhZ2VOdW1iZXIsIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCogZ2MpOwogICAgIC8vIEVuZHMgdGhlIHByaW50IG9wZXJhdGlvbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139405</attachid>
            <date>2012-04-29 12:43:50 -0700</date>
            <delta_ts>2012-05-14 10:52:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84312-20120429124349.patch</filename>
            <type>text/plain</type>
            <size>14698</size>
            <attacher name="kmadhusu">kmadhusu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTU1OTgpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5
IEBACisyMDEyLTA0LTI5ICBLYXVzYWx5YSBNYWRodXN1ZGhhbmFuICA8a21hZGh1c3VAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT3ZlcmxvYWRlZCBwcmludEJlZ2luKCkgZnVu
Y3Rpb24gdG8gc3VwcG9ydCBhdXRvIGZpdCB0byBwYWdlIGZ1bmN0aW9uYWxpdHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1l
Lmg6CisgICAgICAgIChXZWJGcmFtZSk6CisgICAgICAgICogcHVibGljL1dlYlBsdWdpbi5oOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBsdWdpbjo6cHJpbnRCZWdpbik6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZVBsdWdpblByaW50Q29udGV4dDo6Q2hyb21lUGx1Z2lu
UHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0
Ojpjb21wdXRlUGFnZVJlY3RzKToKKyAgICAgICAgKENocm9tZVBsdWdpblByaW50Q29udGV4dCk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnByaW50
QmVnaW4pOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuaDoKKyAgICAgICAgKFdlYkZyYW1l
SW1wbCk6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludEJlZ2luKToKKyAgICAgICAg
KiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oOgorICAgICAgICAoV2ViUGx1Z2luQ29udGFp
bmVySW1wbCk6CisKIDIwMTItMDQtMjkgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQ2FsbCBoaWdoVXNhZ2VEZWx0YU1CIGRpcmVjdGx5
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9u
IDExNTU5NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIldlYkljb25VUkwuaCIK
ICNpbmNsdWRlICJXZWJOb2RlLmgiCisjaW5jbHVkZSAiV2ViUHJpbnRTY2FsaW5nT3B0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViVVJMTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dl
YkNhbnZhcy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkZpbGVTeXN0ZW0uaCIKQEAgLTQ1NSwx
NyArNDU2LDQxIEBAIHB1YmxpYzoKIAogICAgIC8vIFByaW50aW5nIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0gICAgLy8gUmVm
b3JtYXRzIHRoZSBXZWJGcmFtZSBmb3IgcHJpbnRpbmcuIHBhZ2VTaXplIGlzIHRoZSBwYWdlIHNp
emUgaW4KLSAgICAvLyBwb2ludHMgKGEgcG9pbnQgaW4gMS83MiBvZiBhbiBpbmNoKS4gSWYgfGNv
bnN0cmFpblRvTm9kZXwgbm9kZSBpcwotICAgIC8vIHNwZWNpZmllZCwgdGhlbiBvbmx5IHRoZSBn
aXZlbiBub2RlIGlzIHByaW50ZWQgKGZvciBub3cgb25seSBwbHVnaW5zIGFyZQotICAgIC8vIHN1
cHBvcnRlZCksIGluc3RlYWQgb2YgdGhlIGVudGlyZSBmcmFtZS4gIHByaW50ZXJEUEkgaXMgdGhl
IHVzZXIKLSAgICAvLyBzZWxlY3RlZCwgRFBJIGZvciB0aGUgcHJpbnRlci4gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2FuIGJlCi0gICAgLy8gcHJpbnRlZCBhdCB0aGUgZ2l2ZW4g
cGFnZSBzaXplLiBUaGUgb3V0IHBhcmFtIHVzZUJyb3dzZXJPdmVybGF5cworICAgIC8vIFJlZm9y
bWF0cyB0aGUgV2ViRnJhbWUgZm9yIHByaW50aW5nLiBwcmludENvbnRlbnRTaXplIGlzIHRoZSBw
cmludAorICAgIC8vIGNvbnRlbnQgc2l6ZSBpbiBwb2ludHMgKGEgcG9pbnQgaW4gMS83MiBvZiBh
biBpbmNoKS4gSWYgY29uc3RyYWluVG9Ob2RlCisgICAgLy8gbm9kZSBpcyBzcGVjaWZpZWQsIHRo
ZW4gb25seSB0aGUgZ2l2ZW4gbm9kZSBpcyBwcmludGVkIChmb3Igbm93IG9ubHkKKyAgICAvLyBw
bHVnaW5zIGFyZSBzdXBwb3J0ZWQpLCBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgZnJhbWUuIHByaW50
ZXJEUEkgaXMgdGhlCisgICAgLy8gdXNlciBzZWxlY3RlZCwgRFBJIGZvciB0aGUgcHJpbnRlci4g
UmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2FuCisgICAgLy8gYmUgcHJpbnRlZCBh
dCB0aGUgZ2l2ZW4gcGFnZSBzaXplLiBUaGUgb3V0IHBhcmFtIHVzZUJyb3dzZXJPdmVybGF5cwog
ICAgIC8vIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBicm93c2VyIHByb2Nlc3Mgc2hvdWxkIHVzZSBp
dHMgb3ZlcmxheXMgKGhlYWRlciwKICAgICAvLyBmb290ZXIsIG1hcmdpbnMgZXRjKSBvciB3aGV0
aGVyIHRoZSByZW5kZXJlciBjb250cm9scyB0aGlzLgotICAgIHZpcnR1YWwgaW50IHByaW50QmVn
aW4oY29uc3QgV2ViU2l6ZSYgcGFnZVNpemUsCisgICAgLy8KKyAgICAvLyBUT0RPKGttYWRodXN1
QGNocm9taXVtLm9yZyk6IFRoaXMgaXMgYSB0ZW1wb3JhcnkgaW50ZXJmYWNlIHRvIGF2b2lkIHRo
ZQorICAgIC8vIGNvbXBpbGUgZXJyb3JzLiBSZW1vdmUgdGhpcyBpbnRlcmZhY2UgYWZ0ZXIgZml4
aW5nIGNyYnVnLmNvbS84NTEzMi4gV2UKKyAgICAvLyB3aWxsIHVzZSB0aGUgb3ZlcmxvYWRlZCBw
cmludEJlZ2luIGZ1bmN0aW9uLgorICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2Vi
U2l6ZSYgcHJpbnRDb250ZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9kZSA9IFdlYk5vZGUoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBwcmludGVyRFBJID0gNzIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMgPSAwKSA9IDA7CisKKyAgICAvLyBSZWZvcm1hdHMg
dGhlIFdlYkZyYW1lIGZvciBwcmludGluZy4gcHJpbnRDb250ZW50U2l6ZSBpcyB0aGUgcHJpbnRh
YmxlCisgICAgLy8gY29udGVudCBzaXplIGluIHBvaW50cyAoYSBwb2ludCBpbiAxLzcyIG9mIGFu
IGluY2gpLiBwcmludGFibGVBcmVhIGFuZAorICAgIC8vIHBhcGVyU2l6ZSBzcGVjaWZpZXMgdGhl
IHNlbGVjdGVkIHByaW50ZXIgZGVmYXVsdCBwYXBlciBzaXplIGFuZCBwcmludGFibGUKKyAgICAv
LyBhcmVhIGRldGFpbHMuIHBhZ2VTY2FsaW5nT3B0aW9uIHNwZWNpZmllcyB3aGV0aGVyIHRvIHJl
ZHVjZS9lbmxhcmdlL3JldGFpbgorICAgIC8vIHRoZSAgc291cmNlIHBhZ2UgY29udGVudHMgdG8g
Zml0IHRoZSBzcGVjaWZpZWQgcHJpbnRhYmxlIGFyZWEuIChUaGlzIHBhcmFtCisgICAgLy8gaXMg
dXNlZCBvbmx5IGJ5IHBsdWdpbiBwcmludGluZykuIElmIGNvbnN0cmFpblRvTm9kZSBub2RlIGlz
IHNwZWNpZmllZCwKKyAgICAvLyB0aGVuIG9ubHkgdGhlIGdpdmVuIG5vZGUgaXMgcHJpbnRlZCAo
Zm9yIG5vdyBvbmx5IHBsdWdpbnMgYXJlIHN1cHBvcnRlZCksCisgICAgLy8gaW5zdGVhZCBvZiB0
aGUgZW50aXJlIGZyYW1lLiBwcmludGVyRFBJIGlzIHRoZSB1c2VyIHNlbGVjdGVkLCBEUEkgZm9y
CisgICAgLy8gdGhlIHByaW50ZXIuIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNh
biBiZSBwcmludGVkIGF0IHRoZSBnaXZlbgorICAgIC8vIHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJh
bSB1c2VCcm93c2VyT3ZlcmxheXMgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIKKyAgICAv
LyBwcm9jZXNzIHNob3VsZCB1c2UgaXRzIG92ZXJsYXlzIChoZWFkZXIsIGZvb3RlciwgbWFyZ2lu
cyBldGMpIG9yIHdoZXRoZXIKKyAgICAvLyB0aGUgcmVuZGVyZXIgY29udHJvbHMgdGhpcy4KKyAg
ICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJSZWN0JiBwcmludGFibGVBcmVh
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU2l6ZSYgcGFwZXJTaXplLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2Rl
ID0gV2ViTm9kZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEkg
PSA3MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlByaW50U2NhbGluZ09wdGlvbiBw
YWdlU2NhbGluZ09wdGlvbiA9IFdlYlByaW50U2NhbGluZ09wdGlvbkZpdFRvUHJpbnRhYmxlQXJl
YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5cyA9
IDApID0gMDsKIAogICAgIC8vIFJldHVybnMgdGhlIHBhZ2Ugc2hyaW5raW5nIGZhY3RvciBjYWxj
dWxhdGVkIGJ5IHdlYmtpdCAodXN1YWxseQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViUGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViUGx1Z2luLmgJKHJldmlzaW9uIDExNTU5NykKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaWZuZGVmIFdlYlBsdWdpbl9oCiAjZGVmaW5lIFdlYlBsdWdpbl9oCiAKKyNpbmNsdWRlICJX
ZWJQcmludFNjYWxpbmdPcHRpb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDYW52YXMuaCIK
ICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJV
UkwuaCIKQEAgLTQ4LDYgKzQ5LDcgQEAgc3RydWN0IFdlYkN1cnNvckluZm87CiBzdHJ1Y3QgV2Vi
UGx1Z2luUGFyYW1zOwogc3RydWN0IFdlYlBvaW50Owogc3RydWN0IFdlYlJlY3Q7CitzdHJ1Y3Qg
V2ViU2l6ZTsKIHN0cnVjdCBXZWJVUkxFcnJvcjsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFz
cyBXZWJWZWN0b3I7CiAKQEAgLTk0LDEwICs5NiwxOCBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJu
cyB0cnVlIGlmIHRoZSBwcmludGVkIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBzY2FsZWQgdG8KICAg
ICAvLyB0aGUgcHJpbnRlcidzIHByaW50YWJsZSBhcmVhLgogICAgIHZpcnR1YWwgYm9vbCBpc1By
aW50U2NhbGluZ0Rpc2FibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAvLyBTZXRzIHVwIHBy
aW50aW5nIGF0IHRoZSBnaXZlbiBwcmludCByZWN0IGFuZCBwcmludGVyIERQSS4gcHJpbnRhYmxl
QXJlYQotICAgIC8vIGlzIGluIHBvaW50cyAoYSBwb2ludCBpcyAxLzcyIG9mIGFuIGluY2gpLlJl
dHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0bwotICAgIC8vIGJlIHByaW50ZWQgYXQgdGhlc2Ug
c2V0dGluZ3MuCi0gICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJSZWN0JiBwcmlu
dGFibGVBcmVhLCBpbnQgcHJpbnRlckRQSSkgeyByZXR1cm4gMDsgfQorICAgIC8vIFNldHMgdXAg
cHJpbnRpbmcgYXQgdGhlIGdpdmVuIHByaW50IHJlY3QgYW5kIHByaW50ZXIgRFBJLiBwcmludFNj
YWxpbmdPcHRpb24KKyAgICAvLyBzcGVjaWZpZXMgd2hldGhlciB0aGUgcGx1Z2luIG5lZWRzIHRv
IHJlZHVjZS9lbmxhcmdlL3JldGFpbiB0aGUgcHJpbnQgY29udGVudHMKKyAgICAvLyB0byBmaXQg
dGhlIHBhcGVyIHNpemUuIHByaW50Q29udGVudEFyZWEsIHByaW50YWJsZUFyZWEgYW5kIHBhcGVy
U2l6ZSBhcmUgaW4KKyAgICAvLyBwb2ludHMgKGEgcG9pbnQgaXMgMS83MiBvZiBhbiBpbmNoKS4g
UmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRvIGJlIHByaW50ZWQKKyAgICAvLyBhdCB0aGVz
ZSBzZXR0aW5ncy4KKyAgICAvLyBUT0RPKGttYWRodXN1QGNocm9taXVtLm9yZyk6IENoYW5nZSB0
aGUgZGF0YSB0eXBlIG9mIHByaW50U2NhbGluZ09wdGlvbiB0bworICAgIC8vIFdlYlByaW50U2Nh
bGluZ09wdGlvbiBhZnRlciBmaXhpbmcgY3JidWcuY29tLzg1MTMyLgorICAgIHZpcnR1YWwgaW50
IHByaW50QmVnaW4oY29uc3QgV2ViUmVjdCYgcHJpbnRDb250ZW50QXJlYSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBXZWJTaXplJiBwYXBlclNpemUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJQcmludFNjYWxpbmdPcHRpb24gcHJpbnRTY2FsaW5nT3B0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEkpIHsgcmV0dXJuIDA7IH0K
ICAgICAvLyBQcmludHMgdGhlIHBhZ2Ugc3BlY2lmaWVkIGJ5IHBhZ2VOdW1iZXIgKDAtYmFzZWQg
aW5kZXgpIGludG8gdGhlIHN1cHBsaWVkIGNhbnZhcy4KICAgICB2aXJ0dWFsIGJvb2wgcHJpbnRQ
YWdlKGludCBwYWdlTnVtYmVyLCBXZWJDYW52YXMqIGNhbnZhcykgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICAvLyBFbmRzIHRoZSBwcmludCBvcGVyYXRpb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDExNTU5NykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0Myw4ICs0NDMsOCBAQCBwcml2YXRlOgogLy8gd2FudCB0byBkZWxlZ2F0ZSBhbGwgcHJpbnRp
bmcgcmVsYXRlZCBjYWxscyB0byB0aGUgcGx1Z2luLgogY2xhc3MgQ2hyb21lUGx1Z2luUHJpbnRD
b250ZXh0IDogcHVibGljIENocm9tZVByaW50Q29udGV4dCB7CiBwdWJsaWM6Ci0gICAgQ2hyb21l
UGx1Z2luUHJpbnRDb250ZXh0KEZyYW1lKiBmcmFtZSwgV2ViUGx1Z2luQ29udGFpbmVySW1wbCog
cGx1Z2luLCBpbnQgcHJpbnRlckRQSSkKLSAgICAgICAgOiBDaHJvbWVQcmludENvbnRleHQoZnJh
bWUpLCBtX3BsdWdpbihwbHVnaW4pLCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludGVyRFBJKHByaW50
ZXJEUEkpCisgICAgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KEZyYW1lKiBmcmFtZSwgV2ViUGx1
Z2luQ29udGFpbmVySW1wbCogcGx1Z2luLCBpbnQgcHJpbnRlckRQSSwgY29uc3QgV2ViUmVjdCYg
cHJpbnRhYmxlQXJlYSwgY29uc3QgV2ViU2l6ZSYgcGFwZXJTaXplLCBXZWJQcmludFNjYWxpbmdP
cHRpb24gcHJpbnRTY2FsaW5nT3B0aW9uKQorICAgICAgICA6IENocm9tZVByaW50Q29udGV4dChm
cmFtZSksIG1fcGx1Z2luKHBsdWdpbiksIG1fcGFnZUNvdW50KDApLCBtX3ByaW50ZXJEUEkocHJp
bnRlckRQSSksIG1fcHJpbnRhYmxlQXJlYShwcmludGFibGVBcmVhKSwgbV9wYXBlclNpemUocGFw
ZXJTaXplKSwgbV9wcmludFNjYWxpbmdPcHRpb24ocHJpbnRTY2FsaW5nT3B0aW9uKQogICAgIHsK
ICAgICB9CiAKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZVBhZ2VSZWN0cyhjb25zdCBGbG9hdFJlY3QmIHByaW50UmVjdCwgZmxvYXQgaGVhZGVy
SGVpZ2h0LCBmbG9hdCBmb290ZXJIZWlnaHQsIGZsb2F0IHVzZXJTY2FsZUZhY3RvciwgZmxvYXQm
IG91dFBhZ2VIZWlnaHQpCiAgICAgewotICAgICAgICBtX3BhZ2VDb3VudCA9IG1fcGx1Z2luLT5w
cmludEJlZ2luKEludFJlY3QocHJpbnRSZWN0KSwgbV9wcmludGVyRFBJKTsKKyAgICAgICAgbV9w
YWdlQ291bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdpbihJbnRSZWN0KHByaW50UmVjdCksIG1fcHJp
bnRhYmxlQXJlYSwgbV9wYXBlclNpemUsIG1fcHJpbnRTY2FsaW5nT3B0aW9uLCBtX3ByaW50ZXJE
UEkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgaW50IHBhZ2VDb3VudCgpIGNvbnN0CkBAIC00OTQs
NiArNDk0LDEwIEBAIHByaXZhdGU6CiAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogbV9wbHVn
aW47CiAgICAgaW50IG1fcGFnZUNvdW50OwogICAgIGludCBtX3ByaW50ZXJEUEk7CisgICAgV2Vi
UmVjdCBtX3ByaW50YWJsZUFyZWE7CisgICAgV2ViU2l6ZSBtX3BhcGVyU2l6ZTsKKyAgICBXZWJQ
cmludFNjYWxpbmdPcHRpb24gbV9wcmludFNjYWxpbmdPcHRpb247CisKIH07CiAKIHN0YXRpYyBX
ZWJEYXRhU291cmNlKiBEYXRhU291cmNlRm9yRG9jTG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIpCkBAIC0xNDQzLDkgKzE0NDcsMjUgQEAgVmlzaWJsZVBvc2l0aW9uIFdlYkZyYW1lSW1wbDo6
dmlzaWJsZVBvcwogICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50
KHJlc3VsdC5sb2NhbFBvaW50KCkpOwogfQogCi1pbnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2lu
KGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorLy8gVE9ETyhrbWFkaHVzdUBjaHJvbWl1bS5vcmcp
OiBSZW1vdmUgdGhpcyBmdW5jdGlvbiBhZnRlciBmaXhpbmcKKy8vIGNyYnVnLmNvbS84NTEzMi4g
Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgY29tbWVudHMgaW4KKy8v
IFdlYkZyYW1lLmgKK2ludCBXZWJGcmFtZUltcGw6OnByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYg
cHJpbnRDb250ZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2Vi
Tm9kZSYgY29uc3RyYWluVG9Ob2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
cHJpbnRlckRQSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nl
ck92ZXJsYXlzKSB7CisgICAgV2ViUmVjdCBwcmludGFibGVBcmVhKDAsIDAsIHByaW50Q29udGVu
dFNpemUud2lkdGgsIHByaW50Q29udGVudFNpemUuaGVpZ2h0KTsKKyAgICBXZWJTaXplIHBhcGVy
U2l6ZShwcmludENvbnRlbnRTaXplKTsKKyAgICByZXR1cm4gcHJpbnRCZWdpbihwcmludENvbnRl
bnRTaXplLCBwcmludGFibGVBcmVhLCBwYXBlclNpemUsIGNvbnN0cmFpblRvTm9kZSwKKyAgICAg
ICAgICAgICAgICAgICAgICBwcmludGVyRFBJLCBXZWJQcmludFNjYWxpbmdPcHRpb25Tb3VyY2VT
aXplLCB1c2VCcm93c2VyT3ZlcmxheXMpOworfQorCitpbnQgV2ViRnJhbWVJbXBsOjpwcmludEJl
Z2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVudFNpemUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFdlYlNpemUmIHBhcGVyU2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIHByaW50U2NhbGluZ09wdGlvbiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlzKQogewogICAgIEFT
U0VSVCghZnJhbWUoKS0+ZG9jdW1lbnQoKS0+aXNGcmFtZVNldCgpKTsKQEAgLTE0NjAsMTIgKzE0
ODAsMTIgQEAgaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJTaQogICAgIH0K
IAogICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2luQ29udGFpbmVyLT5zdXBwb3J0c1Bh
Z2luYXRlZFByaW50KCkpCi0gICAgICAgIG1fcHJpbnRDb250ZXh0ID0gYWRvcHRQdHIobmV3IENo
cm9tZVBsdWdpblByaW50Q29udGV4dChmcmFtZSgpLCBwbHVnaW5Db250YWluZXIsIHByaW50ZXJE
UEkpKTsKKyAgICAgICAgbV9wcmludENvbnRleHQgPSBhZG9wdFB0cihuZXcgQ2hyb21lUGx1Z2lu
UHJpbnRDb250ZXh0KGZyYW1lKCksIHBsdWdpbkNvbnRhaW5lciwgcHJpbnRlckRQSSwgcHJpbnRh
YmxlQXJlYSwgcGFwZXJTaXplLCBwcmludFNjYWxpbmdPcHRpb24pKTsKICAgICBlbHNlCiAgICAg
ICAgIG1fcHJpbnRDb250ZXh0ID0gYWRvcHRQdHIobmV3IENocm9tZVByaW50Q29udGV4dChmcmFt
ZSgpKSk7CiAKLSAgICBGbG9hdFJlY3QgcmVjdCgwLCAwLCBzdGF0aWNfY2FzdDxmbG9hdD4ocGFn
ZVNpemUud2lkdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0
PihwYWdlU2l6ZS5oZWlnaHQpKTsKKyAgICBGbG9hdFJlY3QgcmVjdCgwLCAwLCBzdGF0aWNfY2Fz
dDxmbG9hdD4ocHJpbnRDb250ZW50U2l6ZS53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHByaW50Q29udGVudFNpemUuaGVpZ2h0KSk7CiAgICAgbV9w
cmludENvbnRleHQtPmJlZ2luKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgZmxv
YXQgcGFnZUhlaWdodDsKICAgICAvLyBXZSBpZ25vcmUgdGhlIG92ZXJsYXlzIGNhbGN1bGF0aW9u
IGZvciBub3cgc2luY2UgdGhleSBhcmUgZ2VuZXJhdGVkIGluIHRoZQpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJKHJldmlzaW9uIDExNTU5NykKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzYsMTAgKzE3NiwyMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNlbGVjdFdvcmRB
cm91bmRDYXJldCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RSYW5nZShjb25zdCBXZWJQb2lu
dCYgc3RhcnQsIGNvbnN0IFdlYlBvaW50JiBlbmQpOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RS
YW5nZShjb25zdCBXZWJSYW5nZSYpOwotICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3Qg
V2ViU2l6ZSYgcGFnZVNpemUsCisgICAgLy8gVE9ETyhrbWFkaHVzdUBjaHJvbWl1bS5vcmcpOiBS
ZW1vdmUgdGhpcyBmdW5jdGlvbiBhZnRlciBmaXhpbmcKKyAgICAvLyBjcmJ1Zy5jb20vODUxMzIu
IEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgcGxlYXNlIHJlZmVyIHRvIHRoZSBjb21tZW50cwor
ICAgIC8vIGluIFdlYkZyYW1lLmgKKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdl
YlNpemUmIHByaW50Q29udGVudFNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXZWJOb2RlJiBjb25zdHJhaW5Ub05vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgcHJpbnRlckRQSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dz
ZXJPdmVybGF5cyk7CisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBw
cmludENvbnRlbnRTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViUmVj
dCYgcHJpbnRhYmxlQXJlYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlNp
emUmIHBhcGVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUm
IGNvbnN0cmFpblRvTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVy
RFBJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIHBh
Z2VTY2FsaW5nT3B0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJv
d3Nlck92ZXJsYXlzKTsKICAgICB2aXJ0dWFsIGZsb2F0IHByaW50UGFnZShpbnQgcGFnZVRvUHJp
bnQsIFdlYkNhbnZhcyopOwogICAgIHZpcnR1YWwgZmxvYXQgZ2V0UHJpbnRQYWdlU2hyaW5rKGlu
dCBwYWdlKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnRFbmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCShy
ZXZpc2lvbiAxMTU1OTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5D
b250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ5LDEwICsyNDksMTMgQEAgYm9v
bCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjppc1ByaW50U2NhbAogICAgIHJldHVybiBtX3dlYlBs
dWdpbi0+aXNQcmludFNjYWxpbmdEaXNhYmxlZCgpOwogfQogCi1pbnQgV2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6cHJpbnRCZWdpbihjb25zdCBJbnRSZWN0JiBwcmludGFibGVBcmVhLAoraW50IFdl
YlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50QmVnaW4oY29uc3QgSW50UmVjdCYgcHJpbnRDb250
ZW50UmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElu
dFJlY3QmIHByaW50YWJsZUFyZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBJbnRTaXplJiBwYXBlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJQcmludFNjYWxpbmdPcHRpb24gc2NhbGluZ09wdGlvbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJKSBjb25zdAog
ewotICAgIHJldHVybiBtX3dlYlBsdWdpbi0+cHJpbnRCZWdpbihwcmludGFibGVBcmVhLCBwcmlu
dGVyRFBJKTsKKyAgICByZXR1cm4gbV93ZWJQbHVnaW4tPnByaW50QmVnaW4ocHJpbnRDb250ZW50
UmVjdCwgcHJpbnRhYmxlQXJlYSwgcGFwZXJTaXplLCBzY2FsaW5nT3B0aW9uLCBwcmludGVyRFBJ
KTsKIH0KIAogYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludFBhZ2UoaW50IHBhZ2VO
dW1iZXIsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5oCShyZXZpc2lvbiAxMTU1OTcpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiV2Vi
UGx1Z2luQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiV2ViUHJpbnRTY2FsaW5nT3B0aW9uLmgiCiAj
aW5jbHVkZSAiV2lkZ2V0LmgiCiAKICNpbmNsdWRlIDxwdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJl
TGF5ZXIuaD4KQEAgLTEyMyw3ICsxMjQsMTEgQEAgcHVibGljOgogICAgIC8vIFNldHMgdXAgcHJp
bnRpbmcgYXQgdGhlIGdpdmVuIHByaW50IHJlY3QgYW5kIHByaW50ZXIgRFBJLiBwcmludGFibGVB
cmVhCiAgICAgLy8gaXMgaW4gcG9pbnRzIChhIHBvaW50IGlzIDEvNzIgb2YgYW4gaW5jaCkuUmV0
dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRvCiAgICAgLy8gYmUgcHJpbnRlZCBhdCB0aGVzZSBz
ZXR0aW5ncy4KLSAgICBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwcmlu
dGFibGVBcmVhLCBpbnQgcHJpbnRlckRQSSkgY29uc3Q7CisgICAgaW50IHByaW50QmVnaW4oY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgcHJpbnRDb250ZW50UmVjdCwKKyAgICAgICAgICAgICAgICAg
ICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwcmludGFibGVBcmVhLAorICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHBhcGVyU2l6ZSwKKyAgICAgICAgICAgICAgICAg
ICBXZWJQcmludFNjYWxpbmdPcHRpb24gcGFnZVNjYWxpbmdPcHRpb24sCisgICAgICAgICAgICAg
ICAgICAgaW50IHByaW50ZXJEUEkpIGNvbnN0OwogICAgIC8vIFByaW50cyB0aGUgcGFnZSBzcGVj
aWZpZWQgYnkgcGFnZU51bWJlciAoMC1iYXNlZCBpbmRleCkgaW50byB0aGUgc3VwcGxpZWQgY2Fu
dmFzLgogICAgIGJvb2wgcHJpbnRQYWdlKGludCBwYWdlTnVtYmVyLCBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQqIGdjKTsKICAgICAvLyBFbmRzIHRoZSBwcmludCBvcGVyYXRpb24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141493</attachid>
            <date>2012-05-11 14:04:44 -0700</date>
            <delta_ts>2012-05-11 14:16:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84312-20120511140443.patch</filename>
            <type>text/plain</type>
            <size>18271</size>
            <attacher name="kmadhusu">kmadhusu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTY3OTgpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3
IEBACisyMDEyLTA1LTExICBLYXVzYWx5YSBNYWRodXN1ZGhhbmFuICA8a21hZGh1c3VAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT3ZlcmxvYWRlZCBwcmludEJlZ2luKCkgZnVu
Y3Rpb24gdG8gc3VwcG9ydCBhdXRvIGZpdCB0byBwYWdlIGZ1bmN0aW9uYWxpdHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJGcmFtZSk6CisgICAgICAgICogcHVibGljL1dlYlBsdWdpbi5oOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYlBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbjo6cHJp
bnRCZWdpbik6CisgICAgICAgICogcHVibGljL1dlYlByaW50UGFyYW1zLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlByaW50UGFyYW1zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJpbnRQYXJhbXM6OldlYlByaW50UGFyYW1zKToKKyAgICAgICAgKiBzcmMvV2ViRnJh
bWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjpD
aHJvbWVQbHVnaW5QcmludENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQbHVnaW5Q
cmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgorICAgICAgICAoQ2hyb21lUGx1Z2luUHJp
bnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
SW1wbDo6cHJpbnRCZWdpbik6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkZyYW1lSW1wbCk6CisgICAgICAgICogc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjpwcmludEJlZ2luKToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwp
OgorCiAyMDEyLTA1LTExICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gRW5zdXJlIHRoYXQgYW5pbWF0aW9ucyBjb250aW51ZSB0byBydW4g
d2hlbiB0cmFuc2Zvcm0tc3R5bGUgaXMgY2hhbmdlZApJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAkocmV2aXNpb24gMTE2NjU3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMsNiArMjIzLDcgQEAKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlBsdWdpbkRvY3VtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGx1Z2lu
TGlzdEJ1aWxkZXIuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQcmludFBhcmFtcy5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlByaW50U2NhbGluZ09wdGlvbi5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlBvcHVwTWVudS5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlBvcHVwTWVudUluZm8uaCcsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDExNjY1NykKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDcgQEAg
Y2xhc3MgV2ViVmlldzsKIHN0cnVjdCBXZWJDb25zb2xlTWVzc2FnZTsKIHN0cnVjdCBXZWJGaW5k
T3B0aW9uczsKIHN0cnVjdCBXZWJQb2ludDsKK3N0cnVjdCBXZWJQcmludFBhcmFtczsKIHN0cnVj
dCBXZWJSZWN0Owogc3RydWN0IFdlYlNjcmlwdFNvdXJjZTsKIHN0cnVjdCBXZWJTaXplOwpAQCAt
NDUyLDE5ICs0NTMsMzUgQEAgcHVibGljOgogCiAgICAgLy8gUHJpbnRpbmcgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICAv
LyBSZWZvcm1hdHMgdGhlIFdlYkZyYW1lIGZvciBwcmludGluZy4gcGFnZVNpemUgaXMgdGhlIHBh
Z2Ugc2l6ZSBpbgotICAgIC8vIHBvaW50cyAoYSBwb2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBJ
ZiB8Y29uc3RyYWluVG9Ob2RlfCBub2RlIGlzCi0gICAgLy8gc3BlY2lmaWVkLCB0aGVuIG9ubHkg
dGhlIGdpdmVuIG5vZGUgaXMgcHJpbnRlZCAoZm9yIG5vdyBvbmx5IHBsdWdpbnMgYXJlCi0gICAg
Ly8gc3VwcG9ydGVkKSwgaW5zdGVhZCBvZiB0aGUgZW50aXJlIGZyYW1lLiAgcHJpbnRlckRQSSBp
cyB0aGUgdXNlcgotICAgIC8vIHNlbGVjdGVkLCBEUEkgZm9yIHRoZSBwcmludGVyLiBSZXR1cm5z
IHRoZSBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW4gYmUKLSAgICAvLyBwcmludGVkIGF0IHRoZSBn
aXZlbiBwYWdlIHNpemUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92ZXJsYXlzCisgICAgLy8g
UmVmb3JtYXRzIHRoZSBXZWJGcmFtZSBmb3IgcHJpbnRpbmcuIHByaW50Q29udGVudFNpemUgaXMg
dGhlIHByaW50CisgICAgLy8gY29udGVudCBzaXplIGluIHBvaW50cyAoYSBwb2ludCBpbiAxLzcy
IG9mIGFuIGluY2gpLiBJZiBjb25zdHJhaW5Ub05vZGUKKyAgICAvLyBub2RlIGlzIHNwZWNpZmll
ZCwgdGhlbiBvbmx5IHRoZSBnaXZlbiBub2RlIGlzIHByaW50ZWQgKGZvciBub3cgb25seQorICAg
IC8vIHBsdWdpbnMgYXJlIHN1cHBvcnRlZCksIGluc3RlYWQgb2YgdGhlIGVudGlyZSBmcmFtZS4g
cHJpbnRlckRQSSBpcyB0aGUKKyAgICAvLyB1c2VyIHNlbGVjdGVkLCBEUEkgZm9yIHRoZSBwcmlu
dGVyLiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW4KKyAgICAvLyBiZSBwcmlu
dGVkIGF0IHRoZSBnaXZlbiBwYWdlIHNpemUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92ZXJs
YXlzCiAgICAgLy8gc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgcHJvY2VzcyBzaG91bGQg
dXNlIGl0cyBvdmVybGF5cyAoaGVhZGVyLAogICAgIC8vIGZvb3RlciwgbWFyZ2lucyBldGMpIG9y
IHdoZXRoZXIgdGhlIHJlbmRlcmVyIGNvbnRyb2xzIHRoaXMuCi0gICAgdmlydHVhbCBpbnQgcHJp
bnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAvLworICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGEgdGVtcG9yYXJ5IGludGVyZmFjZSB0byBhdm9pZCB0aGUgY29tcGlsZSBlcnJvcnMu
IFJlbW92ZQorICAgIC8vIHRoaXMgaW50ZXJmYWNlIGFmdGVyIGZpeGluZyBjcmJ1Zy5jb20vODUx
MzIuIFdlIHdpbGwgdXNlIHRoZSBvdmVybG9hZGVkCisgICAgLy8gcHJpbnRCZWdpbiBmdW5jdGlv
bi4KKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVu
dFNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJOb2RlJiBjb25zdHJh
aW5Ub05vZGUgPSBXZWJOb2RlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJp
bnRlckRQSSA9IDcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nl
ck92ZXJsYXlzID0gMCkgPSAwOwogCisgICAgLy8gUmVmb3JtYXRzIHRoZSBXZWJGcmFtZSBmb3Ig
cHJpbnRpbmcuIFdlYlByaW50UGFyYW1zIHNwZWNpZmllcyB0aGUgcHJpbnRhYmxlCisgICAgLy8g
Y29udGVudCBzaXplLCBwYXBlciBzaXplLCBwcmludGFibGUgYXJlYSBzaXplLCBwcmludGVyIERQ
SSBhbmQgcHJpbnQKKyAgICAvLyBzY2FsaW5nIG9wdGlvbi4gSWYgY29uc3RyYWluVG9Ob2RlIG5v
ZGUgaXMgc3BlY2lmaWVkLCB0aGVuIG9ubHkgdGhlIGdpdmVuIG5vZGUKKyAgICAvLyBpcyBwcmlu
dGVkIChmb3Igbm93IG9ubHkgcGx1Z2lucyBhcmUgc3VwcG9ydGVkKSwgaW5zdGVhZCBvZiB0aGUg
ZW50aXJlIGZyYW1lLgorICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNh
biBiZSBwcmludGVkIGF0IHRoZSBnaXZlbgorICAgIC8vIHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJh
bSB1c2VCcm93c2VyT3ZlcmxheXMgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIKKyAgICAv
LyBwcm9jZXNzIHNob3VsZCB1c2UgaXRzIG92ZXJsYXlzIChoZWFkZXIsIGZvb3RlciwgbWFyZ2lu
cyBldGMpIG9yIHdoZXRoZXIKKyAgICAvLyB0aGUgcmVuZGVyZXIgY29udHJvbHMgdGhpcy4KKyAg
ICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlByaW50UGFyYW1zJiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9kZSA9IFdlYk5v
ZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5
cyA9IDApID0gMDsKKwogICAgIC8vIFJldHVybnMgdGhlIHBhZ2Ugc2hyaW5raW5nIGZhY3RvciBj
YWxjdWxhdGVkIGJ5IHdlYmtpdCAodXN1YWxseQogICAgIC8vIGJldHdlZW4gMS8xLjI1IGFuZCAx
LzIpLiBSZXR1cm5zIDAgaWYgdGhlIHBhZ2UgbnVtYmVyIGlzIGludmFsaWQgb3IKICAgICAvLyBu
b3QgaW4gcHJpbnRpbmcgbW9kZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlBsdWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlBsdWdpbi5oCShyZXZpc2lvbiAxMTY2NTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJQbHVnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lm
bmRlZiBXZWJQbHVnaW5faAogI2RlZmluZSBXZWJQbHVnaW5faAogCisjaW5jbHVkZSAiV2ViUHJp
bnRTY2FsaW5nT3B0aW9uLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ2FudmFzLmgiCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgi
CkBAIC00Niw2ICs0Nyw3IEBAIGNsYXNzIFdlYlBsdWdpbkNvbnRhaW5lcjsKIGNsYXNzIFdlYlVS
TFJlc3BvbnNlOwogc3RydWN0IFdlYkN1cnNvckluZm87CiBzdHJ1Y3QgV2ViUGx1Z2luUGFyYW1z
Oworc3RydWN0IFdlYlByaW50UGFyYW1zOwogc3RydWN0IFdlYlBvaW50Owogc3RydWN0IFdlYlJl
Y3Q7CiBzdHJ1Y3QgV2ViVVJMRXJyb3I7CkBAIC05NCwxMCArOTYsMTcgQEAgcHVibGljOgogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJpbnRlZCBjb250ZW50IHNob3VsZCBub3QgYmUgc2Nh
bGVkIHRvCiAgICAgLy8gdGhlIHByaW50ZXIncyBwcmludGFibGUgYXJlYS4KICAgICB2aXJ0dWFs
IGJvb2wgaXNQcmludFNjYWxpbmdEaXNhYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgLy8g
U2V0cyB1cCBwcmludGluZyBhdCB0aGUgZ2l2ZW4gcHJpbnQgcmVjdCBhbmQgcHJpbnRlciBEUEku
IHByaW50YWJsZUFyZWEKLSAgICAvLyBpcyBpbiBwb2ludHMgKGEgcG9pbnQgaXMgMS83MiBvZiBh
biBpbmNoKS5SZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgdG8KLSAgICAvLyBiZSBwcmludGVk
IGF0IHRoZXNlIHNldHRpbmdzLgotICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2Vi
UmVjdCYgcHJpbnRhYmxlQXJlYSwgaW50IHByaW50ZXJEUEkpIHsgcmV0dXJuIDA7IH0KKworICAg
IC8vIFNldHMgdXAgcHJpbnRpbmcgYXQgdGhlIGdpdmVuIHByaW50IHJlY3QgYW5kIHByaW50ZXIg
RFBJLgorICAgIC8vIHByaW50Q29udGVudEFyZWEgaXMgaW4gcG9pbnRzICggYSBwb2ludCBpcyAx
LzcyIG9mIGFuIGluY2gpLiBSZXR1cm5zIHRoZQorICAgIC8vIG51bWJlciBvZiBwYWdlcyB0byBi
ZSBwcmludGVkIGF0IHRoZXNlIHNldHRpbmdzLgorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBm
dW5jdGlvbiBhZnRlciBmaXhpbmcgY3JidWcuY29tLzg1MTMyLiBGb3IgZGV0YWlsZWQKKyAgICAv
LyBpbmZvcm1hdGlvbiwgcGxlYXNlIHJlZmVyIHRvIHRoZSBjb21tZW50cyBpbiBXZWJGcmFtZS5o
CisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJSZWN0JiBwcmludENvbnRlbnRB
cmVhLCBpbnQgcHJpbnRlckRQSSkgeyByZXR1cm4gMDsgfQorICAgIC8vIFNldHMgdXAgcHJpbnRp
bmcgd2l0aCB0aGUgc3BlY2lmaWVkIHByaW50UGFyYW1zLiBSZXR1cm5zIHRoZSBudW1iZXIgb2YK
KyAgICAvLyBwYWdlcyB0byBiZSBwcmludGVkIGF0IHRoZXNlIHNldHRpbmdzLgorICAgIHZpcnR1
YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViUHJpbnRQYXJhbXMmIHByaW50UGFyYW1zKSB7IHJl
dHVybiAwOyB9CisKICAgICAvLyBQcmludHMgdGhlIHBhZ2Ugc3BlY2lmaWVkIGJ5IHBhZ2VOdW1i
ZXIgKDAtYmFzZWQgaW5kZXgpIGludG8gdGhlIHN1cHBsaWVkIGNhbnZhcy4KICAgICB2aXJ0dWFs
IGJvb2wgcHJpbnRQYWdlKGludCBwYWdlTnVtYmVyLCBXZWJDYW52YXMqIGNhbnZhcykgeyByZXR1
cm4gZmFsc2U7IH0KICAgICAvLyBFbmRzIHRoZSBwcmludCBvcGVyYXRpb24uCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQcmludFBhcmFtcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlByaW50UGFyYW1zLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQcmludFBhcmFtcy5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQcmludFBhcmFtc19oCisjZGVm
aW5lIFdlYlByaW50UGFyYW1zX2gKKworI2luY2x1ZGUgIldlYlByaW50U2NhbGluZ09wdGlvbi5o
IgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYlJlY3QuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJT
aXplLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgV2ViUHJpbnRQYXJhbXMgewor
ICAgIC8vIFNwZWNpZmllcyBwcmludGFibGUgY29udGVudCByZWN0IGluIHBvaW50cyAoYSBwb2lu
dCBpcyAxLzcyIG9mIGFuIGluY2gpLgorICAgIFdlYlJlY3QgcHJpbnRDb250ZW50QXJlYTsKKwor
ICAgIC8vIFNwZWNpZmllcyB0aGUgc2VsZWN0ZWQgcHJpbnRlciBkZWZhdWx0IHByaW50YWJsZSBh
cmVhIGRldGFpbHMgaW4KKyAgICAvLyBwb2ludHMuCisgICAgV2ViUmVjdCBwcmludGFibGVBcmVh
OworCisgICAgLy8gU3BlY2lmaWVzIHRoZSBzZWxlY3RlZCBwcmludGVyIGRlZmF1bHQgcGFwZXIg
c2l6ZSBpbiBwb2ludHMuCisgICAgV2ViU2l6ZSBwYXBlclNpemU7CisKKyAgICAvLyBTcGVjaWZp
ZXMgdXNlciBzZWxlY3RlZCBEUEkgZm9yIHByaW50aW5nLgorICAgIGludCBwcmludGVyRFBJOwor
CisgICAgLy8gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmVkdWNlL2VubGFyZ2UvcmV0YWluIHRoZSBw
cmludCBjb250ZW50cyB0byBmaXQgdGhlCisgICAgLy8gcHJpbnRhYmxlIGFyZWEuIChUaGlzIGlz
IHVzZWQgb25seSBieSBwbHVnaW4gcHJpbnRpbmcpLgorICAgIFdlYlByaW50U2NhbGluZ09wdGlv
biBwcmludFNjYWxpbmdPcHRpb247CisKKyAgICBXZWJQcmludFBhcmFtcygpCisgICAgICA6IHBy
aW50ZXJEUEkoNzIpCisgICAgICAgICwgcHJpbnRTY2FsaW5nT3B0aW9uKFdlYlByaW50U2NhbGlu
Z09wdGlvbkZpdFRvUHJpbnRhYmxlQXJlYSkgeyB9CisKKyAgICBXZWJQcmludFBhcmFtcyhjb25z
dCBXZWJSZWN0JiBwcmludENvbnRlbnRBcmVhLCBjb25zdCBXZWJSZWN0JiBwcmludGFibGVBcmVh
LCBjb25zdCBXZWJTaXplJiBwYXBlclNpemUsIGludCBwcmludGVyRFBJLCBXZWJQcmludFNjYWxp
bmdPcHRpb24gcHJpbnRTY2FsaW5nT3B0aW9uKQorICAgICAgICA6IHByaW50Q29udGVudEFyZWEo
cHJpbnRDb250ZW50QXJlYSkKKyAgICAgICAgICAsIHByaW50YWJsZUFyZWEocHJpbnRhYmxlQXJl
YSkKKyAgICAgICAgICAsIHBhcGVyU2l6ZShwYXBlclNpemUpCisgICAgICAgICAgLCBwcmludGVy
RFBJKHByaW50ZXJEUEkpCisgICAgICAgICAgLCBwcmludFNjYWxpbmdPcHRpb24ocHJpbnRTY2Fs
aW5nT3B0aW9uKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKClBy
b3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlByaW50
UGFyYW1zLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCShyZXZpc2lvbiAx
MTY2NTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTMsNiArMTUzLDcgQEAKICNpbmNsdWRlICJXZWJQZXJmb3JtYW5j
ZS5oIgogI2luY2x1ZGUgIldlYlBsdWdpbi5oIgogI2luY2x1ZGUgIldlYlBsdWdpbkNvbnRhaW5l
ckltcGwuaCIKKyNpbmNsdWRlICJXZWJQcmludFBhcmFtcy5oIgogI2luY2x1ZGUgIldlYlJhbmdl
LmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0U291cmNlLmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlP
cmlnaW4uaCIKQEAgLTQ0Myw4ICs0NDQsOCBAQCBwcml2YXRlOgogLy8gd2FudCB0byBkZWxlZ2F0
ZSBhbGwgcHJpbnRpbmcgcmVsYXRlZCBjYWxscyB0byB0aGUgcGx1Z2luLgogY2xhc3MgQ2hyb21l
UGx1Z2luUHJpbnRDb250ZXh0IDogcHVibGljIENocm9tZVByaW50Q29udGV4dCB7CiBwdWJsaWM6
Ci0gICAgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KEZyYW1lKiBmcmFtZSwgV2ViUGx1Z2luQ29u
dGFpbmVySW1wbCogcGx1Z2luLCBpbnQgcHJpbnRlckRQSSkKLSAgICAgICAgOiBDaHJvbWVQcmlu
dENvbnRleHQoZnJhbWUpLCBtX3BsdWdpbihwbHVnaW4pLCBtX3BhZ2VDb3VudCgwKSwgbV9wcmlu
dGVyRFBJKHByaW50ZXJEUEkpCisgICAgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KEZyYW1lKiBm
cmFtZSwgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luLCBjb25zdCBXZWJQcmludFBhcmFt
cyYgcHJpbnRQYXJhbXMpCisgICAgICAgIDogQ2hyb21lUHJpbnRDb250ZXh0KGZyYW1lKSwgbV9w
bHVnaW4ocGx1Z2luKSwgbV9wYWdlQ291bnQoMCksIG1fcHJpbnRQYXJhbXMocHJpbnRQYXJhbXMp
CiAgICAgewogICAgIH0KIApAQCAtNDY3LDcgKzQ2OCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlUGFnZVJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgcHJpbnRSZWN0LCBmbG9h
dCBoZWFkZXJIZWlnaHQsIGZsb2F0IGZvb3RlckhlaWdodCwgZmxvYXQgdXNlclNjYWxlRmFjdG9y
LCBmbG9hdCYgb3V0UGFnZUhlaWdodCkKICAgICB7Ci0gICAgICAgIG1fcGFnZUNvdW50ID0gbV9w
bHVnaW4tPnByaW50QmVnaW4oSW50UmVjdChwcmludFJlY3QpLCBtX3ByaW50ZXJEUEkpOworICAg
ICAgICBtX3ByaW50UGFyYW1zLnByaW50Q29udGVudEFyZWEgPSBJbnRSZWN0KHByaW50UmVjdCk7
CisgICAgICAgIG1fcGFnZUNvdW50ID0gbV9wbHVnaW4tPnByaW50QmVnaW4obV9wcmludFBhcmFt
cyk7CiAgICAgfQogCiAgICAgdmlydHVhbCBpbnQgcGFnZUNvdW50KCkgY29uc3QKQEAgLTQ5Myw3
ICs0OTUsOSBAQCBwcml2YXRlOgogICAgIC8vIFNldCB3aGVuIHByaW50aW5nLgogICAgIFdlYlBs
dWdpbkNvbnRhaW5lckltcGwqIG1fcGx1Z2luOwogICAgIGludCBtX3BhZ2VDb3VudDsKLSAgICBp
bnQgbV9wcmludGVyRFBJOworICAgIFdlYlByaW50UGFyYW1zIG1fcHJpbnRQYXJhbXM7CisgICAg
V2ViUHJpbnRTY2FsaW5nT3B0aW9uIG1fcHJpbnRTY2FsaW5nT3B0aW9uOworCiB9OwogCiBzdGF0
aWMgV2ViRGF0YVNvdXJjZSogRGF0YVNvdXJjZUZvckRvY0xvYWRlcihEb2N1bWVudExvYWRlciog
bG9hZGVyKQpAQCAtMTQzOCw5ICsxNDQyLDIzIEBAIFZpc2libGVQb3NpdGlvbiBXZWJGcmFtZUlt
cGw6OnZpc2libGVQb3MKICAgICByZXR1cm4gbm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQ
b2ludChyZXN1bHQubG9jYWxQb2ludCgpKTsKIH0KIAotaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRC
ZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSwKKy8vIFRPRE8oa21hZGh1c3VAY2hyb21pdW0u
b3JnKTogUmVtb3ZlIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgZml4aW5nCisvLyBjcmJ1Zy5jb20vODUx
MzIuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlIGNvbW1lbnRzIGlu
CisvLyBXZWJGcmFtZS5oCitpbnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNp
emUmIHByaW50Q29udGVudFNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IHByaW50ZXJEUEksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJy
b3dzZXJPdmVybGF5cykgeworICAgIFdlYlJlY3QgcHJpbnRhYmxlQXJlYSgwLCAwLCBwcmludENv
bnRlbnRTaXplLndpZHRoLCBwcmludENvbnRlbnRTaXplLmhlaWdodCk7CisgICAgV2ViU2l6ZSBw
YXBlclNpemUocHJpbnRDb250ZW50U2l6ZSk7CisgICAgV2ViUmVjdCBwcmludENvbnRlbnRBcmVh
KDAsIDAsIHByaW50Q29udGVudFNpemUud2lkdGgsIHByaW50Q29udGVudFNpemUuaGVpZ2h0KTsK
KyAgICBXZWJQcmludFBhcmFtcyBwcmludFBhcmFtcyhwcmludENvbnRlbnRBcmVhLCBwcmludGFi
bGVBcmVhLCBwYXBlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRl
ckRQSSwgV2ViUHJpbnRTY2FsaW5nT3B0aW9uU291cmNlU2l6ZSk7CisgICAgcmV0dXJuIHByaW50
QmVnaW4ocHJpbnRQYXJhbXMsIGNvbnN0cmFpblRvTm9kZSwgdXNlQnJvd3Nlck92ZXJsYXlzKTsK
K30KKworaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJQcmludFBhcmFtcyYg
cHJpbnRQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUm
IGNvbnN0cmFpblRvTm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNl
QnJvd3Nlck92ZXJsYXlzKQogewogICAgIEFTU0VSVCghZnJhbWUoKS0+ZG9jdW1lbnQoKS0+aXNG
cmFtZVNldCgpKTsKQEAgLTE0NTUsMTIgKzE0NzMsMTIgQEAgaW50IFdlYkZyYW1lSW1wbDo6cHJp
bnRCZWdpbihjb25zdCBXZWJTaQogICAgIH0KIAogICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYg
cGx1Z2luQ29udGFpbmVyLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgIG1fcHJp
bnRDb250ZXh0ID0gYWRvcHRQdHIobmV3IENocm9tZVBsdWdpblByaW50Q29udGV4dChmcmFtZSgp
LCBwbHVnaW5Db250YWluZXIsIHByaW50ZXJEUEkpKTsKKyAgICAgICAgbV9wcmludENvbnRleHQg
PSBhZG9wdFB0cihuZXcgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHBsdWdpbkNv
bnRhaW5lciwgcHJpbnRQYXJhbXMpKTsKICAgICBlbHNlCiAgICAgICAgIG1fcHJpbnRDb250ZXh0
ID0gYWRvcHRQdHIobmV3IENocm9tZVByaW50Q29udGV4dChmcmFtZSgpKSk7CiAKLSAgICBGbG9h
dFJlY3QgcmVjdCgwLCAwLCBzdGF0aWNfY2FzdDxmbG9hdD4ocGFnZVNpemUud2lkdGgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0PihwYWdlU2l6ZS5oZWlnaHQp
KTsKKyAgICBGbG9hdFJlY3QgcmVjdCgwLCAwLCBzdGF0aWNfY2FzdDxmbG9hdD4ocHJpbnRQYXJh
bXMucHJpbnRDb250ZW50QXJlYS53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHByaW50UGFyYW1zLnByaW50Q29udGVudEFyZWEuaGVpZ2h0KSk7CiAg
ICAgbV9wcmludENvbnRleHQtPmJlZ2luKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAg
ICAgZmxvYXQgcGFnZUhlaWdodDsKICAgICAvLyBXZSBpZ25vcmUgdGhlIG92ZXJsYXlzIGNhbGN1
bGF0aW9uIGZvciBub3cgc2luY2UgdGhleSBhcmUgZ2VuZXJhdGVkIGluIHRoZQpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJKHJldmlzaW9uIDExNjY1NykK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC02MSw2ICs2MSw3IEBAIGNsYXNzIFdlYlBlcmZvcm1hbmNlOwogY2xhc3MgV2ViUGx1
Z2luQ29udGFpbmVySW1wbDsKIGNsYXNzIFdlYlZpZXc7CiBjbGFzcyBXZWJWaWV3SW1wbDsKK3N0
cnVjdCBXZWJQcmludFBhcmFtczsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZl
Y3RvcjsKIApAQCAtMTc1LDEwICsxNzYsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RXb3JkQXJvdW5kQ2FyZXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0UmFuZ2UoY29u
c3QgV2ViUG9pbnQmIHN0YXJ0LCBjb25zdCBXZWJQb2ludCYgZW5kKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2VsZWN0UmFuZ2UoY29uc3QgV2ViUmFuZ2UmKTsKLSAgICB2aXJ0dWFsIGludCBwcmludEJl
Z2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBm
dW5jdGlvbiBhZnRlciBmaXhpbmcgY3JidWcuY29tLzg1MTMyLiBGb3IgZGV0YWlsZWQgCisgICAg
Ly8gaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgY29tbWVudHMgaW4gV2ViRnJhbWUu
aAorICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcHJpbnRDb250ZW50
U2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFp
blRvTm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmludGVyRFBJLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlzKTsKKyAgICB2
aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlByaW50UGFyYW1zJiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9kZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5cyk7CiAgICAgdmlydHVh
bCBmbG9hdCBwcmludFBhZ2UoaW50IHBhZ2VUb1ByaW50LCBXZWJDYW52YXMqKTsKICAgICB2aXJ0
dWFsIGZsb2F0IGdldFByaW50UGFnZVNocmluayhpbnQgcGFnZSk7CiAgICAgdmlydHVhbCB2b2lk
IHByaW50RW5kKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5D
b250YWluZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gMTE2NjU3KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTcyLDYgKzcyLDcgQEAKICNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgor
I2luY2x1ZGUgIldlYlByaW50UGFyYW1zLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogI2lu
Y2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDbGlwYm9hcmQu
aD4KQEAgLTI0OSwxMCArMjUwLDEyIEBAIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aXNQ
cmludFNjYWwKICAgICByZXR1cm4gbV93ZWJQbHVnaW4tPmlzUHJpbnRTY2FsaW5nRGlzYWJsZWQo
KTsKIH0KIAotaW50IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50QmVnaW4oY29uc3QgSW50
UmVjdCYgcHJpbnRhYmxlQXJlYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBwcmludGVyRFBJKSBjb25zdAoraW50IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnBy
aW50QmVnaW4oY29uc3QgV2ViUHJpbnRQYXJhbXMmIHByaW50UGFyYW1zKSBjb25zdAogewotICAg
IHJldHVybiBtX3dlYlBsdWdpbi0+cHJpbnRCZWdpbihwcmludGFibGVBcmVhLCBwcmludGVyRFBJ
KTsKKyAgICByZXR1cm4gbV93ZWJQbHVnaW4tPnByaW50QmVnaW4ocHJpbnRQYXJhbXMucHJpbnRD
b250ZW50QXJlYSwgcHJpbnRQYXJhbXMucHJpbnRlckRQSSk7CisgICAgLy8gRklYTUU6IEFmdGVy
IGNvbW1pdHRpbmcgdGhpcyBDTCwgdXBkYXRlIHRoZSBjaHJvbWUgcGx1Z2luIHByaW50QmVnaW4o
KQorICAgIC8vIGZ1bmN0aW9uIHRvIHVzZSB0aGUgb3ZlcmxvYWRlZCBwcmludEJlZ2luIGZ1bmN0
aW9uLgorICAgIC8vIHJldHVybiBtX3dlYlBsdWdpbi0+cHJpbnRCZWdpbihwcmludFBhcmFtcyk7
CiB9CiAKIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRQYWdlKGludCBwYWdlTnVt
YmVyLApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVy
SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuaAkocmV2aXNpb24gMTE2NjU3KQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2
ICs2MSw4IEBAIGNsYXNzIFBsYXRmb3JtR2VzdHVyZUV2ZW50OwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAorc3RydWN0IFdlYlByaW50UGFyYW1zOworCiBjbGFzcyBTY3JvbGxiYXJHcm91cDsKIGNs
YXNzIFdlYlBsdWdpbjsKIGNsYXNzIFdlYlBsdWdpbkxvYWRPYnNlcnZlcjsKQEAgLTEyMCwxMCAr
MTIyLDggQEAgcHVibGljOgogICAgIC8vIElmIHRoZSBwbHVnaW4gY29udGVudCBzaG91bGQgbm90
IGJlIHNjYWxlZCB0byB0aGUgcHJpbnRhYmxlIGFyZWEgb2YKICAgICAvLyB0aGUgcGFnZSwgdGhl
biB0aGlzIG1ldGhvZCBzaG91bGQgcmV0dXJuIHRydWUuCiAgICAgYm9vbCBpc1ByaW50U2NhbGlu
Z0Rpc2FibGVkKCkgY29uc3Q7Ci0gICAgLy8gU2V0cyB1cCBwcmludGluZyBhdCB0aGUgZ2l2ZW4g
cHJpbnQgcmVjdCBhbmQgcHJpbnRlciBEUEkuIHByaW50YWJsZUFyZWEKLSAgICAvLyBpcyBpbiBw
b2ludHMgKGEgcG9pbnQgaXMgMS83MiBvZiBhbiBpbmNoKS5SZXR1cm5zIHRoZSBudW1iZXIgb2Yg
cGFnZXMgdG8KLSAgICAvLyBiZSBwcmludGVkIGF0IHRoZXNlIHNldHRpbmdzLgotICAgIGludCBw
cmludEJlZ2luKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHByaW50YWJsZUFyZWEsIGludCBwcmlu
dGVyRFBJKSBjb25zdDsKKyAgICAvLyBTZXRzIHVwIHByaW50aW5nIGF0IHRoZSBzcGVjaWZpZWQg
cHJpbnQgcGFyYW1zLiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgdG8gYmUgcHJpbnRlZCBh
dCB0aGVzZSBzZXR0aW5ncy4KKyAgICBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJQcmludFBhcmFt
cyYpIGNvbnN0OwogICAgIC8vIFByaW50cyB0aGUgcGFnZSBzcGVjaWZpZWQgYnkgcGFnZU51bWJl
ciAoMC1iYXNlZCBpbmRleCkgaW50byB0aGUgc3VwcGxpZWQgY2FudmFzLgogICAgIGJvb2wgcHJp
bnRQYWdlKGludCBwYWdlTnVtYmVyLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqIGdjKTsKICAg
ICAvLyBFbmRzIHRoZSBwcmludCBvcGVyYXRpb24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141495</attachid>
            <date>2012-05-11 14:16:05 -0700</date>
            <delta_ts>2012-05-15 14:48:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84312-20120511141604.patch</filename>
            <type>text/plain</type>
            <size>18081</size>
            <attacher name="kmadhusu">kmadhusu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTY3OTgpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3
IEBACisyMDEyLTA1LTExICBLYXVzYWx5YSBNYWRodXN1ZGhhbmFuICA8a21hZGh1c3VAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT3ZlcmxvYWRlZCBwcmludEJlZ2luKCkgZnVu
Y3Rpb24gdG8gc3VwcG9ydCBhdXRvIGZpdCB0byBwYWdlIGZ1bmN0aW9uYWxpdHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJGcmFtZSk6CisgICAgICAgICogcHVibGljL1dlYlBsdWdpbi5oOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYlBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbjo6cHJp
bnRCZWdpbik6CisgICAgICAgICogcHVibGljL1dlYlByaW50UGFyYW1zLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlByaW50UGFyYW1zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJpbnRQYXJhbXM6OldlYlByaW50UGFyYW1zKToKKyAgICAgICAgKiBzcmMvV2ViRnJh
bWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjpD
aHJvbWVQbHVnaW5QcmludENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQbHVnaW5Q
cmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgorICAgICAgICAoQ2hyb21lUGx1Z2luUHJp
bnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
SW1wbDo6cHJpbnRCZWdpbik6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkZyYW1lSW1wbCk6CisgICAgICAgICogc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjpwcmludEJlZ2luKToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwp
OgorCiAyMDEyLTA1LTExICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gRW5zdXJlIHRoYXQgYW5pbWF0aW9ucyBjb250aW51ZSB0byBydW4g
d2hlbiB0cmFuc2Zvcm0tc3R5bGUgaXMgY2hhbmdlZApJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAkocmV2aXNpb24gMTE2NjU3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMsNiArMjIzLDcgQEAKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlBsdWdpbkRvY3VtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGx1Z2lu
TGlzdEJ1aWxkZXIuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQcmludFBhcmFtcy5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlByaW50U2NhbGluZ09wdGlvbi5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlBvcHVwTWVudS5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlBvcHVwTWVudUluZm8uaCcsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDExNjY1NykKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDcgQEAg
Y2xhc3MgV2ViVmlldzsKIHN0cnVjdCBXZWJDb25zb2xlTWVzc2FnZTsKIHN0cnVjdCBXZWJGaW5k
T3B0aW9uczsKIHN0cnVjdCBXZWJQb2ludDsKK3N0cnVjdCBXZWJQcmludFBhcmFtczsKIHN0cnVj
dCBXZWJSZWN0Owogc3RydWN0IFdlYlNjcmlwdFNvdXJjZTsKIHN0cnVjdCBXZWJTaXplOwpAQCAt
NDUyLDE5ICs0NTMsMzUgQEAgcHVibGljOgogCiAgICAgLy8gUHJpbnRpbmcgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICAv
LyBSZWZvcm1hdHMgdGhlIFdlYkZyYW1lIGZvciBwcmludGluZy4gcGFnZVNpemUgaXMgdGhlIHBh
Z2Ugc2l6ZSBpbgotICAgIC8vIHBvaW50cyAoYSBwb2ludCBpbiAxLzcyIG9mIGFuIGluY2gpLiBJ
ZiB8Y29uc3RyYWluVG9Ob2RlfCBub2RlIGlzCi0gICAgLy8gc3BlY2lmaWVkLCB0aGVuIG9ubHkg
dGhlIGdpdmVuIG5vZGUgaXMgcHJpbnRlZCAoZm9yIG5vdyBvbmx5IHBsdWdpbnMgYXJlCi0gICAg
Ly8gc3VwcG9ydGVkKSwgaW5zdGVhZCBvZiB0aGUgZW50aXJlIGZyYW1lLiAgcHJpbnRlckRQSSBp
cyB0aGUgdXNlcgotICAgIC8vIHNlbGVjdGVkLCBEUEkgZm9yIHRoZSBwcmludGVyLiBSZXR1cm5z
IHRoZSBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW4gYmUKLSAgICAvLyBwcmludGVkIGF0IHRoZSBn
aXZlbiBwYWdlIHNpemUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92ZXJsYXlzCisgICAgLy8g
UmVmb3JtYXRzIHRoZSBXZWJGcmFtZSBmb3IgcHJpbnRpbmcuIHByaW50Q29udGVudFNpemUgaXMg
dGhlIHByaW50CisgICAgLy8gY29udGVudCBzaXplIGluIHBvaW50cyAoYSBwb2ludCBpbiAxLzcy
IG9mIGFuIGluY2gpLiBJZiBjb25zdHJhaW5Ub05vZGUKKyAgICAvLyBub2RlIGlzIHNwZWNpZmll
ZCwgdGhlbiBvbmx5IHRoZSBnaXZlbiBub2RlIGlzIHByaW50ZWQgKGZvciBub3cgb25seQorICAg
IC8vIHBsdWdpbnMgYXJlIHN1cHBvcnRlZCksIGluc3RlYWQgb2YgdGhlIGVudGlyZSBmcmFtZS4g
cHJpbnRlckRQSSBpcyB0aGUKKyAgICAvLyB1c2VyIHNlbGVjdGVkLCBEUEkgZm9yIHRoZSBwcmlu
dGVyLiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW4KKyAgICAvLyBiZSBwcmlu
dGVkIGF0IHRoZSBnaXZlbiBwYWdlIHNpemUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92ZXJs
YXlzCiAgICAgLy8gc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgcHJvY2VzcyBzaG91bGQg
dXNlIGl0cyBvdmVybGF5cyAoaGVhZGVyLAogICAgIC8vIGZvb3RlciwgbWFyZ2lucyBldGMpIG9y
IHdoZXRoZXIgdGhlIHJlbmRlcmVyIGNvbnRyb2xzIHRoaXMuCi0gICAgdmlydHVhbCBpbnQgcHJp
bnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSwKKyAgICAvLworICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGEgdGVtcG9yYXJ5IGludGVyZmFjZSB0byBhdm9pZCB0aGUgY29tcGlsZSBlcnJvcnMu
IFJlbW92ZQorICAgIC8vIHRoaXMgaW50ZXJmYWNlIGFmdGVyIGZpeGluZyBjcmJ1Zy5jb20vODUx
MzIuIFdlIHdpbGwgdXNlIHRoZSBvdmVybG9hZGVkCisgICAgLy8gcHJpbnRCZWdpbiBmdW5jdGlv
bi4KKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHByaW50Q29udGVu
dFNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJOb2RlJiBjb25zdHJh
aW5Ub05vZGUgPSBXZWJOb2RlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJp
bnRlckRQSSA9IDcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nl
ck92ZXJsYXlzID0gMCkgPSAwOwogCisgICAgLy8gUmVmb3JtYXRzIHRoZSBXZWJGcmFtZSBmb3Ig
cHJpbnRpbmcuIFdlYlByaW50UGFyYW1zIHNwZWNpZmllcyB0aGUgcHJpbnRhYmxlCisgICAgLy8g
Y29udGVudCBzaXplLCBwYXBlciBzaXplLCBwcmludGFibGUgYXJlYSBzaXplLCBwcmludGVyIERQ
SSBhbmQgcHJpbnQKKyAgICAvLyBzY2FsaW5nIG9wdGlvbi4gSWYgY29uc3RyYWluVG9Ob2RlIG5v
ZGUgaXMgc3BlY2lmaWVkLCB0aGVuIG9ubHkgdGhlIGdpdmVuIG5vZGUKKyAgICAvLyBpcyBwcmlu
dGVkIChmb3Igbm93IG9ubHkgcGx1Z2lucyBhcmUgc3VwcG9ydGVkKSwgaW5zdGVhZCBvZiB0aGUg
ZW50aXJlIGZyYW1lLgorICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNh
biBiZSBwcmludGVkIGF0IHRoZSBnaXZlbgorICAgIC8vIHBhZ2Ugc2l6ZS4gVGhlIG91dCBwYXJh
bSB1c2VCcm93c2VyT3ZlcmxheXMgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIKKyAgICAv
LyBwcm9jZXNzIHNob3VsZCB1c2UgaXRzIG92ZXJsYXlzIChoZWFkZXIsIGZvb3RlciwgbWFyZ2lu
cyBldGMpIG9yIHdoZXRoZXIKKyAgICAvLyB0aGUgcmVuZGVyZXIgY29udHJvbHMgdGhpcy4KKyAg
ICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlByaW50UGFyYW1zJiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYk5vZGUmIGNvbnN0cmFpblRvTm9kZSA9IFdlYk5v
ZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5
cyA9IDApID0gMDsKKwogICAgIC8vIFJldHVybnMgdGhlIHBhZ2Ugc2hyaW5raW5nIGZhY3RvciBj
YWxjdWxhdGVkIGJ5IHdlYmtpdCAodXN1YWxseQogICAgIC8vIGJldHdlZW4gMS8xLjI1IGFuZCAx
LzIpLiBSZXR1cm5zIDAgaWYgdGhlIHBhZ2UgbnVtYmVyIGlzIGludmFsaWQgb3IKICAgICAvLyBu
b3QgaW4gcHJpbnRpbmcgbW9kZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlBsdWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlBsdWdpbi5oCShyZXZpc2lvbiAxMTY2NTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJQbHVnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBjbGFz
cyBXZWJQbHVnaW5Db250YWluZXI7CiBjbGFzcyBXZWJVUkxSZXNwb25zZTsKIHN0cnVjdCBXZWJD
dXJzb3JJbmZvOwogc3RydWN0IFdlYlBsdWdpblBhcmFtczsKK3N0cnVjdCBXZWJQcmludFBhcmFt
czsKIHN0cnVjdCBXZWJQb2ludDsKIHN0cnVjdCBXZWJSZWN0Owogc3RydWN0IFdlYlVSTEVycm9y
OwpAQCAtOTQsMTAgKzk1LDE3IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhl
IHByaW50ZWQgY29udGVudCBzaG91bGQgbm90IGJlIHNjYWxlZCB0bwogICAgIC8vIHRoZSBwcmlu
dGVyJ3MgcHJpbnRhYmxlIGFyZWEuCiAgICAgdmlydHVhbCBib29sIGlzUHJpbnRTY2FsaW5nRGlz
YWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIC8vIFNldHMgdXAgcHJpbnRpbmcgYXQgdGhl
IGdpdmVuIHByaW50IHJlY3QgYW5kIHByaW50ZXIgRFBJLiBwcmludGFibGVBcmVhCi0gICAgLy8g
aXMgaW4gcG9pbnRzIChhIHBvaW50IGlzIDEvNzIgb2YgYW4gaW5jaCkuUmV0dXJucyB0aGUgbnVt
YmVyIG9mIHBhZ2VzIHRvCi0gICAgLy8gYmUgcHJpbnRlZCBhdCB0aGVzZSBzZXR0aW5ncy4KLSAg
ICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEsIGlu
dCBwcmludGVyRFBJKSB7IHJldHVybiAwOyB9CisKKyAgICAvLyBTZXRzIHVwIHByaW50aW5nIGF0
IHRoZSBnaXZlbiBwcmludCByZWN0IGFuZCBwcmludGVyIERQSS4KKyAgICAvLyBwcmludENvbnRl
bnRBcmVhIGlzIGluIHBvaW50cyAoIGEgcG9pbnQgaXMgMS83MiBvZiBhbiBpbmNoKS4gUmV0dXJu
cyB0aGUKKyAgICAvLyBudW1iZXIgb2YgcGFnZXMgdG8gYmUgcHJpbnRlZCBhdCB0aGVzZSBzZXR0
aW5ncy4KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgZml4aW5nIGNy
YnVnLmNvbS84NTEzMi4gRm9yIGRldGFpbGVkCisgICAgLy8gaW5mb3JtYXRpb24sIHBsZWFzZSBy
ZWZlciB0byB0aGUgY29tbWVudHMgaW4gV2ViRnJhbWUuaAorICAgIHZpcnR1YWwgaW50IHByaW50
QmVnaW4oY29uc3QgV2ViUmVjdCYgcHJpbnRDb250ZW50QXJlYSwgaW50IHByaW50ZXJEUEkpIHsg
cmV0dXJuIDA7IH0KKyAgICAvLyBTZXRzIHVwIHByaW50aW5nIHdpdGggdGhlIHNwZWNpZmllZCBw
cmludFBhcmFtcy4gUmV0dXJucyB0aGUgbnVtYmVyIG9mCisgICAgLy8gcGFnZXMgdG8gYmUgcHJp
bnRlZCBhdCB0aGVzZSBzZXR0aW5ncy4KKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0
IFdlYlByaW50UGFyYW1zJiBwcmludFBhcmFtcykgeyByZXR1cm4gMDsgfQorCiAgICAgLy8gUHJp
bnRzIHRoZSBwYWdlIHNwZWNpZmllZCBieSBwYWdlTnVtYmVyICgwLWJhc2VkIGluZGV4KSBpbnRv
IHRoZSBzdXBwbGllZCBjYW52YXMuCiAgICAgdmlydHVhbCBib29sIHByaW50UGFnZShpbnQgcGFn
ZU51bWJlciwgV2ViQ2FudmFzKiBjYW52YXMpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgLy8gRW5k
cyB0aGUgcHJpbnQgb3BlcmF0aW9uLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUHJpbnRQYXJhbXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJQcmludFBhcmFtcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUHJpbnRQYXJhbXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViUHJpbnRQYXJhbXNfaAorI2RlZmluZSBXZWJQcmludFBhcmFtc19oCisK
KyNpbmNsdWRlICJXZWJQcmludFNjYWxpbmdPcHRpb24uaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJSZWN0LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU2l6ZS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworc3RydWN0IFdlYlByaW50UGFyYW1zIHsKKyAgICAvLyBTcGVjaWZpZXMgcHJpbnRh
YmxlIGNvbnRlbnQgcmVjdCBpbiBwb2ludHMgKGEgcG9pbnQgaXMgMS83MiBvZiBhbiBpbmNoKS4K
KyAgICBXZWJSZWN0IHByaW50Q29udGVudEFyZWE7CisKKyAgICAvLyBTcGVjaWZpZXMgdGhlIHNl
bGVjdGVkIHByaW50ZXIgZGVmYXVsdCBwcmludGFibGUgYXJlYSBkZXRhaWxzIGluCisgICAgLy8g
cG9pbnRzLgorICAgIFdlYlJlY3QgcHJpbnRhYmxlQXJlYTsKKworICAgIC8vIFNwZWNpZmllcyB0
aGUgc2VsZWN0ZWQgcHJpbnRlciBkZWZhdWx0IHBhcGVyIHNpemUgaW4gcG9pbnRzLgorICAgIFdl
YlNpemUgcGFwZXJTaXplOworCisgICAgLy8gU3BlY2lmaWVzIHVzZXIgc2VsZWN0ZWQgRFBJIGZv
ciBwcmludGluZy4KKyAgICBpbnQgcHJpbnRlckRQSTsKKworICAgIC8vIFNwZWNpZmllcyB3aGV0
aGVyIHRvIHJlZHVjZS9lbmxhcmdlL3JldGFpbiB0aGUgcHJpbnQgY29udGVudHMgdG8gZml0IHRo
ZQorICAgIC8vIHByaW50YWJsZSBhcmVhLiAoVGhpcyBpcyB1c2VkIG9ubHkgYnkgcGx1Z2luIHBy
aW50aW5nKS4KKyAgICBXZWJQcmludFNjYWxpbmdPcHRpb24gcHJpbnRTY2FsaW5nT3B0aW9uOwor
CisgICAgV2ViUHJpbnRQYXJhbXMoKQorICAgICAgICA6IHByaW50ZXJEUEkoNzIpCisgICAgICAg
ICAgLCBwcmludFNjYWxpbmdPcHRpb24oV2ViUHJpbnRTY2FsaW5nT3B0aW9uRml0VG9QcmludGFi
bGVBcmVhKSB7IH0KKworICAgIFdlYlByaW50UGFyYW1zKGNvbnN0IFdlYlJlY3QmIHByaW50Q29u
dGVudEFyZWEsIGNvbnN0IFdlYlJlY3QmIHByaW50YWJsZUFyZWEsIGNvbnN0IFdlYlNpemUmIHBh
cGVyU2l6ZSwgaW50IHByaW50ZXJEUEksIFdlYlByaW50U2NhbGluZ09wdGlvbiBwcmludFNjYWxp
bmdPcHRpb24pCisgICAgICAgIDogcHJpbnRDb250ZW50QXJlYShwcmludENvbnRlbnRBcmVhKQor
ICAgICAgICAgICwgcHJpbnRhYmxlQXJlYShwcmludGFibGVBcmVhKQorICAgICAgICAgICwgcGFw
ZXJTaXplKHBhcGVyU2l6ZSkKKyAgICAgICAgICAsIHByaW50ZXJEUEkocHJpbnRlckRQSSkKKyAg
ICAgICAgICAsIHByaW50U2NhbGluZ09wdGlvbihwcmludFNjYWxpbmdPcHRpb24pIHsgfQorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUHJpbnRQYXJhbXMuaApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDExNjY1NykKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
Myw2ICsxNTMsNyBAQAogI2luY2x1ZGUgIldlYlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiV2Vi
UGx1Z2luLmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oIgorI2luY2x1ZGUg
IldlYlByaW50UGFyYW1zLmgiCiAjaW5jbHVkZSAiV2ViUmFuZ2UuaCIKICNpbmNsdWRlICJXZWJT
Y3JpcHRTb3VyY2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNDQzLDgg
KzQ0NCw4IEBAIHByaXZhdGU6CiAvLyB3YW50IHRvIGRlbGVnYXRlIGFsbCBwcmludGluZyByZWxh
dGVkIGNhbGxzIHRvIHRoZSBwbHVnaW4uCiBjbGFzcyBDaHJvbWVQbHVnaW5QcmludENvbnRleHQg
OiBwdWJsaWMgQ2hyb21lUHJpbnRDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBDaHJvbWVQbHVnaW5Q
cmludENvbnRleHQoRnJhbWUqIGZyYW1lLCBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW4s
IGludCBwcmludGVyRFBJKQotICAgICAgICA6IENocm9tZVByaW50Q29udGV4dChmcmFtZSksIG1f
cGx1Z2luKHBsdWdpbiksIG1fcGFnZUNvdW50KDApLCBtX3ByaW50ZXJEUEkocHJpbnRlckRQSSkK
KyAgICBDaHJvbWVQbHVnaW5QcmludENvbnRleHQoRnJhbWUqIGZyYW1lLCBXZWJQbHVnaW5Db250
YWluZXJJbXBsKiBwbHVnaW4sIGNvbnN0IFdlYlByaW50UGFyYW1zJiBwcmludFBhcmFtcykKKyAg
ICAgICAgOiBDaHJvbWVQcmludENvbnRleHQoZnJhbWUpLCBtX3BsdWdpbihwbHVnaW4pLCBtX3Bh
Z2VDb3VudCgwKSwgbV9wcmludFBhcmFtcyhwcmludFBhcmFtcykKICAgICB7CiAgICAgfQogCkBA
IC00NjcsNyArNDY4LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQYWdl
UmVjdHMoY29uc3QgRmxvYXRSZWN0JiBwcmludFJlY3QsIGZsb2F0IGhlYWRlckhlaWdodCwgZmxv
YXQgZm9vdGVySGVpZ2h0LCBmbG9hdCB1c2VyU2NhbGVGYWN0b3IsIGZsb2F0JiBvdXRQYWdlSGVp
Z2h0KQogICAgIHsKLSAgICAgICAgbV9wYWdlQ291bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdpbihJ
bnRSZWN0KHByaW50UmVjdCksIG1fcHJpbnRlckRQSSk7CisgICAgICAgIG1fcHJpbnRQYXJhbXMu
cHJpbnRDb250ZW50QXJlYSA9IEludFJlY3QocHJpbnRSZWN0KTsKKyAgICAgICAgbV9wYWdlQ291
bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdpbihtX3ByaW50UGFyYW1zKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIGludCBwYWdlQ291bnQoKSBjb25zdApAQCAtNDkzLDcgKzQ5NSw5IEBAIHByaXZhdGU6
CiAgICAgLy8gU2V0IHdoZW4gcHJpbnRpbmcuCiAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCog
bV9wbHVnaW47CiAgICAgaW50IG1fcGFnZUNvdW50OwotICAgIGludCBtX3ByaW50ZXJEUEk7Cisg
ICAgV2ViUHJpbnRQYXJhbXMgbV9wcmludFBhcmFtczsKKyAgICBXZWJQcmludFNjYWxpbmdPcHRp
b24gbV9wcmludFNjYWxpbmdPcHRpb247CisKIH07CiAKIHN0YXRpYyBXZWJEYXRhU291cmNlKiBE
YXRhU291cmNlRm9yRG9jTG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCkBAIC0xNDM4LDkg
KzE0NDIsMjMgQEAgVmlzaWJsZVBvc2l0aW9uIFdlYkZyYW1lSW1wbDo6dmlzaWJsZVBvcwogICAg
IHJldHVybiBub2RlLT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KHJlc3VsdC5sb2NhbFBv
aW50KCkpOwogfQogCi1pbnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNpemUm
IHBhZ2VTaXplLAorLy8gVE9ETyhrbWFkaHVzdUBjaHJvbWl1bS5vcmcpOiBSZW1vdmUgdGhpcyBm
dW5jdGlvbiBhZnRlciBmaXhpbmcKKy8vIGNyYnVnLmNvbS84NTEzMi4gRm9yIG1vcmUgaW5mb3Jt
YXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgY29tbWVudHMgaW4KKy8vIFdlYkZyYW1lLmgKK2lu
dCBXZWJGcmFtZUltcGw6OnByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcHJpbnRDb250ZW50U2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWlu
VG9Ob2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlzKSB7Cisg
ICAgV2ViUmVjdCBwcmludGFibGVBcmVhKDAsIDAsIHByaW50Q29udGVudFNpemUud2lkdGgsIHBy
aW50Q29udGVudFNpemUuaGVpZ2h0KTsKKyAgICBXZWJTaXplIHBhcGVyU2l6ZShwcmludENvbnRl
bnRTaXplKTsKKyAgICBXZWJSZWN0IHByaW50Q29udGVudEFyZWEoMCwgMCwgcHJpbnRDb250ZW50
U2l6ZS53aWR0aCwgcHJpbnRDb250ZW50U2l6ZS5oZWlnaHQpOworICAgIFdlYlByaW50UGFyYW1z
IHByaW50UGFyYW1zKHByaW50Q29udGVudEFyZWEsIHByaW50YWJsZUFyZWEsIHBhcGVyU2l6ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGVyRFBJLCBXZWJQcmludFNjYWxp
bmdPcHRpb25Tb3VyY2VTaXplKTsKKyAgICByZXR1cm4gcHJpbnRCZWdpbihwcmludFBhcmFtcywg
Y29uc3RyYWluVG9Ob2RlLCB1c2VCcm93c2VyT3ZlcmxheXMpOworfQorCitpbnQgV2ViRnJhbWVJ
bXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlByaW50UGFyYW1zJiBwcmludFBhcmFtcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMpCiB7
CiAgICAgQVNTRVJUKCFmcmFtZSgpLT5kb2N1bWVudCgpLT5pc0ZyYW1lU2V0KCkpOwpAQCAtMTQ1
NSwxMiArMTQ3MywxMiBAQCBpbnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNp
CiAgICAgfQogCiAgICAgaWYgKHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1
cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSkKLSAgICAgICAgbV9wcmludENvbnRleHQgPSBhZG9wdFB0
cihuZXcgQ2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHBsdWdpbkNvbnRhaW5lciwg
cHJpbnRlckRQSSkpOworICAgICAgICBtX3ByaW50Q29udGV4dCA9IGFkb3B0UHRyKG5ldyBDaHJv
bWVQbHVnaW5QcmludENvbnRleHQoZnJhbWUoKSwgcGx1Z2luQ29udGFpbmVyLCBwcmludFBhcmFt
cykpOwogICAgIGVsc2UKICAgICAgICAgbV9wcmludENvbnRleHQgPSBhZG9wdFB0cihuZXcgQ2hy
b21lUHJpbnRDb250ZXh0KGZyYW1lKCkpKTsKIAotICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIHN0
YXRpY19jYXN0PGZsb2F0PihwYWdlU2l6ZS53aWR0aCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBhZ2VTaXplLmhlaWdodCkpOworICAgIEZsb2F0UmVjdCBy
ZWN0KDAsIDAsIHN0YXRpY19jYXN0PGZsb2F0PihwcmludFBhcmFtcy5wcmludENvbnRlbnRBcmVh
LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxmbG9hdD4ocHJp
bnRQYXJhbXMucHJpbnRDb250ZW50QXJlYS5oZWlnaHQpKTsKICAgICBtX3ByaW50Q29udGV4dC0+
YmVnaW4ocmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKICAgICBmbG9hdCBwYWdlSGVpZ2h0
OwogICAgIC8vIFdlIGlnbm9yZSB0aGUgb3ZlcmxheXMgY2FsY3VsYXRpb24gZm9yIG5vdyBzaW5j
ZSB0aGV5IGFyZSBnZW5lcmF0ZWQgaW4gdGhlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaAkocmV2aXNpb24gMTE2NjU3KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcg
QEAgY2xhc3MgV2ViUGVyZm9ybWFuY2U7CiBjbGFzcyBXZWJQbHVnaW5Db250YWluZXJJbXBsOwog
Y2xhc3MgV2ViVmlldzsKIGNsYXNzIFdlYlZpZXdJbXBsOworc3RydWN0IFdlYlByaW50UGFyYW1z
OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOwogCkBAIC0xNzUsMTAg
KzE3NiwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNlbGVjdFdvcmRBcm91bmRDYXJl
dCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RSYW5nZShjb25zdCBXZWJQb2ludCYgc3RhcnQs
IGNvbnN0IFdlYlBvaW50JiBlbmQpOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RSYW5nZShjb25z
dCBXZWJSYW5nZSYpOwotICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYg
cGFnZVNpemUsCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZ1bmN0aW9uIGFmdGVyIGZpeGlu
ZyBjcmJ1Zy5jb20vODUxMzIuIEZvciBkZXRhaWxlZCAKKyAgICAvLyBpbmZvcm1hdGlvbiwgcGxl
YXNlIHJlZmVyIHRvIHRoZSBjb21tZW50cyBpbiBXZWJGcmFtZS5oCisgICAgdmlydHVhbCBpbnQg
cHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwcmludENvbnRlbnRTaXplLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMpOworICAgIHZpcnR1YWwgaW50IHByaW50QmVn
aW4oY29uc3QgV2ViUHJpbnRQYXJhbXMmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCogdXNlQnJvd3Nlck92ZXJsYXlzKTsKICAgICB2aXJ0dWFsIGZsb2F0IHByaW50UGFnZShp
bnQgcGFnZVRvUHJpbnQsIFdlYkNhbnZhcyopOwogICAgIHZpcnR1YWwgZmxvYXQgZ2V0UHJpbnRQ
YWdlU2hyaW5rKGludCBwYWdlKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnRFbmQoKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5l
ckltcGwuY3BwCShyZXZpc2lvbiAxMTY2NTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIs
NyBAQAogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5o
IgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV2ViUHJpbnRQ
YXJhbXMuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRm
b3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkNsaXBib2FyZC5oPgpAQCAtMjQ5LDEwICsyNTAs
MTIgQEAgYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjppc1ByaW50U2NhbAogICAgIHJldHVy
biBtX3dlYlBsdWdpbi0+aXNQcmludFNjYWxpbmdEaXNhYmxlZCgpOwogfQogCi1pbnQgV2ViUGx1
Z2luQ29udGFpbmVySW1wbDo6cHJpbnRCZWdpbihjb25zdCBJbnRSZWN0JiBwcmludGFibGVBcmVh
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEkp
IGNvbnN0CitpbnQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJQ
cmludFBhcmFtcyYgcHJpbnRQYXJhbXMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fd2ViUGx1Z2lu
LT5wcmludEJlZ2luKHByaW50YWJsZUFyZWEsIHByaW50ZXJEUEkpOworICAgIHJldHVybiBtX3dl
YlBsdWdpbi0+cHJpbnRCZWdpbihwcmludFBhcmFtcy5wcmludENvbnRlbnRBcmVhLCBwcmludFBh
cmFtcy5wcmludGVyRFBJKTsKKyAgICAvLyBGSVhNRTogQWZ0ZXIgY29tbWl0dGluZyB0aGlzIENM
LCB1cGRhdGUgdGhlIGNocm9tZSBwbHVnaW4gcHJpbnRCZWdpbigpCisgICAgLy8gZnVuY3Rpb24g
dG8gdXNlIHRoZSBvdmVybG9hZGVkIHByaW50QmVnaW4gZnVuY3Rpb24uCisgICAgLy8gcmV0dXJu
IG1fd2ViUGx1Z2luLT5wcmludEJlZ2luKHByaW50UGFyYW1zKTsKIH0KIAogYm9vbCBXZWJQbHVn
aW5Db250YWluZXJJbXBsOjpwcmludFBhZ2UoaW50IHBhZ2VOdW1iZXIsCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCShy
ZXZpc2lvbiAxMTY2NTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5D
b250YWluZXJJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDggQEAgY2xhc3MgUGxh
dGZvcm1HZXN0dXJlRXZlbnQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdHJ1Y3QgV2ViUHJp
bnRQYXJhbXM7CisKIGNsYXNzIFNjcm9sbGJhckdyb3VwOwogY2xhc3MgV2ViUGx1Z2luOwogY2xh
c3MgV2ViUGx1Z2luTG9hZE9ic2VydmVyOwpAQCAtMTIwLDEwICsxMjIsOCBAQCBwdWJsaWM6CiAg
ICAgLy8gSWYgdGhlIHBsdWdpbiBjb250ZW50IHNob3VsZCBub3QgYmUgc2NhbGVkIHRvIHRoZSBw
cmludGFibGUgYXJlYSBvZgogICAgIC8vIHRoZSBwYWdlLCB0aGVuIHRoaXMgbWV0aG9kIHNob3Vs
ZCByZXR1cm4gdHJ1ZS4KICAgICBib29sIGlzUHJpbnRTY2FsaW5nRGlzYWJsZWQoKSBjb25zdDsK
LSAgICAvLyBTZXRzIHVwIHByaW50aW5nIGF0IHRoZSBnaXZlbiBwcmludCByZWN0IGFuZCBwcmlu
dGVyIERQSS4gcHJpbnRhYmxlQXJlYQotICAgIC8vIGlzIGluIHBvaW50cyAoYSBwb2ludCBpcyAx
LzcyIG9mIGFuIGluY2gpLlJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0bwotICAgIC8vIGJl
IHByaW50ZWQgYXQgdGhlc2Ugc2V0dGluZ3MuCi0gICAgaW50IHByaW50QmVnaW4oY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcHJpbnRhYmxlQXJlYSwgaW50IHByaW50ZXJEUEkpIGNvbnN0OworICAg
IC8vIFNldHMgdXAgcHJpbnRpbmcgYXQgdGhlIHNwZWNpZmllZCBwcmludCBwYXJhbXMuIFJldHVy
bnMgdGhlIG51bWJlciBvZiBwYWdlcyB0byBiZSBwcmludGVkIGF0IHRoZXNlIHNldHRpbmdzLgor
ICAgIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlByaW50UGFyYW1zJikgY29uc3Q7CiAgICAgLy8g
UHJpbnRzIHRoZSBwYWdlIHNwZWNpZmllZCBieSBwYWdlTnVtYmVyICgwLWJhc2VkIGluZGV4KSBp
bnRvIHRoZSBzdXBwbGllZCBjYW52YXMuCiAgICAgYm9vbCBwcmludFBhZ2UoaW50IHBhZ2VOdW1i
ZXIsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCogZ2MpOwogICAgIC8vIEVuZHMgdGhlIHByaW50
IG9wZXJhdGlvbi4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142063</attachid>
            <date>2012-05-15 14:45:31 -0700</date>
            <delta_ts>2012-05-15 18:42:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84312-20120515144529.patch</filename>
            <type>text/plain</type>
            <size>18058</size>
            <attacher name="kmadhusu">kmadhusu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTcxNTEpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3
IEBACisyMDEyLTA1LTE1ICBLYXVzYWx5YSBNYWRodXN1ZGhhbmFuICA8a21hZGh1c3VAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT3ZlcmxvYWRlZCBwcmludEJlZ2luKCkgZnVu
Y3Rpb24gdG8gc3VwcG9ydCBhdXRvIGZpdCB0byBwYWdlIGZ1bmN0aW9uYWxpdHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJGcmFtZSk6CisgICAgICAgICogcHVibGljL1dlYlBsdWdpbi5oOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYlBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbjo6cHJp
bnRCZWdpbik6CisgICAgICAgICogcHVibGljL1dlYlByaW50UGFyYW1zLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlByaW50UGFyYW1zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJpbnRQYXJhbXM6OldlYlByaW50UGFyYW1zKToKKyAgICAgICAgKiBzcmMvV2ViRnJh
bWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0OjpD
aHJvbWVQbHVnaW5QcmludENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVQbHVnaW5Q
cmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOgorICAgICAgICAoQ2hyb21lUGx1Z2luUHJp
bnRDb250ZXh0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
SW1wbDo6cHJpbnRCZWdpbik6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkZyYW1lSW1wbCk6CisgICAgICAgICogc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjpwcmludEJlZ2luKToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwp
OgorCiAyMDEyLTA1LTE1ICBUZXJyeSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gQ29tcHV0ZSB0aGUgYmVzdCB0YXJnZXQgbm9kZSBvbiBh
IEdlc3R1cmVUYXAgZXZlbnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlz
aW9uIDExNzE0MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIzLDYgKzIyMyw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQ
bHVnaW5Db250YWluZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQbHVnaW5Eb2N1
bWVudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBsdWdpbkxpc3RCdWlsZGVyLmgn
LAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUHJpbnRQYXJhbXMuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJQcmludFNjYWxpbmdPcHRpb24uaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJQb3B1cE1lbnUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQb3B1
cE1lbnVJbmZvLmgnLApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJh
bWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFt
ZS5oCShyZXZpc2lvbiAxMTcxNDEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw3IEBAIGNsYXNzIFdlYlZpZXc7
CiBzdHJ1Y3QgV2ViQ29uc29sZU1lc3NhZ2U7CiBzdHJ1Y3QgV2ViRmluZE9wdGlvbnM7CiBzdHJ1
Y3QgV2ViUG9pbnQ7CitzdHJ1Y3QgV2ViUHJpbnRQYXJhbXM7CiBzdHJ1Y3QgV2ViUmVjdDsKIHN0
cnVjdCBXZWJTY3JpcHRTb3VyY2U7CiBzdHJ1Y3QgV2ViU2l6ZTsKQEAgLTQ1MiwxOSArNDUzLDM1
IEBAIHB1YmxpYzoKIAogICAgIC8vIFByaW50aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0gICAgLy8gUmVmb3JtYXRzIHRo
ZSBXZWJGcmFtZSBmb3IgcHJpbnRpbmcuIHBhZ2VTaXplIGlzIHRoZSBwYWdlIHNpemUgaW4KLSAg
ICAvLyBwb2ludHMgKGEgcG9pbnQgaW4gMS83MiBvZiBhbiBpbmNoKS4gSWYgfGNvbnN0cmFpblRv
Tm9kZXwgbm9kZSBpcwotICAgIC8vIHNwZWNpZmllZCwgdGhlbiBvbmx5IHRoZSBnaXZlbiBub2Rl
IGlzIHByaW50ZWQgKGZvciBub3cgb25seSBwbHVnaW5zIGFyZQotICAgIC8vIHN1cHBvcnRlZCks
IGluc3RlYWQgb2YgdGhlIGVudGlyZSBmcmFtZS4gIHByaW50ZXJEUEkgaXMgdGhlIHVzZXIKLSAg
ICAvLyBzZWxlY3RlZCwgRFBJIGZvciB0aGUgcHJpbnRlci4gUmV0dXJucyB0aGUgbnVtYmVyIG9m
IHBhZ2VzIHRoYXQgY2FuIGJlCi0gICAgLy8gcHJpbnRlZCBhdCB0aGUgZ2l2ZW4gcGFnZSBzaXpl
LiBUaGUgb3V0IHBhcmFtIHVzZUJyb3dzZXJPdmVybGF5cworICAgIC8vIFJlZm9ybWF0cyB0aGUg
V2ViRnJhbWUgZm9yIHByaW50aW5nLiBwcmludENvbnRlbnRTaXplIGlzIHRoZSBwcmludAorICAg
IC8vIGNvbnRlbnQgc2l6ZSBpbiBwb2ludHMgKGEgcG9pbnQgaXMgMS83MiBvZiBhbiBpbmNoKS4g
SWYgY29uc3RyYWluVG9Ob2RlCisgICAgLy8gbm9kZSBpcyBzcGVjaWZpZWQsIHRoZW4gb25seSB0
aGUgZ2l2ZW4gbm9kZSBpcyBwcmludGVkIChmb3Igbm93IG9ubHkKKyAgICAvLyBwbHVnaW5zIGFy
ZSBzdXBwb3J0ZWQpLCBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgZnJhbWUuIHByaW50ZXJEUEkgaXMg
dGhlCisgICAgLy8gdXNlciBzZWxlY3RlZCwgRFBJIGZvciB0aGUgcHJpbnRlci4gUmV0dXJucyB0
aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2FuCisgICAgLy8gYmUgcHJpbnRlZCBhdCB0aGUgZ2l2
ZW4gcGFnZSBzaXplLiBUaGUgb3V0IHBhcmFtIHVzZUJyb3dzZXJPdmVybGF5cwogICAgIC8vIHNw
ZWNpZmllcyB3aGV0aGVyIHRoZSBicm93c2VyIHByb2Nlc3Mgc2hvdWxkIHVzZSBpdHMgb3Zlcmxh
eXMgKGhlYWRlciwKICAgICAvLyBmb290ZXIsIG1hcmdpbnMgZXRjKSBvciB3aGV0aGVyIHRoZSBy
ZW5kZXJlciBjb250cm9scyB0aGlzLgotICAgIHZpcnR1YWwgaW50IHByaW50QmVnaW4oY29uc3Qg
V2ViU2l6ZSYgcGFnZVNpemUsCisgICAgLy8KKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhIHRlbXBv
cmFyeSBpbnRlcmZhY2UgdG8gYXZvaWQgdGhlIGNvbXBpbGUgZXJyb3JzLiBSZW1vdmUKKyAgICAv
LyB0aGlzIGludGVyZmFjZSBhZnRlciBmaXhpbmcgY3JidWcuY29tLzg1MTMyLiBXZSB3aWxsIHVz
ZSB0aGUgb3ZlcmxvYWRlZAorICAgIC8vIHByaW50QmVnaW4gZnVuY3Rpb24uCisgICAgdmlydHVh
bCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwcmludENvbnRlbnRTaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlID0gV2Vi
Tm9kZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW50ZXJEUEkgPSA3MiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVybGF5cyA9IDAp
ID0gMDsKIAorICAgIC8vIFJlZm9ybWF0cyB0aGUgV2ViRnJhbWUgZm9yIHByaW50aW5nLiBXZWJQ
cmludFBhcmFtcyBzcGVjaWZpZXMgdGhlIHByaW50YWJsZQorICAgIC8vIGNvbnRlbnQgc2l6ZSwg
cGFwZXIgc2l6ZSwgcHJpbnRhYmxlIGFyZWEgc2l6ZSwgcHJpbnRlciBEUEkgYW5kIHByaW50Cisg
ICAgLy8gc2NhbGluZyBvcHRpb24uIElmIGNvbnN0cmFpblRvTm9kZSBub2RlIGlzIHNwZWNpZmll
ZCwgdGhlbiBvbmx5IHRoZSBnaXZlbiBub2RlCisgICAgLy8gaXMgcHJpbnRlZCAoZm9yIG5vdyBv
bmx5IHBsdWdpbnMgYXJlIHN1cHBvcnRlZCksIGluc3RlYWQgb2YgdGhlIGVudGlyZSBmcmFtZS4K
KyAgICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW4gYmUgcHJpbnRlZCBh
dCB0aGUgZ2l2ZW4KKyAgICAvLyBwYWdlIHNpemUuIFRoZSBvdXQgcGFyYW0gdXNlQnJvd3Nlck92
ZXJsYXlzIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBicm93c2VyCisgICAgLy8gcHJvY2VzcyBzaG91
bGQgdXNlIGl0cyBvdmVybGF5cyAoaGVhZGVyLCBmb290ZXIsIG1hcmdpbnMgZXRjKSBvciB3aGV0
aGVyCisgICAgLy8gdGhlIHJlbmRlcmVyIGNvbnRyb2xzIHRoaXMuCisgICAgdmlydHVhbCBpbnQg
cHJpbnRCZWdpbihjb25zdCBXZWJQcmludFBhcmFtcyYsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXZWJOb2RlJiBjb25zdHJhaW5Ub05vZGUgPSBXZWJOb2RlKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMgPSAwKSA9IDA7CisK
ICAgICAvLyBSZXR1cm5zIHRoZSBwYWdlIHNocmlua2luZyBmYWN0b3IgY2FsY3VsYXRlZCBieSB3
ZWJraXQgKHVzdWFsbHkKICAgICAvLyBiZXR3ZWVuIDEvMS4yNSBhbmQgMS8yKS4gUmV0dXJucyAw
IGlmIHRoZSBwYWdlIG51bWJlciBpcyBpbnZhbGlkIG9yCiAgICAgLy8gbm90IGluIHByaW50aW5n
IG1vZGUuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAko
cmV2aXNpb24gMTE3MTQxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1
Z2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgV2ViUGx1Z2luQ29u
dGFpbmVyOwogY2xhc3MgV2ViVVJMUmVzcG9uc2U7CiBzdHJ1Y3QgV2ViQ3Vyc29ySW5mbzsKIHN0
cnVjdCBXZWJQbHVnaW5QYXJhbXM7CitzdHJ1Y3QgV2ViUHJpbnRQYXJhbXM7CiBzdHJ1Y3QgV2Vi
UG9pbnQ7CiBzdHJ1Y3QgV2ViUmVjdDsKIHN0cnVjdCBXZWJVUkxFcnJvcjsKQEAgLTk2LDEwICs5
NywxNyBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBwcmludGVkIGNvbnRl
bnQgc2hvdWxkIG5vdCBiZSBzY2FsZWQgdG8KICAgICAvLyB0aGUgcHJpbnRlcidzIHByaW50YWJs
ZSBhcmVhLgogICAgIHZpcnR1YWwgYm9vbCBpc1ByaW50U2NhbGluZ0Rpc2FibGVkKCkgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICAvLyBTZXRzIHVwIHByaW50aW5nIGF0IHRoZSBnaXZlbiBwcmludCBy
ZWN0IGFuZCBwcmludGVyIERQSS4gcHJpbnRhYmxlQXJlYQotICAgIC8vIGlzIGluIHBvaW50cyAo
YSBwb2ludCBpcyAxLzcyIG9mIGFuIGluY2gpLlJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0
bwotICAgIC8vIGJlIHByaW50ZWQgYXQgdGhlc2Ugc2V0dGluZ3MuCi0gICAgdmlydHVhbCBpbnQg
cHJpbnRCZWdpbihjb25zdCBXZWJSZWN0JiBwcmludGFibGVBcmVhLCBpbnQgcHJpbnRlckRQSSkg
eyByZXR1cm4gMDsgfQorCisgICAgLy8gU2V0cyB1cCBwcmludGluZyBhdCB0aGUgZ2l2ZW4gcHJp
bnQgcmVjdCBhbmQgcHJpbnRlciBEUEkuCisgICAgLy8gcHJpbnRDb250ZW50QXJlYSBpcyBpbiBw
b2ludHMgKCBhIHBvaW50IGlzIDEvNzIgb2YgYW4gaW5jaCkuIFJldHVybnMgdGhlCisgICAgLy8g
bnVtYmVyIG9mIHBhZ2VzIHRvIGJlIHByaW50ZWQgYXQgdGhlc2Ugc2V0dGluZ3MuCisgICAgLy8g
RklYTUU6IFJlbW92ZSB0aGlzIGZ1bmN0aW9uIGFmdGVyIGZpeGluZyBjcmJ1Zy5jb20vODUxMzIu
IEZvciBkZXRhaWxlZAorICAgIC8vIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlIGNv
bW1lbnRzIGluIFdlYkZyYW1lLmgKKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdl
YlJlY3QmIHByaW50Q29udGVudEFyZWEsIGludCBwcmludGVyRFBJKSB7IHJldHVybiAwOyB9Cisg
ICAgLy8gU2V0cyB1cCBwcmludGluZyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJpbnRQYXJhbXMuIFJl
dHVybnMgdGhlIG51bWJlciBvZgorICAgIC8vIHBhZ2VzIHRvIGJlIHByaW50ZWQgYXQgdGhlc2Ug
c2V0dGluZ3MuCisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJQcmludFBhcmFt
cyYgcHJpbnRQYXJhbXMpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIFByaW50cyB0aGUgcGFnZSBz
cGVjaWZpZWQgYnkgcGFnZU51bWJlciAoMC1iYXNlZCBpbmRleCkgaW50byB0aGUgc3VwcGxpZWQg
Y2FudmFzLgogICAgIHZpcnR1YWwgYm9vbCBwcmludFBhZ2UoaW50IHBhZ2VOdW1iZXIsIFdlYkNh
bnZhcyogY2FudmFzKSB7IHJldHVybiBmYWxzZTsgfQogICAgIC8vIEVuZHMgdGhlIHByaW50IG9w
ZXJhdGlvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlByaW50UGFy
YW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUHJp
bnRQYXJhbXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlByaW50UGFyYW1zLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YlByaW50UGFyYW1zX2gKKyNkZWZpbmUgV2ViUHJpbnRQYXJhbXNfaAorCisjaW5jbHVkZSAiV2Vi
UHJpbnRTY2FsaW5nT3B0aW9uLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViUmVjdC5oIgorI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlNpemUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVj
dCBXZWJQcmludFBhcmFtcyB7CisgICAgLy8gU3BlY2lmaWVzIHByaW50YWJsZSBjb250ZW50IHJl
Y3QgaW4gcG9pbnRzIChhIHBvaW50IGlzIDEvNzIgb2YgYW4gaW5jaCkuCisgICAgV2ViUmVjdCBw
cmludENvbnRlbnRBcmVhOworCisgICAgLy8gU3BlY2lmaWVzIHRoZSBzZWxlY3RlZCBwcmludGVy
IGRlZmF1bHQgcHJpbnRhYmxlIGFyZWEgZGV0YWlscyBpbgorICAgIC8vIHBvaW50cy4KKyAgICBX
ZWJSZWN0IHByaW50YWJsZUFyZWE7CisKKyAgICAvLyBTcGVjaWZpZXMgdGhlIHNlbGVjdGVkIHBy
aW50ZXIgZGVmYXVsdCBwYXBlciBzaXplIGluIHBvaW50cy4KKyAgICBXZWJTaXplIHBhcGVyU2l6
ZTsKKworICAgIC8vIFNwZWNpZmllcyB1c2VyIHNlbGVjdGVkIERQSSBmb3IgcHJpbnRpbmcuCisg
ICAgaW50IHByaW50ZXJEUEk7CisKKyAgICAvLyBTcGVjaWZpZXMgd2hldGhlciB0byByZWR1Y2Uv
ZW5sYXJnZS9yZXRhaW4gdGhlIHByaW50IGNvbnRlbnRzIHRvIGZpdCB0aGUKKyAgICAvLyBwcmlu
dGFibGUgYXJlYS4gKFRoaXMgaXMgdXNlZCBvbmx5IGJ5IHBsdWdpbiBwcmludGluZykuCisgICAg
V2ViUHJpbnRTY2FsaW5nT3B0aW9uIHByaW50U2NhbGluZ09wdGlvbjsKKworICAgIFdlYlByaW50
UGFyYW1zKCkKKyAgICAgICAgOiBwcmludGVyRFBJKDcyKQorICAgICAgICAsIHByaW50U2NhbGlu
Z09wdGlvbihXZWJQcmludFNjYWxpbmdPcHRpb25GaXRUb1ByaW50YWJsZUFyZWEpIHsgfQorCisg
ICAgV2ViUHJpbnRQYXJhbXMoY29uc3QgV2ViUmVjdCYgcHJpbnRDb250ZW50QXJlYSwgY29uc3Qg
V2ViUmVjdCYgcHJpbnRhYmxlQXJlYSwgY29uc3QgV2ViU2l6ZSYgcGFwZXJTaXplLCBpbnQgcHJp
bnRlckRQSSwgV2ViUHJpbnRTY2FsaW5nT3B0aW9uIHByaW50U2NhbGluZ09wdGlvbikKKyAgICAg
ICAgOiBwcmludENvbnRlbnRBcmVhKHByaW50Q29udGVudEFyZWEpCisgICAgICAgICwgcHJpbnRh
YmxlQXJlYShwcmludGFibGVBcmVhKQorICAgICAgICAsIHBhcGVyU2l6ZShwYXBlclNpemUpCisg
ICAgICAgICwgcHJpbnRlckRQSShwcmludGVyRFBJKQorICAgICAgICAsIHByaW50U2NhbGluZ09w
dGlvbihwcmludFNjYWxpbmdPcHRpb24pIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViUHJpbnRQYXJhbXMuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAJKHJldmlzaW9uIDExNzE0MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw2ICsxNTQsNyBAQAogI2luY2x1ZGUg
IldlYlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2luLmgiCiAjaW5jbHVkZSAiV2Vi
UGx1Z2luQ29udGFpbmVySW1wbC5oIgorI2luY2x1ZGUgIldlYlByaW50UGFyYW1zLmgiCiAjaW5j
bHVkZSAiV2ViUmFuZ2UuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRTb3VyY2UuaCIKICNpbmNsdWRl
ICJXZWJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNDQ0LDggKzQ0NSw4IEBAIHByaXZhdGU6CiAvLyB3
YW50IHRvIGRlbGVnYXRlIGFsbCBwcmludGluZyByZWxhdGVkIGNhbGxzIHRvIHRoZSBwbHVnaW4u
CiBjbGFzcyBDaHJvbWVQbHVnaW5QcmludENvbnRleHQgOiBwdWJsaWMgQ2hyb21lUHJpbnRDb250
ZXh0IHsKIHB1YmxpYzoKLSAgICBDaHJvbWVQbHVnaW5QcmludENvbnRleHQoRnJhbWUqIGZyYW1l
LCBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW4sIGludCBwcmludGVyRFBJKQotICAgICAg
ICA6IENocm9tZVByaW50Q29udGV4dChmcmFtZSksIG1fcGx1Z2luKHBsdWdpbiksIG1fcGFnZUNv
dW50KDApLCBtX3ByaW50ZXJEUEkocHJpbnRlckRQSSkKKyAgICBDaHJvbWVQbHVnaW5QcmludENv
bnRleHQoRnJhbWUqIGZyYW1lLCBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW4sIGNvbnN0
IFdlYlByaW50UGFyYW1zJiBwcmludFBhcmFtcykKKyAgICAgICAgOiBDaHJvbWVQcmludENvbnRl
eHQoZnJhbWUpLCBtX3BsdWdpbihwbHVnaW4pLCBtX3BhZ2VDb3VudCgwKSwgbV9wcmludFBhcmFt
cyhwcmludFBhcmFtcykKICAgICB7CiAgICAgfQogCkBAIC00NjgsNyArNDY5LDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQYWdlUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBw
cmludFJlY3QsIGZsb2F0IGhlYWRlckhlaWdodCwgZmxvYXQgZm9vdGVySGVpZ2h0LCBmbG9hdCB1
c2VyU2NhbGVGYWN0b3IsIGZsb2F0JiBvdXRQYWdlSGVpZ2h0KQogICAgIHsKLSAgICAgICAgbV9w
YWdlQ291bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdpbihJbnRSZWN0KHByaW50UmVjdCksIG1fcHJp
bnRlckRQSSk7CisgICAgICAgIG1fcHJpbnRQYXJhbXMucHJpbnRDb250ZW50QXJlYSA9IEludFJl
Y3QocHJpbnRSZWN0KTsKKyAgICAgICAgbV9wYWdlQ291bnQgPSBtX3BsdWdpbi0+cHJpbnRCZWdp
bihtX3ByaW50UGFyYW1zKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGludCBwYWdlQ291bnQoKSBj
b25zdApAQCAtNDk0LDcgKzQ5Niw5IEBAIHByaXZhdGU6CiAgICAgLy8gU2V0IHdoZW4gcHJpbnRp
bmcuCiAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogbV9wbHVnaW47CiAgICAgaW50IG1fcGFn
ZUNvdW50OwotICAgIGludCBtX3ByaW50ZXJEUEk7CisgICAgV2ViUHJpbnRQYXJhbXMgbV9wcmlu
dFBhcmFtczsKKyAgICBXZWJQcmludFNjYWxpbmdPcHRpb24gbV9wcmludFNjYWxpbmdPcHRpb247
CisKIH07CiAKIHN0YXRpYyBXZWJEYXRhU291cmNlKiBEYXRhU291cmNlRm9yRG9jTG9hZGVyKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIpCkBAIC0xNDM5LDkgKzE0NDMsMjMgQEAgVmlzaWJsZVBvc2l0
aW9uIFdlYkZyYW1lSW1wbDo6dmlzaWJsZVBvcwogICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigp
LT5wb3NpdGlvbkZvclBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCkpOwogfQogCi1pbnQgV2ViRnJh
bWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplLAorLy8gVE9ETyhrbWFk
aHVzdUBjaHJvbWl1bS5vcmcpOiBSZW1vdmUgdGhpcyBmdW5jdGlvbiBhZnRlciBmaXhpbmcKKy8v
IGNyYnVnLmNvbS84NTEzMi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0
aGUgY29tbWVudHMgaW4KKy8vIFdlYkZyYW1lLmgKK2ludCBXZWJGcmFtZUltcGw6OnByaW50QmVn
aW4oY29uc3QgV2ViU2l6ZSYgcHJpbnRDb250ZW50U2l6ZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCogdXNlQnJvd3Nlck92ZXJsYXlzKSB7CisgICAgV2ViUmVjdCBwcmludGFibGVBcmVh
KDAsIDAsIHByaW50Q29udGVudFNpemUud2lkdGgsIHByaW50Q29udGVudFNpemUuaGVpZ2h0KTsK
KyAgICBXZWJTaXplIHBhcGVyU2l6ZShwcmludENvbnRlbnRTaXplKTsKKyAgICBXZWJSZWN0IHBy
aW50Q29udGVudEFyZWEoMCwgMCwgcHJpbnRDb250ZW50U2l6ZS53aWR0aCwgcHJpbnRDb250ZW50
U2l6ZS5oZWlnaHQpOworICAgIFdlYlByaW50UGFyYW1zIHByaW50UGFyYW1zKHByaW50Q29udGVu
dEFyZWEsIHByaW50YWJsZUFyZWEsIHBhcGVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludGVyRFBJLCBXZWJQcmludFNjYWxpbmdPcHRpb25Tb3VyY2VTaXplKTsKKyAg
ICByZXR1cm4gcHJpbnRCZWdpbihwcmludFBhcmFtcywgY29uc3RyYWluVG9Ob2RlLCB1c2VCcm93
c2VyT3ZlcmxheXMpOworfQorCitpbnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdl
YlByaW50UGFyYW1zJiBwcmludFBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgV2ViTm9kZSYgY29uc3RyYWluVG9Ob2RlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMpCiB7CiAgICAgQVNTRVJUKCFmcmFtZSgpLT5k
b2N1bWVudCgpLT5pc0ZyYW1lU2V0KCkpOwpAQCAtMTQ1NiwxMiArMTQ3NCwxMiBAQCBpbnQgV2Vi
RnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlNpCiAgICAgfQogCiAgICAgaWYgKHBsdWdp
bkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSkK
LSAgICAgICAgbV9wcmludENvbnRleHQgPSBhZG9wdFB0cihuZXcgQ2hyb21lUGx1Z2luUHJpbnRD
b250ZXh0KGZyYW1lKCksIHBsdWdpbkNvbnRhaW5lciwgcHJpbnRlckRQSSkpOworICAgICAgICBt
X3ByaW50Q29udGV4dCA9IGFkb3B0UHRyKG5ldyBDaHJvbWVQbHVnaW5QcmludENvbnRleHQoZnJh
bWUoKSwgcGx1Z2luQ29udGFpbmVyLCBwcmludFBhcmFtcykpOwogICAgIGVsc2UKICAgICAgICAg
bV9wcmludENvbnRleHQgPSBhZG9wdFB0cihuZXcgQ2hyb21lUHJpbnRDb250ZXh0KGZyYW1lKCkp
KTsKIAotICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIHN0YXRpY19jYXN0PGZsb2F0PihwYWdlU2l6
ZS53aWR0aCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBh
Z2VTaXplLmhlaWdodCkpOworICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIHN0YXRpY19jYXN0PGZs
b2F0PihwcmludFBhcmFtcy5wcmludENvbnRlbnRBcmVhLndpZHRoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxmbG9hdD4ocHJpbnRQYXJhbXMucHJpbnRDb250ZW50QXJl
YS5oZWlnaHQpKTsKICAgICBtX3ByaW50Q29udGV4dC0+YmVnaW4ocmVjdC53aWR0aCgpLCByZWN0
LmhlaWdodCgpKTsKICAgICBmbG9hdCBwYWdlSGVpZ2h0OwogICAgIC8vIFdlIGlnbm9yZSB0aGUg
b3ZlcmxheXMgY2FsY3VsYXRpb24gZm9yIG5vdyBzaW5jZSB0aGV5IGFyZSBnZW5lcmF0ZWQgaW4g
dGhlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAkocmV2
aXNpb24gMTE3MTQxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgY2xhc3MgV2ViUGVyZm9ybWFuY2U7
CiBjbGFzcyBXZWJQbHVnaW5Db250YWluZXJJbXBsOwogY2xhc3MgV2ViVmlldzsKIGNsYXNzIFdl
YlZpZXdJbXBsOworc3RydWN0IFdlYlByaW50UGFyYW1zOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4gY2xhc3MgV2ViVmVjdG9yOwogCkBAIC0xNzUsMTAgKzE3NiwxNSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIHNlbGVjdFdvcmRBcm91bmRDYXJldCgpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZWxlY3RSYW5nZShjb25zdCBXZWJQb2ludCYgc3RhcnQsIGNvbnN0IFdlYlBvaW50JiBlbmQpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RSYW5nZShjb25zdCBXZWJSYW5nZSYpOwotICAgIHZpcnR1
YWwgaW50IHByaW50QmVnaW4oY29uc3QgV2ViU2l6ZSYgcGFnZVNpemUsCisgICAgLy8gRklYTUU6
IFJlbW92ZSB0aGlzIGZ1bmN0aW9uIGFmdGVyIGZpeGluZyBjcmJ1Zy5jb20vODUxMzIuIEZvciBk
ZXRhaWxlZAorICAgIC8vIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlIGNvbW1lbnRz
IGluIFdlYkZyYW1lLmgKKyAgICB2aXJ0dWFsIGludCBwcmludEJlZ2luKGNvbnN0IFdlYlNpemUm
IHByaW50Q29udGVudFNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJO
b2RlJiBjb25zdHJhaW5Ub05vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJp
bnRlckRQSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHVzZUJyb3dzZXJPdmVy
bGF5cyk7CisgICAgdmlydHVhbCBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJQcmludFBhcmFtcyYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJOb2RlJiBjb25zdHJhaW5Ub05v
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB1c2VCcm93c2VyT3ZlcmxheXMp
OwogICAgIHZpcnR1YWwgZmxvYXQgcHJpbnRQYWdlKGludCBwYWdlVG9QcmludCwgV2ViQ2FudmFz
Kik7CiAgICAgdmlydHVhbCBmbG9hdCBnZXRQcmludFBhZ2VTaHJpbmsoaW50IHBhZ2UpOwogICAg
IHZpcnR1YWwgdm9pZCBwcmludEVuZCgpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHJldmlzaW9uIDExNzE0
MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsVmll
dy5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaCIKKyNpbmNsdWRlICJXZWJQcmludFBhcmFtcy5oIgogI2luY2x1ZGUgIldoZWVs
RXZlbnQuaCIKICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDxwdWJsaWMv
V2ViQ2xpcGJvYXJkLmg+CkBAIC0yNDMsMTAgKzI0NCwxMiBAQCBib29sIFdlYlBsdWdpbkNvbnRh
aW5lckltcGw6OmlzUHJpbnRTY2FsCiAgICAgcmV0dXJuIG1fd2ViUGx1Z2luLT5pc1ByaW50U2Nh
bGluZ0Rpc2FibGVkKCk7CiB9CiAKLWludCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwcmludEJl
Z2luKGNvbnN0IEludFJlY3QmIHByaW50YWJsZUFyZWEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgcHJpbnRlckRQSSkgY29uc3QKK2ludCBXZWJQbHVnaW5Db250
YWluZXJJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdlYlByaW50UGFyYW1zJiBwcmludFBhcmFtcykg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV93ZWJQbHVnaW4tPnByaW50QmVnaW4ocHJpbnRhYmxlQXJl
YSwgcHJpbnRlckRQSSk7CisgICAgcmV0dXJuIG1fd2ViUGx1Z2luLT5wcmludEJlZ2luKHByaW50
UGFyYW1zLnByaW50Q29udGVudEFyZWEsIHByaW50UGFyYW1zLnByaW50ZXJEUEkpOworICAgIC8v
IEZJWE1FOiBBZnRlciBjb21taXR0aW5nIHRoaXMgQ0wsIHVwZGF0ZSB0aGUgY2hyb21lIHBsdWdp
biBwcmludEJlZ2luKCkKKyAgICAvLyBmdW5jdGlvbiB0byB1c2UgdGhlIG92ZXJsb2FkZWQgcHJp
bnRCZWdpbiBmdW5jdGlvbi4KKyAgICAvLyByZXR1cm4gbV93ZWJQbHVnaW4tPnByaW50QmVnaW4o
cHJpbnRQYXJhbXMpOwogfQogCiBib29sIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnByaW50UGFn
ZShpbnQgcGFnZU51bWJlciwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJKHJldmlzaW9uIDExNzE0MSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtNjEsNiArNjEsOCBAQCBjbGFzcyBQbGF0Zm9ybUdlc3R1cmVFdmVudDsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK3N0cnVjdCBXZWJQcmludFBhcmFtczsKKwogY2xhc3MgU2Nyb2xs
YmFyR3JvdXA7CiBjbGFzcyBXZWJQbHVnaW47CiBjbGFzcyBXZWJQbHVnaW5Mb2FkT2JzZXJ2ZXI7
CkBAIC0xMjAsMTAgKzEyMiw4IEBAIHB1YmxpYzoKICAgICAvLyBJZiB0aGUgcGx1Z2luIGNvbnRl
bnQgc2hvdWxkIG5vdCBiZSBzY2FsZWQgdG8gdGhlIHByaW50YWJsZSBhcmVhIG9mCiAgICAgLy8g
dGhlIHBhZ2UsIHRoZW4gdGhpcyBtZXRob2Qgc2hvdWxkIHJldHVybiB0cnVlLgogICAgIGJvb2wg
aXNQcmludFNjYWxpbmdEaXNhYmxlZCgpIGNvbnN0OwotICAgIC8vIFNldHMgdXAgcHJpbnRpbmcg
YXQgdGhlIGdpdmVuIHByaW50IHJlY3QgYW5kIHByaW50ZXIgRFBJLiBwcmludGFibGVBcmVhCi0g
ICAgLy8gaXMgaW4gcG9pbnRzIChhIHBvaW50IGlzIDEvNzIgb2YgYW4gaW5jaCkuUmV0dXJucyB0
aGUgbnVtYmVyIG9mIHBhZ2VzIHRvCi0gICAgLy8gYmUgcHJpbnRlZCBhdCB0aGVzZSBzZXR0aW5n
cy4KLSAgICBpbnQgcHJpbnRCZWdpbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwcmludGFibGVB
cmVhLCBpbnQgcHJpbnRlckRQSSkgY29uc3Q7CisgICAgLy8gU2V0cyB1cCBwcmludGluZyBhdCB0
aGUgc3BlY2lmaWVkIFdlYlByaW50UGFyYW1zLiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGFnZXMg
dG8gYmUgcHJpbnRlZCBhdCB0aGVzZSBzZXR0aW5ncy4KKyAgICBpbnQgcHJpbnRCZWdpbihjb25z
dCBXZWJQcmludFBhcmFtcyYpIGNvbnN0OwogICAgIC8vIFByaW50cyB0aGUgcGFnZSBzcGVjaWZp
ZWQgYnkgcGFnZU51bWJlciAoMC1iYXNlZCBpbmRleCkgaW50byB0aGUgc3VwcGxpZWQgY2FudmFz
LgogICAgIGJvb2wgcHJpbnRQYWdlKGludCBwYWdlTnVtYmVyLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQqIGdjKTsKICAgICAvLyBFbmRzIHRoZSBwcmludCBvcGVyYXRpb24uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>