<?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>100173</bug_id>
          
          <creation_ts>2012-10-23 17:43:48 -0700</creation_ts>
          <short_desc>Re-order variables in BidiRun and LayoutState</short_desc>
          <delta_ts>2013-05-21 11:32:51 -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>Layout and Rendering</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="Chris Evans">cevans</reporter>
          <assigned_to name="Chris Evans">cevans</assigned_to>
          <cc>eric</cc>
    
    <cc>inferno</cc>
    
    <cc>kling</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>749165</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-10-23 17:43:48 -0700</bug_when>
    <thetext>(pending)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753490</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-10-29 09:08:17 -0700</bug_when>
    <thetext>Ok, with some variable re-ordering in a couple of the layout objects, it&apos;s possible to
1) Achieve some space savings.
2) Enhance security against use-after-free slightly.

The space savings are to be honest far more interesting. BidiRun goes from 32 bytes to 24 bytes on 64-bit (20 bytes to 16 bytes on 32-bit), and despite the name, BidiRun is used very copiously in text rendering in general (e.g. triggers liberally on western language pages.)

The use-after-free situation is subtle but worth documenting. Most object slots in the RenderArena now start with either a valid vtable pointer when allocated or a poisoned freelist pointer (high bit set) when freed. The exceptions are BidiRun and LayoutState. Pre-patch, the attacker gets some control of every byte of the first sizeof(void*) bytes, which is an unfortunately overlap with a vtable pointer. Post-patch, this is not the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753939</commentid>
    <comment_count>2</comment_count>
      <attachid>171360</attachid>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-10-29 19:32:10 -0700</bug_when>
    <thetext>Created attachment 171360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753940</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-10-29 19:32:49 -0700</bug_when>
    <thetext>Abhishek, I&apos;ll deal with the RenderArena memory leak in a separate bug / patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753941</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 19:35:31 -0700</bug_when>
    <thetext>Attachment 171360 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/text/BidiResolver.h:152:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753945</commentid>
    <comment_count>5</comment_count>
      <attachid>171361</attachid>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-10-29 19:39:32 -0700</bug_when>
    <thetext>Created attachment 171361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753958</commentid>
    <comment_count>6</comment_count>
      <attachid>171361</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-10-29 20:17:21 -0700</bug_when>
    <thetext>Comment on attachment 171361
Patch

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

&gt; Source/WebCore/rendering/LayoutState.h:119
&gt; +    bool m_dummy;

Do you really need this m_dummy ?

&gt; Source/WebCore/ChangeLog:8
&gt; +        Saves 8 bytes out of 48 per BidiRun on 64-bit.

Please do explain like &quot;Saves 8 bytes out of 48 per BidiRun on 64-bit by packing boolean m_hasHyphen in parent class BidiCharacterRun&quot;. Also, please explain how reordering in LayoutState helps to improve security (like which vars are directly controller by attacker and what breaks the exploit). This explanation really helps people to understand this change and also prevent from making changes to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753982</commentid>
    <comment_count>7</comment_count>
      <attachid>171361</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-29 22:07:41 -0700</bug_when>
    <thetext>Comment on attachment 171361
Patch

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

&gt; Source/WebCore/rendering/LayoutState.h:116
&gt;      bool m_clipped;
&gt;      bool m_isPaginated;

If we&apos;re saving memory, why not make these bitfields?

&gt; Source/WebCore/platform/text/BidiResolver.h:152
&gt; +    bool m_hasHyphen; // Used by BidiRun subclass; packed here to save space.

This might be considered a layering violation, since the whole idea with BidiCharacterRun is to allow paltform-only code to be able to use WebCore&apos;s bidi-resolver.  BidiRun, etc. are the DOM-aware subclasses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760066</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-11-06 14:44:31 -0800</bug_when>
    <thetext>@eseidel: Thanks for the comments and sorry for the slow action. I was scared of the efficiency of bitfields but after an hour playing with compilers and asm, I see that my fears were largely unfounded. In fact, clang (as used on Mac AFAIK) generates very compact / fast initialization code for bitfields.
Your point about layering violation is noted. I&apos;ll rename the field to reflect it&apos;s generic subclass-defined efficient storage and abstract away m_hasHyphen into a simple getter.

@inferno: with the bitfields approach suggested by @eseidel, the &quot;dummy&quot; variable is unnecessary. I&apos;ll recalculate the savings and update the ChangeLog with more verbosity as requested.

Updated patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760197</commentid>
    <comment_count>9</comment_count>
      <attachid>172675</attachid>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-11-06 16:35:00 -0800</bug_when>
    <thetext>Created attachment 172675
Addresses comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760265</commentid>
    <comment_count>10</comment_count>
      <attachid>172675</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-06 18:14:25 -0800</bug_when>
    <thetext>Comment on attachment 172675
Addresses comments

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

Otherwsie LGTM.

&gt; Source/WebCore/platform/text/BidiResolver.h:151
&gt; +    bool m_subClass1:1; // Opaque subclass storage; packed here to save space.

I would just call this m_hasHyphen and add a comment that it&apos;s used by a subclass (and that it&apos;s a layering violation, but that we do it to save N bytes per object).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760315</commentid>
    <comment_count>11</comment_count>
      <attachid>172704</attachid>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-11-06 19:36:34 -0800</bug_when>
    <thetext>Created attachment 172704
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760335</commentid>
    <comment_count>12</comment_count>
      <attachid>172704</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 20:15:15 -0800</bug_when>
    <thetext>Comment on attachment 172704
Patch for landing

Clearing flags on attachment: 172704

Committed r133713: &lt;http://trac.webkit.org/changeset/133713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760336</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 20:15:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891919</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-05-21 11:32:51 -0700</bug_when>
    <thetext>Your dream was not realized.  There are now members after m_next. :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171360</attachid>
            <date>2012-10-29 19:32:10 -0700</date>
            <delta_ts>2012-10-29 19:39:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk_100173.diff</filename>
            <type>text/plain</type>
            <size>7124</size>
            <attacher name="Chris Evans">cevans</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaVJlc29sdmVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIuaAkocmV2
aXNpb24gMTMyODA0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDEwICsxMTMsMTAgQEAKIAogc3RydWN0IEJpZGlD
aGFyYWN0ZXJSdW4gewogICAgIEJpZGlDaGFyYWN0ZXJSdW4oaW50IHN0YXJ0LCBpbnQgc3RvcCwg
QmlkaUNvbnRleHQqIGNvbnRleHQsIFdURjo6VW5pY29kZTo6RGlyZWN0aW9uIGRpcikKLSAgICAg
ICAgOiBtX3N0YXJ0KHN0YXJ0KQorICAgICAgICA6IG1fb3ZlcnJpZGUoY29udGV4dC0+b3ZlcnJp
ZGUoKSkKKyAgICAgICAgLCBtX25leHQoMCkKKyAgICAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAg
ICAgICAsIG1fc3RvcChzdG9wKQotICAgICAgICAsIG1fb3ZlcnJpZGUoY29udGV4dC0+b3ZlcnJp
ZGUoKSkKLSAgICAgICAgLCBtX25leHQoMCkKICAgICB7CiAgICAgICAgIGlmIChkaXIgPT0gV1RG
OjpVbmljb2RlOjpPdGhlck5ldXRyYWwpCiAgICAgICAgICAgICBkaXIgPSBjb250ZXh0LT5kaXIo
KTsKQEAgLTE0NiwxMSArMTQ2LDEzIEBACiAgICAgQmlkaUNoYXJhY3RlclJ1biogbmV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fbmV4dDsgfQogICAgIHZvaWQgc2V0TmV4dChCaWRpQ2hhcmFjdGVyUnVu
KiBuZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0KIAorICAgIC8vIERvIG5vdCBhZGQgb3IgcmUtb3Jk
ZXIgYW55dGhpbmcgdW50aWwgYWZ0ZXIgbV9uZXh0LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMDE3MwogICAgIHVuc2lnbmVkIGNoYXIgbV9sZXZlbDsKKyAg
ICBib29sIG1fb3ZlcnJpZGU7CisgICAgYm9vbCBtX2hhc0h5cGhlbjsgIC8vIFVzZWQgYnkgQmlk
aVJ1biBzdWJjbGFzczsgcGFja2VkIGhlcmUgdG8gc2F2ZSBzcGFjZS4KKyAgICBCaWRpQ2hhcmFj
dGVyUnVuKiBtX25leHQ7CiAgICAgaW50IG1fc3RhcnQ7CiAgICAgaW50IG1fc3RvcDsKLSAgICBi
b29sIG1fb3ZlcnJpZGU7Ci0gICAgQmlkaUNoYXJhY3RlclJ1biogbV9uZXh0OwogfTsKIAogZW51
bSBWaXN1YWxEaXJlY3Rpb25PdmVycmlkZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzI4
NjYpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNCBAQAorMjAxMi0xMC0yOSAgQ2hyaXMgRXZhbnMgIDxjZXZhbnNAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZS1vcmRlciB2YXJpYWJsZXMgaW4gQmlkaVJ1biBhbmQgTGF5b3V0U3RhdGUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAxNzMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTYXZlcyA4IGJ5
dGVzIG91dCBvZiA0OCBwZXIgQmlkaVJ1biBvbiA2NC1iaXQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L0JpZGlSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6QmlkaUNoYXJhY3RlclJ1
bjo6QmlkaUNoYXJhY3RlclJ1bik6CisgICAgICAgIChCaWRpQ2hhcmFjdGVyUnVuKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvQmlkaVJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6QmlkaVJ1bjo6Qmlk
aVJ1bik6CisgICAgICAgIChCaWRpUnVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3Rh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgIChMYXlvdXRTdGF0ZSk6IFJlLW9yZGVyIGFu
ZCBjb2FsZXNjZSBtZW1iZXIgdmFyaWFibGVzLgorCiAyMDEyLTEwLTI5ICBWaW5jZW50IFNjaGVp
YiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEzMjg0NS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNw
cAkocmV2aXNpb24gMTMyODA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTIgKzM5LDEyIEBACiAgICAgOiBtX2NvbHVt
bkluZm8oY29sdW1uSW5mbykKICAgICAsIG1fbGluZUdyaWQoMCkKICAgICAsIG1fbmV4dChwcmV2
KQorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAsIG1fZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKDApCisjZW5kaWYKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX3JlbmRlcmVyKHJlbmRl
cmVyKQogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICwgbV9leGNsdXNp
b25TaGFwZUluc2lkZUluZm8oMCkKLSNlbmRpZgogewogICAgIEFTU0VSVChtX25leHQpOwogCkBA
IC0xMzksMjEgKzEzOSwyMSBAQAogTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVj
dCogcm9vdCkKICAgICA6IG1fY2xpcHBlZChmYWxzZSkKICAgICAsIG1faXNQYWdpbmF0ZWQoZmFs
c2UpCisgICAgLCBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZChmYWxzZSkKICNpZiAhQVNTRVJU
X0RJU0FCTEVEICYmIEVOQUJMRShTQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpCiAgICAgLCBt
X2xheW91dERlbHRhWFNhdHVyYXRlZChmYWxzZSkKICAgICAsIG1fbGF5b3V0RGVsdGFZU2F0dXJh
dGVkKGZhbHNlKQogI2VuZGlmICAgIAotICAgICwgbV9wYWdlTG9naWNhbEhlaWdodCgwKQotICAg
ICwgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQoZmFsc2UpCiAgICAgLCBtX2NvbHVtbkluZm8o
MCkKICAgICAsIG1fbGluZUdyaWQoMCkKICAgICAsIG1fbmV4dCgwKQorI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKKyAgICAsIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKDApCisjZW5kaWYK
KyAgICAsIG1fcGFnZUxvZ2ljYWxIZWlnaHQoMCkKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX3Jl
bmRlcmVyKHJvb3QpCiAjZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgLCBt
X2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygwKQotI2VuZGlmCiB7CiAgICAgUmVuZGVyT2JqZWN0
KiBjb250YWluZXIgPSByb290LT5jb250YWluZXIoKTsKICAgICBGbG9hdFBvaW50IGFic0NvbnRl
bnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJh
bnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9CaWRpUnVuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0JpZGlSdW4uaAkocmV2aXNpb24gMTMyODA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0JpZGlSdW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsOCBAQAogICAgICAgICA6
IEJpZGlDaGFyYWN0ZXJSdW4oc3RhcnQsIHN0b3AsIGNvbnRleHQsIGRpcikKICAgICAgICAgLCBt
X29iamVjdChvYmplY3QpCiAgICAgICAgICwgbV9ib3goMCkKLSAgICAgICAgLCBtX2hhc0h5cGhl
bihmYWxzZSkKICAgICB7CisgICAgICAgIG1faGFzSHlwaGVuID0gZmFsc2U7CiAgICAgfQogCiAg
ICAgdm9pZCBkZXN0cm95KCk7CkBAIC02MCw3ICs2MCw2IEBACiBwdWJsaWM6CiAgICAgUmVuZGVy
T2JqZWN0KiBtX29iamVjdDsKICAgICBJbmxpbmVCb3gqIG1fYm94OwotICAgIGJvb2wgbV9oYXNI
eXBoZW47CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3Rh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUu
aAkocmV2aXNpb24gMTMyODA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDIxICs0OCwyMSBAQAogICAgIExheW91dFN0YXRl
KCkKICAgICAgICAgOiBtX2NsaXBwZWQoZmFsc2UpCiAgICAgICAgICwgbV9pc1BhZ2luYXRlZChm
YWxzZSkKKyAgICAgICAgLCBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZChmYWxzZSkKICNpZiAh
QVNTRVJUX0RJU0FCTEVEICYmIEVOQUJMRShTQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpCiAg
ICAgICAgICwgbV9sYXlvdXREZWx0YVhTYXR1cmF0ZWQoZmFsc2UpCiAgICAgICAgICwgbV9sYXlv
dXREZWx0YVlTYXR1cmF0ZWQoZmFsc2UpCiAjZW5kaWYKLSAgICAgICAgLCBtX3BhZ2VMb2dpY2Fs
SGVpZ2h0KDApCi0gICAgICAgICwgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQoZmFsc2UpCiAg
ICAgICAgICwgbV9jb2x1bW5JbmZvKDApCiAgICAgICAgICwgbV9saW5lR3JpZCgwKQogICAgICAg
ICAsIG1fbmV4dCgwKQorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAgICAgLCBtX2V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygwKQorI2VuZGlmCisgICAgICAgICwgbV9wYWdlTG9naWNh
bEhlaWdodCgwKQogI2lmbmRlZiBOREVCVUcKICAgICAgICAgLCBtX3JlbmRlcmVyKDApCiAjZW5k
aWYKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgICwgbV9leGNsdXNpb25TaGFw
ZUluc2lkZUluZm8oMCkKLSNlbmRpZgogICAgIHsKICAgICB9CiAKQEAgLTExMSwxMiArMTExLDI1
IEBACiAgICAgdm9pZCBjb21wdXRlTGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luKFJlbmRlckJveCop
OwogCiBwdWJsaWM6CisgICAgLy8gRG8gbm90IGFkZCBvciByZS1vcmRlciBhbnl0aGluZyB1bnRp
bCBhZnRlciBtX2NvbHVtbkluZm8uIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAwMTczCiAgICAgYm9vbCBtX2NsaXBwZWQ7CiAgICAgYm9vbCBtX2lzUGFnaW5h
dGVkOworICAgIC8vIElmIG91ciBwYWdlIGhlaWdodCBoYXMgY2hhbmdlZCwgdGhpcyB3aWxsIGZv
cmNlIGFsbCBibG9ja3MgdG8gcmVsYXlvdXQuCisgICAgYm9vbCBtX3BhZ2VMb2dpY2FsSGVpZ2h0
Q2hhbmdlZDsKKyAgICBib29sIG1fZHVtbXk7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRCAmJiBFTkFC
TEUoU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKQogICAgIGJvb2wgbV9sYXlvdXREZWx0YVhT
YXR1cmF0ZWQ7CiAgICAgYm9vbCBtX2xheW91dERlbHRhWVNhdHVyYXRlZDsKICNlbmRpZgorICAg
IC8vIElmIHRoZSBlbmNsb3NpbmcgcGFnaW5hdGlvbiBtb2RlbCBpcyBhIGNvbHVtbiBtb2RlbCwg
dGhlbiB0aGlzIHdpbGwgc3RvcmUgY29sdW1uIGluZm9ybWF0aW9uIGZvciBlYXN5IHJldHJpZXZh
bC9tYW5pcHVsYXRpb24uCisgICAgQ29sdW1uSW5mbyogbV9jb2x1bW5JbmZvOworICAgIC8vIFRo
ZSBjdXJyZW50IGxpbmUgZ3JpZCB0aGF0IHdlJ3JlIHNuYXBwaW5nIHRvIGFuZCB0aGUgb2Zmc2V0
IG9mIHRoZSBzdGFydCBvZiB0aGUgZ3JpZC4KKyAgICBSZW5kZXJCbG9jayogbV9saW5lR3JpZDsK
KyAgICBMYXlvdXRTdGF0ZSogbV9uZXh0OworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAg
ICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwor
I2VuZGlmCisKICAgICBMYXlvdXRSZWN0IG1fY2xpcFJlY3Q7CiAgICAgCiAgICAgLy8geC95IG9m
ZnNldCBmcm9tIGNvbnRhaW5lci4gSW5jbHVkZXMgcmVsYXRpdmUgcG9zaXRpb25pbmcgYW5kIHNj
cm9sbCBvZmZzZXRzLgpAQCAtMTMwLDI1ICsxNDMsMTQgQEAKIAogICAgIC8vIFRoZSBjdXJyZW50
IHBhZ2UgaGVpZ2h0IGZvciB0aGUgcGFnaW5hdGlvbiBtb2RlbCB0aGF0IGVuY2xvc2VzIHVzLgog
ICAgIExheW91dFVuaXQgbV9wYWdlTG9naWNhbEhlaWdodDsKLSAgICAvLyBJZiBvdXIgcGFnZSBo
ZWlnaHQgaGFzIGNoYW5nZWQsIHRoaXMgd2lsbCBmb3JjZSBhbGwgYmxvY2tzIHRvIHJlbGF5b3V0
LgotICAgIGJvb2wgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQ7CiAgICAgLy8gVGhlIG9mZnNl
dCBvZiB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0IHBhZ2UgaW4gdGhlIG5lYXJlc3QgZW5jbG9zaW5n
IHBhZ2luYXRpb24gbW9kZWwuCiAgICAgTGF5b3V0U2l6ZSBtX3BhZ2VPZmZzZXQ7Ci0gICAgLy8g
SWYgdGhlIGVuY2xvc2luZyBwYWdpbmF0aW9uIG1vZGVsIGlzIGEgY29sdW1uIG1vZGVsLCB0aGVu
IHRoaXMgd2lsbCBzdG9yZSBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIGVhc3kgcmV0cmlldmFsL21h
bmlwdWxhdGlvbi4KLSAgICBDb2x1bW5JbmZvKiBtX2NvbHVtbkluZm87Ci0KLSAgICAvLyBUaGUg
Y3VycmVudCBsaW5lIGdyaWQgdGhhdCB3ZSdyZSBzbmFwcGluZyB0byBhbmQgdGhlIG9mZnNldCBv
ZiB0aGUgc3RhcnQgb2YgdGhlIGdyaWQuCi0gICAgUmVuZGVyQmxvY2sqIG1fbGluZUdyaWQ7CiAg
ICAgTGF5b3V0U2l6ZSBtX2xpbmVHcmlkT2Zmc2V0OwogICAgIExheW91dFNpemUgbV9saW5lR3Jp
ZFBhZ2luYXRpb25PcmlnaW47CiAKLSAgICBMYXlvdXRTdGF0ZSogbV9uZXh0OwogI2lmbmRlZiBO
REVCVUcKICAgICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBtX2V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbzsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171361</attachid>
            <date>2012-10-29 19:39:32 -0700</date>
            <delta_ts>2012-11-06 16:35:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk_100173_2.diff</filename>
            <type>text/plain</type>
            <size>7123</size>
            <attacher name="Chris Evans">cevans</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkocmV2aXNpb24g
MTMyODA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzksMTIgKzM5LDEyIEBACiAgICAgOiBtX2NvbHVtbkluZm8oY29sdW1u
SW5mbykKICAgICAsIG1fbGluZUdyaWQoMCkKICAgICAsIG1fbmV4dChwcmV2KQorI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKKyAgICAsIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKDApCisj
ZW5kaWYKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX3JlbmRlcmVyKHJlbmRlcmVyKQogI2VuZGlm
Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICwgbV9leGNsdXNpb25TaGFwZUluc2lk
ZUluZm8oMCkKLSNlbmRpZgogewogICAgIEFTU0VSVChtX25leHQpOwogCkBAIC0xMzksMjEgKzEz
OSwyMSBAQAogTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVjdCogcm9vdCkKICAg
ICA6IG1fY2xpcHBlZChmYWxzZSkKICAgICAsIG1faXNQYWdpbmF0ZWQoZmFsc2UpCisgICAgLCBt
X3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZChmYWxzZSkKICNpZiAhQVNTRVJUX0RJU0FCTEVEICYm
IEVOQUJMRShTQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpCiAgICAgLCBtX2xheW91dERlbHRh
WFNhdHVyYXRlZChmYWxzZSkKICAgICAsIG1fbGF5b3V0RGVsdGFZU2F0dXJhdGVkKGZhbHNlKQog
I2VuZGlmICAgIAotICAgICwgbV9wYWdlTG9naWNhbEhlaWdodCgwKQotICAgICwgbV9wYWdlTG9n
aWNhbEhlaWdodENoYW5nZWQoZmFsc2UpCiAgICAgLCBtX2NvbHVtbkluZm8oMCkKICAgICAsIG1f
bGluZUdyaWQoMCkKICAgICAsIG1fbmV4dCgwKQorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
KyAgICAsIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKDApCisjZW5kaWYKKyAgICAsIG1fcGFn
ZUxvZ2ljYWxIZWlnaHQoMCkKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX3JlbmRlcmVyKHJvb3Qp
CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgLCBtX2V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbygwKQotI2VuZGlmCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIg
PSByb290LT5jb250YWluZXIoKTsKICAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNv
bnRhaW5lci0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlv
dXRTdGF0ZS5oCShyZXZpc2lvbiAxMzI4MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGF5b3V0U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsMjEgKzQ4LDIxIEBACiAgICAgTGF5
b3V0U3RhdGUoKQogICAgICAgICA6IG1fY2xpcHBlZChmYWxzZSkKICAgICAgICAgLCBtX2lzUGFn
aW5hdGVkKGZhbHNlKQorICAgICAgICAsIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKGZhbHNl
KQogI2lmICFBU1NFUlRfRElTQUJMRUQgJiYgRU5BQkxFKFNBVFVSQVRFRF9MQVlPVVRfQVJJVEhN
RVRJQykKICAgICAgICAgLCBtX2xheW91dERlbHRhWFNhdHVyYXRlZChmYWxzZSkKICAgICAgICAg
LCBtX2xheW91dERlbHRhWVNhdHVyYXRlZChmYWxzZSkKICNlbmRpZgotICAgICAgICAsIG1fcGFn
ZUxvZ2ljYWxIZWlnaHQoMCkKLSAgICAgICAgLCBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZChm
YWxzZSkKICAgICAgICAgLCBtX2NvbHVtbkluZm8oMCkKICAgICAgICAgLCBtX2xpbmVHcmlkKDAp
CiAgICAgICAgICwgbV9uZXh0KDApCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgICAg
ICAsIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKDApCisjZW5kaWYKKyAgICAgICAgLCBtX3Bh
Z2VMb2dpY2FsSGVpZ2h0KDApCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAsIG1fcmVuZGVyZXIo
MCkKICNlbmRpZgotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgLCBtX2V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbygwKQotI2VuZGlmCiAgICAgewogICAgIH0KIApAQCAtMTExLDEy
ICsxMTEsMjUgQEAKICAgICB2b2lkIGNvbXB1dGVMaW5lR3JpZFBhZ2luYXRpb25PcmlnaW4oUmVu
ZGVyQm94Kik7CiAKIHB1YmxpYzoKKyAgICAvLyBEbyBub3QgYWRkIG9yIHJlLW9yZGVyIGFueXRo
aW5nIHVudGlsIGFmdGVyIG1fY29sdW1uSW5mby4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDAxNzMKICAgICBib29sIG1fY2xpcHBlZDsKICAgICBib29sIG1f
aXNQYWdpbmF0ZWQ7CisgICAgLy8gSWYgb3VyIHBhZ2UgaGVpZ2h0IGhhcyBjaGFuZ2VkLCB0aGlz
IHdpbGwgZm9yY2UgYWxsIGJsb2NrcyB0byByZWxheW91dC4KKyAgICBib29sIG1fcGFnZUxvZ2lj
YWxIZWlnaHRDaGFuZ2VkOworICAgIGJvb2wgbV9kdW1teTsKICNpZiAhQVNTRVJUX0RJU0FCTEVE
ICYmIEVOQUJMRShTQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpCiAgICAgYm9vbCBtX2xheW91
dERlbHRhWFNhdHVyYXRlZDsKICAgICBib29sIG1fbGF5b3V0RGVsdGFZU2F0dXJhdGVkOwogI2Vu
ZGlmCisgICAgLy8gSWYgdGhlIGVuY2xvc2luZyBwYWdpbmF0aW9uIG1vZGVsIGlzIGEgY29sdW1u
IG1vZGVsLCB0aGVuIHRoaXMgd2lsbCBzdG9yZSBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIGVhc3kg
cmV0cmlldmFsL21hbmlwdWxhdGlvbi4KKyAgICBDb2x1bW5JbmZvKiBtX2NvbHVtbkluZm87Cisg
ICAgLy8gVGhlIGN1cnJlbnQgbGluZSBncmlkIHRoYXQgd2UncmUgc25hcHBpbmcgdG8gYW5kIHRo
ZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBncmlkLgorICAgIFJlbmRlckJsb2NrKiBtX2xp
bmVHcmlkOworICAgIExheW91dFN0YXRlKiBtX25leHQ7CisjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQorICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogbV9leGNsdXNpb25TaGFwZUluc2lk
ZUluZm87CisjZW5kaWYKKwogICAgIExheW91dFJlY3QgbV9jbGlwUmVjdDsKICAgICAKICAgICAv
LyB4L3kgb2Zmc2V0IGZyb20gY29udGFpbmVyLiBJbmNsdWRlcyByZWxhdGl2ZSBwb3NpdGlvbmlu
ZyBhbmQgc2Nyb2xsIG9mZnNldHMuCkBAIC0xMzAsMjUgKzE0MywxNCBAQAogCiAgICAgLy8gVGhl
IGN1cnJlbnQgcGFnZSBoZWlnaHQgZm9yIHRoZSBwYWdpbmF0aW9uIG1vZGVsIHRoYXQgZW5jbG9z
ZXMgdXMuCiAgICAgTGF5b3V0VW5pdCBtX3BhZ2VMb2dpY2FsSGVpZ2h0OwotICAgIC8vIElmIG91
ciBwYWdlIGhlaWdodCBoYXMgY2hhbmdlZCwgdGhpcyB3aWxsIGZvcmNlIGFsbCBibG9ja3MgdG8g
cmVsYXlvdXQuCi0gICAgYm9vbCBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZDsKICAgICAvLyBU
aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgZmlyc3QgcGFnZSBpbiB0aGUgbmVhcmVzdCBl
bmNsb3NpbmcgcGFnaW5hdGlvbiBtb2RlbC4KICAgICBMYXlvdXRTaXplIG1fcGFnZU9mZnNldDsK
LSAgICAvLyBJZiB0aGUgZW5jbG9zaW5nIHBhZ2luYXRpb24gbW9kZWwgaXMgYSBjb2x1bW4gbW9k
ZWwsIHRoZW4gdGhpcyB3aWxsIHN0b3JlIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgZWFzeSByZXRy
aWV2YWwvbWFuaXB1bGF0aW9uLgotICAgIENvbHVtbkluZm8qIG1fY29sdW1uSW5mbzsKLQotICAg
IC8vIFRoZSBjdXJyZW50IGxpbmUgZ3JpZCB0aGF0IHdlJ3JlIHNuYXBwaW5nIHRvIGFuZCB0aGUg
b2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgZ3JpZC4KLSAgICBSZW5kZXJCbG9jayogbV9saW5l
R3JpZDsKICAgICBMYXlvdXRTaXplIG1fbGluZUdyaWRPZmZzZXQ7CiAgICAgTGF5b3V0U2l6ZSBt
X2xpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbjsKIAotICAgIExheW91dFN0YXRlKiBtX25leHQ7CiAj
aWZuZGVmIE5ERUJVRwogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsKICNlbmRpZgotI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIG1f
ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQmlkaVJ1bi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9CaWRpUnVuLmgJKHJldmlzaW9uIDEzMjgw
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9CaWRpUnVuLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDggKzM4LDggQEAKICAgICAgICAgOiBCaWRpQ2hhcmFjdGVyUnVuKHN0YXJ0LCBzdG9w
LCBjb250ZXh0LCBkaXIpCiAgICAgICAgICwgbV9vYmplY3Qob2JqZWN0KQogICAgICAgICAsIG1f
Ym94KDApCi0gICAgICAgICwgbV9oYXNIeXBoZW4oZmFsc2UpCiAgICAgeworICAgICAgICBtX2hh
c0h5cGhlbiA9IGZhbHNlOwogICAgIH0KIAogICAgIHZvaWQgZGVzdHJveSgpOwpAQCAtNjAsNyAr
NjAsNiBAQAogcHVibGljOgogICAgIFJlbmRlck9iamVjdCogbV9vYmplY3Q7CiAgICAgSW5saW5l
Qm94KiBtX2JveDsKLSAgICBib29sIG1faGFzSHlwaGVuOwogfTsKIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oCShyZXZpc2lvbiAxMzI4MDQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTMsMTAgKzExMywxMCBAQAogCiBzdHJ1Y3QgQmlkaUNoYXJhY3RlclJ1biB7
CiAgICAgQmlkaUNoYXJhY3RlclJ1bihpbnQgc3RhcnQsIGludCBzdG9wLCBCaWRpQ29udGV4dCog
Y29udGV4dCwgV1RGOjpVbmljb2RlOjpEaXJlY3Rpb24gZGlyKQotICAgICAgICA6IG1fc3RhcnQo
c3RhcnQpCisgICAgICAgIDogbV9vdmVycmlkZShjb250ZXh0LT5vdmVycmlkZSgpKQorICAgICAg
ICAsIG1fbmV4dCgwKQorICAgICAgICAsIG1fc3RhcnQoc3RhcnQpCiAgICAgICAgICwgbV9zdG9w
KHN0b3ApCi0gICAgICAgICwgbV9vdmVycmlkZShjb250ZXh0LT5vdmVycmlkZSgpKQotICAgICAg
ICAsIG1fbmV4dCgwKQogICAgIHsKICAgICAgICAgaWYgKGRpciA9PSBXVEY6OlVuaWNvZGU6Ok90
aGVyTmV1dHJhbCkKICAgICAgICAgICAgIGRpciA9IGNvbnRleHQtPmRpcigpOwpAQCAtMTQ2LDEx
ICsxNDYsMTMgQEAKICAgICBCaWRpQ2hhcmFjdGVyUnVuKiBuZXh0KCkgY29uc3QgeyByZXR1cm4g
bV9uZXh0OyB9CiAgICAgdm9pZCBzZXROZXh0KEJpZGlDaGFyYWN0ZXJSdW4qIG5leHQpIHsgbV9u
ZXh0ID0gbmV4dDsgfQogCisgICAgLy8gRG8gbm90IGFkZCBvciByZS1vcmRlciBhbnl0aGluZyB1
bnRpbCBhZnRlciBtX25leHQuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAwMTczCiAgICAgdW5zaWduZWQgY2hhciBtX2xldmVsOworICAgIGJvb2wgbV9vdmVy
cmlkZTsKKyAgICBib29sIG1faGFzSHlwaGVuOyAvLyBVc2VkIGJ5IEJpZGlSdW4gc3ViY2xhc3M7
IHBhY2tlZCBoZXJlIHRvIHNhdmUgc3BhY2UuCisgICAgQmlkaUNoYXJhY3RlclJ1biogbV9uZXh0
OwogICAgIGludCBtX3N0YXJ0OwogICAgIGludCBtX3N0b3A7Ci0gICAgYm9vbCBtX292ZXJyaWRl
OwotICAgIEJpZGlDaGFyYWN0ZXJSdW4qIG1fbmV4dDsKIH07CiAKIGVudW0gVmlzdWFsRGlyZWN0
aW9uT3ZlcnJpZGUgewpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMyODY2KQorKysgU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTIt
MTAtMjkgIENocmlzIEV2YW5zICA8Y2V2YW5zQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmUtb3Jk
ZXIgdmFyaWFibGVzIGluIEJpZGlSdW4gYW5kIExheW91dFN0YXRlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMTczCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2F2ZXMgOCBieXRlcyBvdXQgb2YgNDgg
cGVyIEJpZGlSdW4gb24gNjQtYml0LgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRpUmVz
b2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJpZGlDaGFyYWN0ZXJSdW46OkJpZGlDaGFyYWN0
ZXJSdW4pOgorICAgICAgICAoQmlkaUNoYXJhY3RlclJ1bik6CisgICAgICAgICogcmVuZGVyaW5n
L0JpZGlSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OkJpZGlSdW46OkJpZGlSdW4pOgorICAgICAg
ICAoQmlkaVJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVy
aW5nL0xheW91dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0
U3RhdGUpOgorICAgICAgICAoTGF5b3V0U3RhdGUpOiBSZS1vcmRlciBhbmQgY29hbGVzY2UgbWVt
YmVyIHZhcmlhYmxlcy4KKwogMjAxMi0xMC0yOSAgVmluY2VudCBTY2hlaWIgIDxzY2hlaWJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzI4NDUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172675</attachid>
            <date>2012-11-06 16:35:00 -0800</date>
            <delta_ts>2012-11-06 19:36:34 -0800</delta_ts>
            <desc>Addresses comments</desc>
            <filename>wk_100173_3.diff</filename>
            <type>text/plain</type>
            <size>10248</size>
            <attacher name="Chris Evans">cevans</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEyLTExLTA2ICBDaHJpcyBF
dmFucyAgPGNldmFuc0Bnb29nbGUuY29tPgorCisgICAgICAgIFJlLW9yZGVyIHZhcmlhYmxlcyBp
biBCaWRpUnVuIGFuZCBMYXlvdXRTdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIHZhcmlhYmxlIHJlLW9yZGVyaW5nIGFuZCB1c2Ugb2YgYml0
ZmllbGRzIGZvciBib29scyBoYXMgdHdvIGJlbmVmaXRzOgorICAgICAgICAxKSBTaXplIHJlZHVj
dGlvbi4gc2l6ZW9mKEJpZGlSdW4pIGdvZXMgZG93biBmcm9tIDQ4IHRvIDQwIGJ5dGVzIG9uIDY0
LWJpdC4gVGhpcyBpcyBhY2hpZXZlZCBieSByZW1vdmluZyBhIGJvb2wgbWVtYmVyIHZhcmlhYmxl
IGZyb20gQmlkaVJ1biBhbmQgcGFja2luZyBpdCB0b2dldGhlciB3aXRoIG90aGVyIGJvb2xzIGlu
IHRoZSBCaWRpQ2hhcmFjdGVyUnVuIGJhc2UgY2xhc3MuCisgICAgICAgIDIpIFNlY3VyaXR5IGlt
cHJvdmVtZW50LiBXZSBoYXZlIGEgbG90IG9mIHVzZS1hZnRlci1mcmVlIGluIHRoZSBSZW5kZXJP
YmplY3QgaGllcmFyY2h5LCBhbmQgdGhlIFJlbmRlckFyZW5hIGNsYXNzIHByb3RlY3RzIHVzIGZy
b20gYSBsb3Qgb2YgdHJvdWJsZSBieSBlbnN1cmluZyB0aGF0IG9iamVjdHMgb2YgYXJiaXRyYXJ5
IHR5cGUgY2Fubm90IGJlIG92ZXJsYXllZCBvbiB0b3Agb2YgZnJlZWQgUmVuZGVyT2JqZWN0cy4g
VGhpcyBjaGFuZ2UgYWRkaXRpb25hbGx5IG1ha2VzIHN1cmUgdGhhdCBub24tdmlydHVhbCBSZW5k
ZXJBcmVuYSBhbGxvY2F0ZWQgb2JqZWN0cyBkbyBub3QgaGF2ZSBtZW1iZXIgdmFyaWFibGVzIHdo
aWNoIGZ1bGx5IG92ZXJsYXAgdGhlIGZyZWVkIHZ0YWJsZSBwb2ludGVyLiBUaGlzIGxlYXZlcyBy
ZS11c2VkIHZ0YWJsZSBwb2ludGVycyBhbHdheXMgcG9pbnRpbmcgdG8gZWl0aGVyIGEgdmFsaWQg
dnRhYmxlIG9yIGFuIGludmFsaWQgYWRkcmVzcyBkdWUgdG8gdGhlIGZyZWVsaXN0IGhpZ2gtYml0
IHBvaXNvbmluZy4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBleGNsdXNpdmVseSBhYm91dCBz
aXplIHNhdmluZ3M7IGl0IGlzIHBlcmZvcm1hbmNlIG5ldXRyYWwgYXMgeW91IHdvdWxkIGV4cGVj
dCwgaW5jbHVkaW5nIG9uIFBhcnNlci9odG1sNS1mdWxsLXJlbmRlci5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6QmlkaUNo
YXJhY3RlclJ1bjo6QmlkaUNoYXJhY3RlclJ1bik6IGltcGFjdCBmcm9tIHJlLW9yZGVyaW5nIG1l
bWJlcnMuCisgICAgICAgIChCaWRpQ2hhcmFjdGVyUnVuKTogcHJvdmlkZSBhbiBlZmZpY2llbnRs
eSBwYWNrZWQgYml0IG9mIHN0b3JhZ2UgZm9yIHN1YmNsYXNzZXMgdG8gdXNlLCBhbmQgcmUtb3Jk
ZXIgbWVtYmVycyB0byBwbGFjZSBib29scyBhZGphY2VudC4KKyAgICAgICAgKiByZW5kZXJpbmcv
QmlkaVJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6QmlkaVJ1bjo6QmlkaVJ1bik6IHVzZSBiYXNl
IGNsYXNzJyBlZmZpY2llbnRseSBwYWNrZWQgYml0IHN0b3JhZ2UgZm9yIG1faGFzSHlwaGVuLgor
ICAgICAgICAoV2ViQ29yZTo6QmlkaVJ1bjo6aGFzSHlwaGVuKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpZGlSdW46OnNldEhhc0h5cGhlbik6IG5ldyBhY2Nlc3NvcnMgZm9yIHRoZSBvbGQgbV9oYXNI
eXBoZW4gZmllbGQuCisgICAgICAgIChCaWRpUnVuKTogbV9oYXNIeXBoZW4gaXMgbm93IHN0b3Jl
ZCBpbiB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRl
OjpMYXlvdXRTdGF0ZSk6IGltcGFjdCBmcm9tIHJlLW9yZGVyaW5nIG1lbWJlcnMuCisgICAgICAg
IChMYXlvdXRTdGF0ZSk6IHJlLW9yZGVyIG1lbWJlcnMgdG8gcGxhY2UgYm9vbHMgYWRqYWNlbnRs
eS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb25zdHJ1Y3RMaW5lKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6IGRvbid0IGFjY2Vz
cyBtX2hhc0h5cGhlbiBkaXJlY3RseS4KKwogMjAxMi0xMS0wNiAgVGlhbmNoZW5nIEppYW5nICA8
dGlqaWFuZ0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBVcGRhdGUgQkIxMCBmb3Jt
IHRoZW1lLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZl
ci5oCShyZXZpc2lvbiAxMzM1MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jp
ZGlSZXNvbHZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsMTAgKzExMywxMCBAQAogCiBzdHJ1
Y3QgQmlkaUNoYXJhY3RlclJ1biB7CiAgICAgQmlkaUNoYXJhY3RlclJ1bihpbnQgc3RhcnQsIGlu
dCBzdG9wLCBCaWRpQ29udGV4dCogY29udGV4dCwgV1RGOjpVbmljb2RlOjpEaXJlY3Rpb24gZGly
KQotICAgICAgICA6IG1fc3RhcnQoc3RhcnQpCisgICAgICAgIDogbV9vdmVycmlkZShjb250ZXh0
LT5vdmVycmlkZSgpKQorICAgICAgICAsIG1fbmV4dCgwKQorICAgICAgICAsIG1fc3RhcnQoc3Rh
cnQpCiAgICAgICAgICwgbV9zdG9wKHN0b3ApCi0gICAgICAgICwgbV9vdmVycmlkZShjb250ZXh0
LT5vdmVycmlkZSgpKQotICAgICAgICAsIG1fbmV4dCgwKQogICAgIHsKICAgICAgICAgaWYgKGRp
ciA9PSBXVEY6OlVuaWNvZGU6Ok90aGVyTmV1dHJhbCkKICAgICAgICAgICAgIGRpciA9IGNvbnRl
eHQtPmRpcigpOwpAQCAtMTQ2LDExICsxNDYsMTMgQEAKICAgICBCaWRpQ2hhcmFjdGVyUnVuKiBu
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0OyB9CiAgICAgdm9pZCBzZXROZXh0KEJpZGlDaGFy
YWN0ZXJSdW4qIG5leHQpIHsgbV9uZXh0ID0gbmV4dDsgfQogCisgICAgLy8gRG8gbm90IGFkZCBh
bnl0aGluZyBhcGFydCBmcm9tIGJpdGZpZWxkcyB1bnRpbCBhZnRlciBtX25leHQuIFNlZSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMTczCisgICAgYm9vbCBtX292
ZXJyaWRlOjE7CisgICAgYm9vbCBtX3N1YkNsYXNzMToxOyAvLyBPcGFxdWUgc3ViY2xhc3Mgc3Rv
cmFnZTsgcGFja2VkIGhlcmUgdG8gc2F2ZSBzcGFjZS4KICAgICB1bnNpZ25lZCBjaGFyIG1fbGV2
ZWw7CisgICAgQmlkaUNoYXJhY3RlclJ1biogbV9uZXh0OwogICAgIGludCBtX3N0YXJ0OwogICAg
IGludCBtX3N0b3A7Ci0gICAgYm9vbCBtX292ZXJyaWRlOwotICAgIEJpZGlDaGFyYWN0ZXJSdW4q
IG1fbmV4dDsKIH07CiAKIGVudW0gVmlzdWFsRGlyZWN0aW9uT3ZlcnJpZGUgewpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgJKHJldmlzaW9uIDEzMzUyNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
OCwyMSArNDgsMjEgQEAKICAgICBMYXlvdXRTdGF0ZSgpCiAgICAgICAgIDogbV9jbGlwcGVkKGZh
bHNlKQogICAgICAgICAsIG1faXNQYWdpbmF0ZWQoZmFsc2UpCisgICAgICAgICwgbV9wYWdlTG9n
aWNhbEhlaWdodENoYW5nZWQoZmFsc2UpCiAjaWYgIUFTU0VSVF9ESVNBQkxFRCAmJiBFTkFCTEUo
U0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKQogICAgICAgICAsIG1fbGF5b3V0RGVsdGFYU2F0
dXJhdGVkKGZhbHNlKQogICAgICAgICAsIG1fbGF5b3V0RGVsdGFZU2F0dXJhdGVkKGZhbHNlKQog
I2VuZGlmCi0gICAgICAgICwgbV9wYWdlTG9naWNhbEhlaWdodCgwKQotICAgICAgICAsIG1fcGFn
ZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKGZhbHNlKQogICAgICAgICAsIG1fY29sdW1uSW5mbygwKQog
ICAgICAgICAsIG1fbGluZUdyaWQoMCkKICAgICAgICAgLCBtX25leHQoMCkKKyNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCisgICAgICAgICwgbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8oMCkK
KyNlbmRpZgorICAgICAgICAsIG1fcGFnZUxvZ2ljYWxIZWlnaHQoMCkKICNpZm5kZWYgTkRFQlVH
CiAgICAgICAgICwgbV9yZW5kZXJlcigwKQogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotICAgICAgICAsIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKDApCi0jZW5kaWYKICAg
ICB7CiAgICAgfQogCkBAIC0xMTEsMTIgKzExMSwyNCBAQAogICAgIHZvaWQgY29tcHV0ZUxpbmVH
cmlkUGFnaW5hdGlvbk9yaWdpbihSZW5kZXJCb3gqKTsKIAogcHVibGljOgotICAgIGJvb2wgbV9j
bGlwcGVkOwotICAgIGJvb2wgbV9pc1BhZ2luYXRlZDsKKyAgICAvLyBEbyBub3QgYWRkIGFueXRo
aW5nIGFwYXJ0IGZyb20gYml0ZmllbGRzIHVudGlsIGFmdGVyIG1fY29sdW1uSW5mby4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAxNzMKKyAgICBib29sIG1f
Y2xpcHBlZDoxOworICAgIGJvb2wgbV9pc1BhZ2luYXRlZDoxOworICAgIC8vIElmIG91ciBwYWdl
IGhlaWdodCBoYXMgY2hhbmdlZCwgdGhpcyB3aWxsIGZvcmNlIGFsbCBibG9ja3MgdG8gcmVsYXlv
dXQuCisgICAgYm9vbCBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZDoxOwogI2lmICFBU1NFUlRf
RElTQUJMRUQgJiYgRU5BQkxFKFNBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykKLSAgICBib29s
IG1fbGF5b3V0RGVsdGFYU2F0dXJhdGVkOwotICAgIGJvb2wgbV9sYXlvdXREZWx0YVlTYXR1cmF0
ZWQ7CisgICAgYm9vbCBtX2xheW91dERlbHRhWFNhdHVyYXRlZDoxOworICAgIGJvb2wgbV9sYXlv
dXREZWx0YVlTYXR1cmF0ZWQ6MTsKICNlbmRpZgorICAgIC8vIElmIHRoZSBlbmNsb3NpbmcgcGFn
aW5hdGlvbiBtb2RlbCBpcyBhIGNvbHVtbiBtb2RlbCwgdGhlbiB0aGlzIHdpbGwgc3RvcmUgY29s
dW1uIGluZm9ybWF0aW9uIGZvciBlYXN5IHJldHJpZXZhbC9tYW5pcHVsYXRpb24uCisgICAgQ29s
dW1uSW5mbyogbV9jb2x1bW5JbmZvOworICAgIC8vIFRoZSBjdXJyZW50IGxpbmUgZ3JpZCB0aGF0
IHdlJ3JlIHNuYXBwaW5nIHRvIGFuZCB0aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgZ3Jp
ZC4KKyAgICBSZW5kZXJCbG9jayogbV9saW5lR3JpZDsKKyAgICBMYXlvdXRTdGF0ZSogbV9uZXh0
OworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8qIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOworI2VuZGlmCisKICAgICBMYXlvdXRSZWN0
IG1fY2xpcFJlY3Q7CiAgICAgCiAgICAgLy8geC95IG9mZnNldCBmcm9tIGNvbnRhaW5lci4gSW5j
bHVkZXMgcmVsYXRpdmUgcG9zaXRpb25pbmcgYW5kIHNjcm9sbCBvZmZzZXRzLgpAQCAtMTMwLDI1
ICsxNDIsMTQgQEAKIAogICAgIC8vIFRoZSBjdXJyZW50IHBhZ2UgaGVpZ2h0IGZvciB0aGUgcGFn
aW5hdGlvbiBtb2RlbCB0aGF0IGVuY2xvc2VzIHVzLgogICAgIExheW91dFVuaXQgbV9wYWdlTG9n
aWNhbEhlaWdodDsKLSAgICAvLyBJZiBvdXIgcGFnZSBoZWlnaHQgaGFzIGNoYW5nZWQsIHRoaXMg
d2lsbCBmb3JjZSBhbGwgYmxvY2tzIHRvIHJlbGF5b3V0LgotICAgIGJvb2wgbV9wYWdlTG9naWNh
bEhlaWdodENoYW5nZWQ7CiAgICAgLy8gVGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIGZp
cnN0IHBhZ2UgaW4gdGhlIG5lYXJlc3QgZW5jbG9zaW5nIHBhZ2luYXRpb24gbW9kZWwuCiAgICAg
TGF5b3V0U2l6ZSBtX3BhZ2VPZmZzZXQ7Ci0gICAgLy8gSWYgdGhlIGVuY2xvc2luZyBwYWdpbmF0
aW9uIG1vZGVsIGlzIGEgY29sdW1uIG1vZGVsLCB0aGVuIHRoaXMgd2lsbCBzdG9yZSBjb2x1bW4g
aW5mb3JtYXRpb24gZm9yIGVhc3kgcmV0cmlldmFsL21hbmlwdWxhdGlvbi4KLSAgICBDb2x1bW5J
bmZvKiBtX2NvbHVtbkluZm87Ci0KLSAgICAvLyBUaGUgY3VycmVudCBsaW5lIGdyaWQgdGhhdCB3
ZSdyZSBzbmFwcGluZyB0byBhbmQgdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIGdyaWQu
Ci0gICAgUmVuZGVyQmxvY2sqIG1fbGluZUdyaWQ7CiAgICAgTGF5b3V0U2l6ZSBtX2xpbmVHcmlk
T2Zmc2V0OwogICAgIExheW91dFNpemUgbV9saW5lR3JpZFBhZ2luYXRpb25PcmlnaW47CiAKLSAg
ICBMYXlvdXRTdGF0ZSogbV9uZXh0OwogI2lmbmRlZiBOREVCVUcKICAgICBSZW5kZXJPYmplY3Qq
IG1fcmVuZGVyZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzsKLSNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlzaW9uIDEzMzUy
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01ODcsNyArNTg3LDcgQEAKICAgICAgICAgICAgIHRleHQtPnNl
dFN0YXJ0KHItPm1fc3RhcnQpOwogICAgICAgICAgICAgdGV4dC0+c2V0TGVuKHItPm1fc3RvcCAt
IHItPm1fc3RhcnQpOwogICAgICAgICAgICAgdGV4dC0+c2V0RGlyT3ZlcnJpZGUoci0+ZGlyT3Zl
cnJpZGUodmlzdWFsbHlPcmRlcmVkKSk7Ci0gICAgICAgICAgICBpZiAoci0+bV9oYXNIeXBoZW4p
CisgICAgICAgICAgICBpZiAoci0+aGFzSHlwaGVuKCkpCiAgICAgICAgICAgICAgICAgdGV4dC0+
c2V0SGFzSHlwaGVuKHRydWUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTQ2Nyw3ICsxNDY3LDcg
QEAKICAgICAgICAgICAgIEJpZGlSdW4qIHRyYWlsaW5nU3BhY2VSdW4gPSAhbGF5b3V0U3RhdGUu
bGluZUluZm8oKS5wcmV2aW91c0xpbmVCcm9rZUNsZWFubHkoKSA/IGhhbmRsZVRyYWlsaW5nU3Bh
Y2VzKGJpZGlSdW5zLCByZXNvbHZlci5jb250ZXh0KCkpIDogMDsKIAogICAgICAgICAgICAgaWYg
KGJpZGlSdW5zLnJ1bkNvdW50KCkgJiYgbGluZUJyZWFrZXIubGluZVdhc0h5cGhlbmF0ZWQoKSkg
ewotICAgICAgICAgICAgICAgIGJpZGlSdW5zLmxvZ2ljYWxseUxhc3RSdW4oKS0+bV9oYXNIeXBo
ZW4gPSB0cnVlOworICAgICAgICAgICAgICAgIGJpZGlSdW5zLmxvZ2ljYWxseUxhc3RSdW4oKS0+
c2V0SGFzSHlwaGVuKHRydWUpOwogICAgICAgICAgICAgICAgIGNvbnNlY3V0aXZlSHlwaGVuYXRl
ZExpbmVzKys7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBjb25zZWN1dGl2
ZUh5cGhlbmF0ZWRMaW5lcyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5
b3V0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlv
dXRTdGF0ZS5jcHAJKHJldmlzaW9uIDEzMzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEyICszOSwxMiBAQAogICAg
IDogbV9jb2x1bW5JbmZvKGNvbHVtbkluZm8pCiAgICAgLCBtX2xpbmVHcmlkKDApCiAgICAgLCBt
X25leHQocHJldikKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgLCBtX2V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbygwKQorI2VuZGlmCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9yZW5k
ZXJlcihyZW5kZXJlcikKICNlbmRpZgotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAs
IG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKDApCi0jZW5kaWYKIHsKICAgICBBU1NFUlQobV9u
ZXh0KTsKIApAQCAtMTM5LDIxICsxMzksMjEgQEAKIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShS
ZW5kZXJPYmplY3QqIHJvb3QpCiAgICAgOiBtX2NsaXBwZWQoZmFsc2UpCiAgICAgLCBtX2lzUGFn
aW5hdGVkKGZhbHNlKQorICAgICwgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQoZmFsc2UpCiAj
aWYgIUFTU0VSVF9ESVNBQkxFRCAmJiBFTkFCTEUoU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElD
KQogICAgICwgbV9sYXlvdXREZWx0YVhTYXR1cmF0ZWQoZmFsc2UpCiAgICAgLCBtX2xheW91dERl
bHRhWVNhdHVyYXRlZChmYWxzZSkKICNlbmRpZiAgICAKLSAgICAsIG1fcGFnZUxvZ2ljYWxIZWln
aHQoMCkKLSAgICAsIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9j
b2x1bW5JbmZvKDApCiAgICAgLCBtX2xpbmVHcmlkKDApCiAgICAgLCBtX25leHQoMCkKKyNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgLCBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygw
KQorI2VuZGlmCisgICAgLCBtX3BhZ2VMb2dpY2FsSGVpZ2h0KDApCiAjaWZuZGVmIE5ERUJVRwog
ICAgICwgbV9yZW5kZXJlcihyb290KQogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19FWENMVVNJT05T
KQotICAgICwgbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8oMCkKLSNlbmRpZgogewogICAgIFJl
bmRlck9iamVjdCogY29udGFpbmVyID0gcm9vdC0+Y29udGFpbmVyKCk7CiAgICAgRmxvYXRQb2lu
dCBhYnNDb250ZW50UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50
KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQmlkaVJ1bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9CaWRpUnVuLmgJKHJldmlzaW9uIDEzMzUyNSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9CaWRpUnVuLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4LDggQEAK
ICAgICAgICAgOiBCaWRpQ2hhcmFjdGVyUnVuKHN0YXJ0LCBzdG9wLCBjb250ZXh0LCBkaXIpCiAg
ICAgICAgICwgbV9vYmplY3Qob2JqZWN0KQogICAgICAgICAsIG1fYm94KDApCi0gICAgICAgICwg
bV9oYXNIeXBoZW4oZmFsc2UpCiAgICAgeworICAgICAgICBtX3N1YkNsYXNzMSA9IGZhbHNlOyAv
LyBXYXMgbV9oYXNIeXBoZW47IHN0b3JlZCBpbiBiYXNlIGNsYXNzIHRvIHNhdmUgc3BhY2UuCiAg
ICAgfQogCiAgICAgdm9pZCBkZXN0cm95KCk7CkBAIC01Miw2ICs1Miw4IEBACiAKICAgICBCaWRp
UnVuKiBuZXh0KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QmlkaVJ1bio+KG1fbmV4dCk7IH0KICAg
ICBSZW5kZXJPYmplY3QqIG9iamVjdCgpIHsgcmV0dXJuIG1fb2JqZWN0OyB9CisgICAgYm9vbCBo
YXNIeXBoZW4oKSBjb25zdCB7IHJldHVybiBtX3N1YkNsYXNzMTsgfQorICAgIHZvaWQgc2V0SGFz
SHlwaGVuKGJvb2wgaHlwaGVuKSB7IG1fc3ViQ2xhc3MxID0gaHlwaGVuOyB9CiAKIHByaXZhdGU6
CiAgICAgLy8gVGhlIG5vcm1hbCBvcGVyYXRvciBuZXcgaXMgZGlzYWxsb3dlZC4KQEAgLTYwLDcg
KzYyLDYgQEAKIHB1YmxpYzoKICAgICBSZW5kZXJPYmplY3QqIG1fb2JqZWN0OwogICAgIElubGlu
ZUJveCogbV9ib3g7Ci0gICAgYm9vbCBtX2hhc0h5cGhlbjsKIH07CiAKIH0K
</data>
<flag name="review"
          id="187087"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="187088"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172704</attachid>
            <date>2012-11-06 19:36:34 -0800</date>
            <delta_ts>2012-11-06 20:15:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk_100173_4.diff</filename>
            <type>text/plain</type>
            <size>8592</size>
            <attacher name="Chris Evans">cevans</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaVJlc29sdmVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIuaAkocmV2
aXNpb24gMTMzNTI1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDEwICsxMTMsMTAgQEAKIAogc3RydWN0IEJpZGlD
aGFyYWN0ZXJSdW4gewogICAgIEJpZGlDaGFyYWN0ZXJSdW4oaW50IHN0YXJ0LCBpbnQgc3RvcCwg
QmlkaUNvbnRleHQqIGNvbnRleHQsIFdURjo6VW5pY29kZTo6RGlyZWN0aW9uIGRpcikKLSAgICAg
ICAgOiBtX3N0YXJ0KHN0YXJ0KQorICAgICAgICA6IG1fb3ZlcnJpZGUoY29udGV4dC0+b3ZlcnJp
ZGUoKSkKKyAgICAgICAgLCBtX25leHQoMCkKKyAgICAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAg
ICAgICAsIG1fc3RvcChzdG9wKQotICAgICAgICAsIG1fb3ZlcnJpZGUoY29udGV4dC0+b3ZlcnJp
ZGUoKSkKLSAgICAgICAgLCBtX25leHQoMCkKICAgICB7CiAgICAgICAgIGlmIChkaXIgPT0gV1RG
OjpVbmljb2RlOjpPdGhlck5ldXRyYWwpCiAgICAgICAgICAgICBkaXIgPSBjb250ZXh0LT5kaXIo
KTsKQEAgLTE0NiwxMSArMTQ2LDEzIEBACiAgICAgQmlkaUNoYXJhY3RlclJ1biogbmV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fbmV4dDsgfQogICAgIHZvaWQgc2V0TmV4dChCaWRpQ2hhcmFjdGVyUnVu
KiBuZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0KIAorICAgIC8vIERvIG5vdCBhZGQgYW55dGhpbmcg
YXBhcnQgZnJvbSBiaXRmaWVsZHMgdW50aWwgYWZ0ZXIgbV9uZXh0LiBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDE3MworICAgIGJvb2wgbV9vdmVycmlkZTox
OworICAgIGJvb2wgbV9oYXNIeXBoZW46MTsgLy8gVXNlZCBieSBCaWRpUnVuIHN1YmNsYXNzIHdo
aWNoIGlzIGEgbGF5ZXJpbmcgdmlvbGF0aW9uIGJ1dCBlbmFibGVzIHVzIHRvIHNhdmUgOCBieXRl
cyBwZXIgb2JqZWN0IG9uIDY0LWJpdC4KICAgICB1bnNpZ25lZCBjaGFyIG1fbGV2ZWw7CisgICAg
QmlkaUNoYXJhY3RlclJ1biogbV9uZXh0OwogICAgIGludCBtX3N0YXJ0OwogICAgIGludCBtX3N0
b3A7Ci0gICAgYm9vbCBtX292ZXJyaWRlOwotICAgIEJpZGlDaGFyYWN0ZXJSdW4qIG1fbmV4dDsK
IH07CiAKIGVudW0gVmlzdWFsRGlyZWN0aW9uT3ZlcnJpZGUgewpJbmRleDogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2
aXNpb24gMTMzNjc5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMTEtMDYgIENocmlzIEV2YW5zICA8Y2V2YW5zQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmUtb3JkZXIgdmFyaWFibGVzIGluIEJpZGlSdW4gYW5kIExheW91
dFN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDAxNzMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGUg
dmFyaWFibGUgcmUtb3JkZXJpbmcgYW5kIHVzZSBvZiBiaXRmaWVsZHMgZm9yIGJvb2xzIGhhcyB0
d28gYmVuZWZpdHM6CisgICAgICAgIDEpIFNpemUgcmVkdWN0aW9uLiBzaXplb2YoQmlkaVJ1bikg
Z29lcyBkb3duIGZyb20gNDggdG8gNDAgYnl0ZXMgb24gNjQtYml0LiBUaGlzIGlzIGFjaGlldmVk
IGJ5IHJlbW92aW5nIGEgYm9vbCBtZW1iZXIgdmFyaWFibGUgZnJvbSBCaWRpUnVuIGFuZCBwYWNr
aW5nIGl0IHRvZ2V0aGVyIHdpdGggb3RoZXIgYm9vbHMgaW4gdGhlIEJpZGlDaGFyYWN0ZXJSdW4g
YmFzZSBjbGFzcy4KKyAgICAgICAgMikgU2VjdXJpdHkgaW1wcm92ZW1lbnQuIFdlIGhhdmUgYSBs
b3Qgb2YgdXNlLWFmdGVyLWZyZWUgaW4gdGhlIFJlbmRlck9iamVjdCBoaWVyYXJjaHksIGFuZCB0
aGUgUmVuZGVyQXJlbmEgY2xhc3MgcHJvdGVjdHMgdXMgZnJvbSBhIGxvdCBvZiB0cm91YmxlIGJ5
IGVuc3VyaW5nIHRoYXQgb2JqZWN0cyBvZiBhcmJpdHJhcnkgdHlwZSBjYW5ub3QgYmUgb3Zlcmxh
eWVkIG9uIHRvcCBvZiBmcmVlZCBSZW5kZXJPYmplY3RzLiBUaGlzIGNoYW5nZSBhZGRpdGlvbmFs
bHkgbWFrZXMgc3VyZSB0aGF0IG5vbi12aXJ0dWFsIFJlbmRlckFyZW5hIGFsbG9jYXRlZCBvYmpl
Y3RzIGRvIG5vdCBoYXZlIG1lbWJlciB2YXJpYWJsZXMgd2hpY2ggZnVsbHkgb3ZlcmxhcCB0aGUg
ZnJlZWQgdnRhYmxlIHBvaW50ZXIuIFRoaXMgbGVhdmVzIHJlLXVzZWQgdnRhYmxlIHBvaW50ZXJz
IGFsd2F5cyBwb2ludGluZyB0byBlaXRoZXIgYSB2YWxpZCB2dGFibGUgb3IgYW4gaW52YWxpZCBh
ZGRyZXNzIGR1ZSB0byB0aGUgZnJlZWxpc3QgaGlnaC1iaXQgcG9pc29uaW5nLgorCisgICAgICAg
IFRoaXMgY2hhbmdlIGlzIGV4Y2x1c2l2ZWx5IGFib3V0IHNpemUgc2F2aW5nczsgaXQgaXMgcGVy
Zm9ybWFuY2UgbmV1dHJhbCBhcyB5b3Ugd291bGQgZXhwZWN0LCBpbmNsdWRpbmcgb24gUGFyc2Vy
L2h0bWw1LWZ1bGwtcmVuZGVyLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmlkaVJl
c29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpCaWRpQ2hhcmFjdGVyUnVuOjpCaWRpQ2hhcmFj
dGVyUnVuKTogaW1wYWN0IGZyb20gcmUtb3JkZXJpbmcgbWVtYmVycy4KKyAgICAgICAgKEJpZGlD
aGFyYWN0ZXJSdW4pOiBwcm92aWRlIGFuIGVmZmljaWVudGx5IHBhY2tlZCBiaXQgb2Ygc3RvcmFn
ZSBmb3IgQmlkaVJ1biBzdWJjbGFzcyB0byB1c2UsIGFuZCByZS1vcmRlciBtZW1iZXJzIHRvIHBs
YWNlIGJvb2xzIGFkamFjZW50LgorICAgICAgICAqIHJlbmRlcmluZy9CaWRpUnVuLmg6CisgICAg
ICAgIChXZWJDb3JlOjpCaWRpUnVuOjpCaWRpUnVuKTogdXNlIGJhc2UgY2xhc3MnIGVmZmljaWVu
dGx5IHBhY2tlZCBiaXQgc3RvcmFnZSBmb3IgbV9oYXNIeXBoZW4uCisgICAgICAgIChCaWRpUnVu
KTogbV9oYXNIeXBoZW4gaXMgbm93IHN0b3JlZCBpbiB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAg
KiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3Rh
dGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6IGltcGFjdCBmcm9tIHJl
LW9yZGVyaW5nIG1lbWJlcnMuCisgICAgICAgIChMYXlvdXRTdGF0ZSk6IHJlLW9yZGVyIG1lbWJl
cnMgdG8gcGxhY2UgYm9vbHMgYWRqYWNlbnRseS4KKwogMjAxMi0xMS0wNiAgVGlhbmNoZW5nIEpp
YW5nICA8dGlqaWFuZ0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBVcGRhdGUgQkIx
MCBmb3JtIHRoZW1lLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgJ
KHJldmlzaW9uIDEzMzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwyMSArNDgsMjEgQEAKICAgICBMYXlvdXRTdGF0ZSgp
CiAgICAgICAgIDogbV9jbGlwcGVkKGZhbHNlKQogICAgICAgICAsIG1faXNQYWdpbmF0ZWQoZmFs
c2UpCisgICAgICAgICwgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQoZmFsc2UpCiAjaWYgIUFT
U0VSVF9ESVNBQkxFRCAmJiBFTkFCTEUoU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKQogICAg
ICAgICAsIG1fbGF5b3V0RGVsdGFYU2F0dXJhdGVkKGZhbHNlKQogICAgICAgICAsIG1fbGF5b3V0
RGVsdGFZU2F0dXJhdGVkKGZhbHNlKQogI2VuZGlmCi0gICAgICAgICwgbV9wYWdlTG9naWNhbEhl
aWdodCgwKQotICAgICAgICAsIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKGZhbHNlKQogICAg
ICAgICAsIG1fY29sdW1uSW5mbygwKQogICAgICAgICAsIG1fbGluZUdyaWQoMCkKICAgICAgICAg
LCBtX25leHQoMCkKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgICwgbV9leGNs
dXNpb25TaGFwZUluc2lkZUluZm8oMCkKKyNlbmRpZgorICAgICAgICAsIG1fcGFnZUxvZ2ljYWxI
ZWlnaHQoMCkKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICwgbV9yZW5kZXJlcigwKQogI2VuZGlm
Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICAsIG1fZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKDApCi0jZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC0xMTEsMTIgKzExMSwyNCBA
QAogICAgIHZvaWQgY29tcHV0ZUxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbihSZW5kZXJCb3gqKTsK
IAogcHVibGljOgotICAgIGJvb2wgbV9jbGlwcGVkOwotICAgIGJvb2wgbV9pc1BhZ2luYXRlZDsK
KyAgICAvLyBEbyBub3QgYWRkIGFueXRoaW5nIGFwYXJ0IGZyb20gYml0ZmllbGRzIHVudGlsIGFm
dGVyIG1fY29sdW1uSW5mby4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDAxNzMKKyAgICBib29sIG1fY2xpcHBlZDoxOworICAgIGJvb2wgbV9pc1BhZ2luYXRl
ZDoxOworICAgIC8vIElmIG91ciBwYWdlIGhlaWdodCBoYXMgY2hhbmdlZCwgdGhpcyB3aWxsIGZv
cmNlIGFsbCBibG9ja3MgdG8gcmVsYXlvdXQuCisgICAgYm9vbCBtX3BhZ2VMb2dpY2FsSGVpZ2h0
Q2hhbmdlZDoxOwogI2lmICFBU1NFUlRfRElTQUJMRUQgJiYgRU5BQkxFKFNBVFVSQVRFRF9MQVlP
VVRfQVJJVEhNRVRJQykKLSAgICBib29sIG1fbGF5b3V0RGVsdGFYU2F0dXJhdGVkOwotICAgIGJv
b2wgbV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQ7CisgICAgYm9vbCBtX2xheW91dERlbHRhWFNhdHVy
YXRlZDoxOworICAgIGJvb2wgbV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQ6MTsKICNlbmRpZgorICAg
IC8vIElmIHRoZSBlbmNsb3NpbmcgcGFnaW5hdGlvbiBtb2RlbCBpcyBhIGNvbHVtbiBtb2RlbCwg
dGhlbiB0aGlzIHdpbGwgc3RvcmUgY29sdW1uIGluZm9ybWF0aW9uIGZvciBlYXN5IHJldHJpZXZh
bC9tYW5pcHVsYXRpb24uCisgICAgQ29sdW1uSW5mbyogbV9jb2x1bW5JbmZvOworICAgIC8vIFRo
ZSBjdXJyZW50IGxpbmUgZ3JpZCB0aGF0IHdlJ3JlIHNuYXBwaW5nIHRvIGFuZCB0aGUgb2Zmc2V0
IG9mIHRoZSBzdGFydCBvZiB0aGUgZ3JpZC4KKyAgICBSZW5kZXJCbG9jayogbV9saW5lR3JpZDsK
KyAgICBMYXlvdXRTdGF0ZSogbV9uZXh0OworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAg
ICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwor
I2VuZGlmCisKICAgICBMYXlvdXRSZWN0IG1fY2xpcFJlY3Q7CiAgICAgCiAgICAgLy8geC95IG9m
ZnNldCBmcm9tIGNvbnRhaW5lci4gSW5jbHVkZXMgcmVsYXRpdmUgcG9zaXRpb25pbmcgYW5kIHNj
cm9sbCBvZmZzZXRzLgpAQCAtMTMwLDI1ICsxNDIsMTQgQEAKIAogICAgIC8vIFRoZSBjdXJyZW50
IHBhZ2UgaGVpZ2h0IGZvciB0aGUgcGFnaW5hdGlvbiBtb2RlbCB0aGF0IGVuY2xvc2VzIHVzLgog
ICAgIExheW91dFVuaXQgbV9wYWdlTG9naWNhbEhlaWdodDsKLSAgICAvLyBJZiBvdXIgcGFnZSBo
ZWlnaHQgaGFzIGNoYW5nZWQsIHRoaXMgd2lsbCBmb3JjZSBhbGwgYmxvY2tzIHRvIHJlbGF5b3V0
LgotICAgIGJvb2wgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQ7CiAgICAgLy8gVGhlIG9mZnNl
dCBvZiB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0IHBhZ2UgaW4gdGhlIG5lYXJlc3QgZW5jbG9zaW5n
IHBhZ2luYXRpb24gbW9kZWwuCiAgICAgTGF5b3V0U2l6ZSBtX3BhZ2VPZmZzZXQ7Ci0gICAgLy8g
SWYgdGhlIGVuY2xvc2luZyBwYWdpbmF0aW9uIG1vZGVsIGlzIGEgY29sdW1uIG1vZGVsLCB0aGVu
IHRoaXMgd2lsbCBzdG9yZSBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIGVhc3kgcmV0cmlldmFsL21h
bmlwdWxhdGlvbi4KLSAgICBDb2x1bW5JbmZvKiBtX2NvbHVtbkluZm87Ci0KLSAgICAvLyBUaGUg
Y3VycmVudCBsaW5lIGdyaWQgdGhhdCB3ZSdyZSBzbmFwcGluZyB0byBhbmQgdGhlIG9mZnNldCBv
ZiB0aGUgc3RhcnQgb2YgdGhlIGdyaWQuCi0gICAgUmVuZGVyQmxvY2sqIG1fbGluZUdyaWQ7CiAg
ICAgTGF5b3V0U2l6ZSBtX2xpbmVHcmlkT2Zmc2V0OwogICAgIExheW91dFNpemUgbV9saW5lR3Jp
ZFBhZ2luYXRpb25PcmlnaW47CiAKLSAgICBMYXlvdXRTdGF0ZSogbV9uZXh0OwogI2lmbmRlZiBO
REVCVUcKICAgICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBtX2V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbzsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCShyZXZpc2lvbiAx
MzM1MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSwxMiArMzksMTIgQEAKICAgICA6IG1fY29sdW1uSW5mbyhjb2x1bW5J
bmZvKQogICAgICwgbV9saW5lR3JpZCgwKQogICAgICwgbV9uZXh0KHByZXYpCisjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQorICAgICwgbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8oMCkKKyNl
bmRpZgogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCiAjZW5kaWYK
LSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgLCBtX2V4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbygwKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKG1fbmV4dCk7CiAKQEAgLTEzOSwyMSArMTM5
LDIxIEBACiBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoUmVuZGVyT2JqZWN0KiByb290KQogICAg
IDogbV9jbGlwcGVkKGZhbHNlKQogICAgICwgbV9pc1BhZ2luYXRlZChmYWxzZSkKKyAgICAsIG1f
cGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKGZhbHNlKQogI2lmICFBU1NFUlRfRElTQUJMRUQgJiYg
RU5BQkxFKFNBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykKICAgICAsIG1fbGF5b3V0RGVsdGFY
U2F0dXJhdGVkKGZhbHNlKQogICAgICwgbV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQoZmFsc2UpCiAj
ZW5kaWYgICAgCi0gICAgLCBtX3BhZ2VMb2dpY2FsSGVpZ2h0KDApCi0gICAgLCBtX3BhZ2VMb2dp
Y2FsSGVpZ2h0Q2hhbmdlZChmYWxzZSkKICAgICAsIG1fY29sdW1uSW5mbygwKQogICAgICwgbV9s
aW5lR3JpZCgwKQogICAgICwgbV9uZXh0KDApCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQor
ICAgICwgbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm8oMCkKKyNlbmRpZgorICAgICwgbV9wYWdl
TG9naWNhbEhlaWdodCgwKQogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIocm9vdCkK
ICNlbmRpZgotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAsIG1fZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvKDApCi0jZW5kaWYKIHsKICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciA9
IHJvb3QtPmNvbnRhaW5lcigpOwogICAgIEZsb2F0UG9pbnQgYWJzQ29udGVudFBvaW50ID0gY29u
dGFpbmVyLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBVc2VUcmFuc2Zvcm1zIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Jp
ZGlSdW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQmlkaVJ1bi5o
CShyZXZpc2lvbiAxMzM1MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQmlkaVJ1bi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw4IEBACiAgICAgICAgIDogQmlkaUNoYXJhY3Rl
clJ1bihzdGFydCwgc3RvcCwgY29udGV4dCwgZGlyKQogICAgICAgICAsIG1fb2JqZWN0KG9iamVj
dCkKICAgICAgICAgLCBtX2JveCgwKQotICAgICAgICAsIG1faGFzSHlwaGVuKGZhbHNlKQogICAg
IHsKKyAgICAgICAgbV9oYXNIeXBoZW4gPSBmYWxzZTsgLy8gU3RvcmVkIGluIGJhc2UgY2xhc3Mg
dG8gc2F2ZSBzcGFjZS4KICAgICB9CiAKICAgICB2b2lkIGRlc3Ryb3koKTsKQEAgLTYwLDcgKzYw
LDYgQEAKIHB1YmxpYzoKICAgICBSZW5kZXJPYmplY3QqIG1fb2JqZWN0OwogICAgIElubGluZUJv
eCogbV9ib3g7Ci0gICAgYm9vbCBtX2hhc0h5cGhlbjsKIH07CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>