<?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>64301</bug_id>
          
          <creation_ts>2011-07-11 11:37:33 -0700</creation_ts>
          <short_desc>Switch transform operations to FloatSize</short_desc>
          <delta_ts>2011-07-27 16:18:43 -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>
          <dependson>64405</dependson>
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>darin</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>435044</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-11 11:37:33 -0700</bug_when>
    <thetext>Currently they all act on IntSize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435060</commentid>
    <comment_count>1</comment_count>
      <attachid>100338</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-11 11:48:22 -0700</bug_when>
    <thetext>Created attachment 100338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435091</commentid>
    <comment_count>2</comment_count>
      <attachid>100338</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-11 12:05:51 -0700</bug_when>
    <thetext>Comment on attachment 100338
Patch

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

Otherwise looks fine.

&gt; Source/WebCore/platform/Length.h:158
&gt; +        default:
&gt; +            return static_cast&lt;float&gt;(undefinedLength);

Normally we don&apos;t use default: cases for switch(enum), but maybe it makes sense here?

&gt; Source/WebCore/platform/Length.h:162
&gt; +    float calcFloatValue(float maxValue) const

Did you copy paste this same function twice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435099</commentid>
    <comment_count>3</comment_count>
      <attachid>100338</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-11 12:11:28 -0700</bug_when>
    <thetext>Comment on attachment 100338
Patch

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

&gt;&gt; Source/WebCore/platform/Length.h:158
&gt;&gt; +            return static_cast&lt;float&gt;(undefinedLength);
&gt; 
&gt; Normally we don&apos;t use default: cases for switch(enum), but maybe it makes sense here?

This function remains unchanged, I just fixed the indenting for webkit-style.

&gt;&gt; Source/WebCore/platform/Length.h:162
&gt;&gt; +    float calcFloatValue(float maxValue) const
&gt; 
&gt; Did you copy paste this same function twice?

I&apos;m adding a version that takes a float maxValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435101</commentid>
    <comment_count>4</comment_count>
      <attachid>100338</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-11 12:12:15 -0700</bug_when>
    <thetext>Comment on attachment 100338
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/Length.h:162
&gt;&gt;&gt; +    float calcFloatValue(float maxValue) const
&gt;&gt; 
&gt;&gt; Did you copy paste this same function twice?
&gt; 
&gt; I&apos;m adding a version that takes a float maxValue.

Shouldn&apos;t we just templatize this sucker?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435111</commentid>
    <comment_count>5</comment_count>
      <attachid>100338</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-11 12:20:59 -0700</bug_when>
    <thetext>Comment on attachment 100338
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/Length.h:162
&gt;&gt;&gt;&gt; +    float calcFloatValue(float maxValue) const
&gt;&gt;&gt; 
&gt;&gt;&gt; Did you copy paste this same function twice?
&gt;&gt; 
&gt;&gt; I&apos;m adding a version that takes a float maxValue.
&gt; 
&gt; Shouldn&apos;t we just templatize this sucker?

Ultimately I believe lengths should stop being ints at all, but I don&apos;t know that templates will help us here since we generally create lengths at parse-time. Anyways I think I&apos;ll revisit this when we&apos;re a bit closer to switching over. This whole class could use some cleanup at that point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435118</commentid>
    <comment_count>6</comment_count>
      <attachid>100348</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-11 12:25:19 -0700</bug_when>
    <thetext>Created attachment 100348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435727</commentid>
    <comment_count>7</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-12 10:29:47 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=100348) [details]
&gt; Patch

Ping for re-review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435832</commentid>
    <comment_count>8</comment_count>
      <attachid>100348</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-12 11:49:43 -0700</bug_when>
    <thetext>Comment on attachment 100348
Patch

This changes some platform things to know about Layout*.  Darin may feel this is also a layering violation.  You should check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435835</commentid>
    <comment_count>9</comment_count>
      <attachid>100348</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-07-12 11:53:33 -0700</bug_when>
    <thetext>Comment on attachment 100348
Patch

This looks like a layering violation to me. The transforms themselves are part of the graphics framework, not the rendering system, so they should not be using layout types. Instead they could be overloaded to work on both int and float, or changed to always use float.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435836</commentid>
    <comment_count>10</comment_count>
      <attachid>100348</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-12 11:55:20 -0700</bug_when>
    <thetext>Comment on attachment 100348
Patch

Agree with Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442518</commentid>
    <comment_count>11</comment_count>
      <attachid>102050</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-26 14:08:36 -0700</bug_when>
    <thetext>Created attachment 102050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443043</commentid>
    <comment_count>12</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-27 11:46:07 -0700</bug_when>
    <thetext>Can I get a review? This just works :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443088</commentid>
    <comment_count>13</comment_count>
      <attachid>102050</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-27 12:28:32 -0700</bug_when>
    <thetext>Comment on attachment 102050
Patch

Thanks for the review, Simon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443216</commentid>
    <comment_count>14</comment_count>
      <attachid>102050</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-27 16:18:37 -0700</bug_when>
    <thetext>Comment on attachment 102050
Patch

Clearing flags on attachment: 102050

Committed r91880: &lt;http://trac.webkit.org/changeset/91880&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443217</commentid>
    <comment_count>15</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-27 16:18:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100338</attachid>
            <date>2011-07-11 11:48:22 -0700</date>
            <delta_ts>2011-07-11 12:25:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64301-20110711114821.patch</filename>
            <type>text/plain</type>
            <size>13862</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwNzY4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDctMTEgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCB0cmFuc2Zvcm0g
b3BlcmF0aW9ucyB0byBMYXlvdXRTaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NDMwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENvbnZlcnRpbmcgYWxsIHRoZSB0cmFuc2Zvcm0gb3BlcmF0aW9ucyB0
byBvcGVyYXRlIG9uIExheW91dFNpemUgZnJvbSBJbnRTaXplLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpjYWxjRmxvYXRWYWx1
ZSk6IEFkZGluZyBhIHZlcnNpb24gb2YgY2FsY0Zsb2F0VmFsdWUgdGhhdCB0YWtlcyBhIGZsb2F0
CisgICAgICAgIG1heCB2YWx1ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJZGVu
dGl0eVRyYW5zZm9ybU9wZXJhdGlvbjo6YXBwbHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uOjphcHBseSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbjo6YXBwbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9u
OjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVU
cmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJvdGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbjo6YXBwbHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
U2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxlVHJhbnNm
b3JtT3BlcmF0aW9uOjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpTa2V3VHJh
bnNmb3JtT3BlcmF0aW9uOjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRy
YW5zZm9ybU9wZXJhdGlvbnM6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjp4KToKKyAgICAgICAgKFdlYkNvcmU6OlRy
YW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6eSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2xh
dGVUcmFuc2Zvcm1PcGVyYXRpb246OnopOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNsYXRlVHJh
bnNmb3JtT3BlcmF0aW9uOjphcHBseSk6CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJh
c2VkVGVzdFJlc3VsdCk6IENoYW5naW5nIHRoZSBMYXlvdXRSZWN0IHZlcnNpb24gYmFjaworICAg
ICAgICB0byBJbnRSZWN0IHNpbmNlIHRoZXJlIGFyZSB0d28gdmVyc2lvbnMgcHJvdmlkZWQsIG9u
ZSBmb3IgaW50cyBhbmQgb25lIGZvciBmbG9hdHMuCisgICAgICAgICogcmVuZGVyaW5nL0hpdFRl
c3RSZXN1bHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisKIDIwMTEt
MDctMTEgIE1pa2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbc2tpYV0gcmVt
b3ZlIHBsYXRmb3JtIGhlbHBlcnMgZm9yIGdyYWRpZW50cyBhbmQgcGF0dGVybnMKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gOTA3NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTk3LDcgKzI1OTcsNyBAQCBWaXNpYmxlUG9zaXRpb24gQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjCiAgICAgTm9kZSogaW5uZXJOb2RlID0gMDsKICAgICAKICAgICAvLyBsb2NhdGUgdGhlIG5v
ZGUgY29udGFpbmluZyB0aGUgcG9pbnQKLSAgICBJbnRQb2ludCBwb2ludFJlc3VsdDsKKyAgICBM
YXlvdXRQb2ludCBwb2ludFJlc3VsdDsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBJbnRQb2lu
dCBvdXJwb2ludDsKICNpZiBQTEFURk9STShNQUMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9MZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5n
dGguaAkocmV2aXNpb24gOTA3NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGgu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDE0ICsxNDgsMjggQEAgcHVibGljOgogICAgIGZsb2F0
IGNhbGNGbG9hdFZhbHVlKGludCBtYXhWYWx1ZSkgY29uc3QKICAgICB7CiAgICAgICAgIHN3aXRj
aCAodHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIEZpeGVkOgotICAgICAgICAgICAgICAgIHJl
dHVybiBnZXRGbG9hdFZhbHVlKCk7Ci0gICAgICAgICAgICBjYXNlIFBlcmNlbnQ6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAv
IDEwMC4wZik7Ci0gICAgICAgICAgICBjYXNlIEF1dG86Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGZsb2F0PihtYXhWYWx1ZSk7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odW5kZWZpbmVkTGVuZ3RoKTsK
KyAgICAgICAgY2FzZSBGaXhlZDoKKyAgICAgICAgICAgIHJldHVybiBnZXRGbG9hdFZhbHVlKCk7
CisgICAgICAgIGNhc2UgUGVyY2VudDoKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxm
bG9hdD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMGYpOworICAgICAgICBjYXNlIEF1dG86
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1heFZhbHVlKTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odW5kZWZp
bmVkTGVuZ3RoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZsb2F0IGNhbGNGbG9hdFZhbHVl
KGZsb2F0IG1heFZhbHVlKSBjb25zdAorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsK
KyAgICAgICAgY2FzZSBGaXhlZDoKKyAgICAgICAgICAgIHJldHVybiBnZXRGbG9hdFZhbHVlKCk7
CisgICAgICAgIGNhc2UgUGVyY2VudDoKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxm
bG9hdD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMGYpOworICAgICAgICBjYXNlIEF1dG86
CisgICAgICAgICAgICByZXR1cm4gbWF4VmFsdWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHVuZGVmaW5lZExlbmd0aCk7CiAgICAgICAg
IH0KICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0lkZW50aXR5VHJhbnNmb3JtT3Bl
cmF0aW9uLmgJKHJldmlzaW9uIDkwNzYxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBpc1NhbWVUeXBl
KG8pOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYsIGNvbnN0IEludFNpemUmKSBjb25zdAorICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYsIGNvbnN0IExheW91dFNpemUmKSBjb25zdAogICAgIHsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJh
bnNmb3JtT3BlcmF0aW9uLmgJKHJldmlzaW9uIDkwNzYxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6ICAgIAogICAgICAgICByZXR1
cm4gbV9tYXRyaXggPT0gbS0+bV9tYXRyaXg7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGFw
cGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEludFNpemUmKSBjb25z
dAorICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3Jt
LCBjb25zdCBMYXlvdXRTaXplJikgY29uc3QKICAgICB7CiAgICAgICAgIHRyYW5zZm9ybS5tdWx0
aXBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeChtX21hdHJpeCkpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01h
dHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJl
dmlzaW9uIDkwNzYxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTksNyAr
NTksNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbV9hID09IG0tPm1fYSAmJiBtX2IgPT0g
bS0+bV9iICYmIG1fYyA9PSBtLT5tX2MgJiYgbV9kID09IG0tPm1fZCAmJiBtX2UgPT0gbS0+bV9l
ICYmIG1fZiA9PSBtLT5tX2Y7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEludFNpemUmKSBjb25zdAorICAgIHZp
cnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBM
YXlvdXRTaXplJikgY29uc3QKICAgICB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1h
dHJpeChtX2EsIG1fYiwgbV9jLCBtX2QsIG1fZSwgbV9mKTsKICAgICAgICAgdHJhbnNmb3JtLm11
bHRpcGx5KG1hdHJpeCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRy
YW5zZm9ybU9wZXJhdGlvbi5oCShyZXZpc2lvbiA5MDc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1
cm4gbV9wID09IHAtPm1fcDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CisgICAgdmly
dHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IExh
eW91dFNpemUmKSBjb25zdAogICAgIHsKICAgICAgICAgdHJhbnNmb3JtLmFwcGx5UGVyc3BlY3Rp
dmUobV9wLmNhbGNGbG9hdFZhbHVlKDEpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zv
cm1PcGVyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCShyZXZpc2lvbiA5MDc2
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRl
VHJhbnNmb3JtT3BlcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgcmV0dXJuIG1feCA9PSByLT5tX3ggJiYgbV95ID09IHItPm1feSAmJiBt
X3ogPT0gci0+bV96ICYmIG1fYW5nbGUgPT0gci0+bV9hbmdsZTsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgSW50
U2l6ZSYgLypib3JkZXJCb3hTaXplKi8pIGNvbnN0CisgICAgdmlydHVhbCBib29sIGFwcGx5KFRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IExheW91dFNpemUmIC8qYm9yZGVy
Qm94U2l6ZSovKSBjb25zdAogICAgIHsKICAgICAgICAgdHJhbnNmb3JtLnJvdGF0ZTNkKG1feCwg
bV95LCBtX3osIG1fYW5nbGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oCShyZXZpc2lvbiA5MDc2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1P
cGVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAg
ICAgICByZXR1cm4gbV94ID09IHMtPm1feCAmJiBtX3kgPT0gcy0+bV95ICYmIG1feiA9PSBzLT5t
X3o7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0cmFuc2Zvcm0sIGNvbnN0IEludFNpemUmKSBjb25zdAorICAgIHZpcnR1YWwgYm9vbCBhcHBs
eShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBMYXlvdXRTaXplJikgY29u
c3QKICAgICB7CiAgICAgICAgIHRyYW5zZm9ybS5zY2FsZTNkKG1feCwgbV95LCBtX3opOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVy
YXRpb24uaAkocmV2aXNpb24gOTA3NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbV9hbmdsZVggPT0gcy0+
bV9hbmdsZVggJiYgbV9hbmdsZVkgPT0gcy0+bV9hbmdsZVk7CiAgICAgfQogCi0gICAgdmlydHVh
bCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEludFNp
emUmKSBjb25zdAorICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dHJhbnNmb3JtLCBjb25zdCBMYXlvdXRTaXplJikgY29uc3QKICAgICB7CiAgICAgICAgIHRyYW5z
Zm9ybS5za2V3KG1fYW5nbGVYLCBtX2FuZ2xlWSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3Jt
T3BlcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaAkocmV2aXNpb24gOTA3NjEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJh
dGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw4IEBACiAjaWZuZGVmIFRyYW5zZm9y
bU9wZXJhdGlvbl9oCiAjZGVmaW5lIFRyYW5zZm9ybU9wZXJhdGlvbl9oCiAKKyNpbmNsdWRlICJM
YXlvdXRUeXBlcy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCi0jaW5jbHVk
ZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KIApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGlzSWRlbnRpdHkoKSBjb25zdCA9IDA7CiAKICAgICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUg
Ym9yZGVyQm94U2l6ZSB3YXMgdXNlZCBpbiB0aGUgY29tcHV0YXRpb24sIGZhbHNlIG90aGVyd2lz
ZS4KLSAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBJ
bnRTaXplJiBib3JkZXJCb3hTaXplKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGFwcGx5
KFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94U2l6ZSkg
Y29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4g
YmxlbmQoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MsIGJv
b2wgYmxlbmRUb0lkZW50aXR5ID0gZmFsc2UpID0gMDsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1PcGVyYXRpb25zLmgJKHJldmlzaW9uIDkwNzYxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gISgqdGhpcyA9
PSBvKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBhcHBseShjb25zdCBJbnRTaXplJiBzeiwgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHQpIGNvbnN0CisgICAgdm9pZCBhcHBseShjb25zdCBMYXlvdXRT
aXplJiBzeiwgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpIGNvbnN0CiAgICAgewogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9vcGVyYXRpb25zLnNpemUoKTsgKytpKQogICAgICAg
ICAgICAgbV9vcGVyYXRpb25zW2ldLT5hcHBseSh0LCBzeik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJldmlzaW9uIDkwNzYxKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDIsOSArNDIsOSBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9u
KHR4LCB0eSwgdHosIHR5cGUpKTsKICAgICB9CiAKLSAgICBkb3VibGUgeChjb25zdCBJbnRTaXpl
JiBib3JkZXJCb3hTaXplKSBjb25zdCB7IHJldHVybiBtX3guY2FsY0Zsb2F0VmFsdWUoYm9yZGVy
Qm94U2l6ZS53aWR0aCgpKTsgfQotICAgIGRvdWJsZSB5KGNvbnN0IEludFNpemUmIGJvcmRlckJv
eFNpemUpIGNvbnN0IHsgcmV0dXJuIG1feS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLmhl
aWdodCgpKTsgfQotICAgIGRvdWJsZSB6KGNvbnN0IEludFNpemUmKSBjb25zdCB7IHJldHVybiBt
X3ouY2FsY0Zsb2F0VmFsdWUoMSk7IH0KKyAgICBkb3VibGUgeChjb25zdCBMYXlvdXRTaXplJiBi
b3JkZXJCb3hTaXplKSBjb25zdCB7IHJldHVybiBtX3guY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94
U2l6ZS53aWR0aCgpKTsgfQorICAgIGRvdWJsZSB5KGNvbnN0IExheW91dFNpemUmIGJvcmRlckJv
eFNpemUpIGNvbnN0IHsgcmV0dXJuIG1feS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLmhl
aWdodCgpKTsgfQorICAgIGRvdWJsZSB6KGNvbnN0IExheW91dFNpemUmKSBjb25zdCB7IHJldHVy
biBtX3ouY2FsY0Zsb2F0VmFsdWUoMSk7IH0KIAogICAgIExlbmd0aCB4KCkgY29uc3QgeyByZXR1
cm4gbV94OyB9CiAgICAgTGVuZ3RoIHkoKSBjb25zdCB7IHJldHVybiBtX3k7IH0KQEAgLTY0LDcg
KzY0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1feCA9PSB0LT5tX3ggJiYgbV95ID09
IHQtPm1feSAmJiBtX3ogPT0gdC0+bV96OwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBhcHBs
eShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBJbnRTaXplJiBib3JkZXJC
b3hTaXplKSBjb25zdAorICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtLCBjb25zdCBMYXlvdXRTaXplJiBib3JkZXJCb3hTaXplKSBjb25zdAogICAg
IHsKICAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNkKHgoYm9yZGVyQm94U2l6ZSksIHkoYm9y
ZGVyQm94U2l6ZSksIHooYm9yZGVyQm94U2l6ZSkpOwogICAgICAgICByZXR1cm4gbV94LnR5cGUo
KSA9PSBQZXJjZW50IHx8IG1feS50eXBlKCkgPT0gUGVyY2VudDsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAJKHJldmlzaW9uIDkwNzYxKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MDgsNyArNTA4LDcgQEAgYm9vbCBIaXRUZXN0UmVzdWx0Ojppc0NvbnRlbnRFZGl0YWJsZSgp
IAogICAgIHJldHVybiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7
CiB9CiAKLWJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChO
b2RlKiBub2RlLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgTGF5
b3V0UmVjdCYgcmVjdCkKK2Jvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVz
dFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwg
Y29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICAvLyBJZiBpdCBpcyBub3QgYSByZWN0LWJhc2Vk
IGhpdCB0ZXN0LCB0aGlzIG1ldGhvZCBoYXMgdG8gYmUgbm8tb3AuCiAgICAgLy8gUmV0dXJuIGZh
bHNlLCBzbyB0aGUgaGl0IHRlc3Qgc3RvcHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9IaXRUZXN0UmVzdWx0LmgJKHJldmlzaW9uIDkwNzYxKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBpdCBpcyByZWN0LWJhc2VkIGhpdCB0
ZXN0IGFuZCBuZWVkcyB0byBjb250aW51ZSB1bnRpbCB0aGUgcmVjdCBpcyBmdWxseQogICAgIC8v
IGVuY2xvc2VkIGJ5IHRoZSBib3VuZGFyaWVzIG9mIGEgbm9kZS4KLSAgICBib29sIGFkZE5vZGVU
b1JlY3RCYXNlZFRlc3RSZXN1bHQoTm9kZSosIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29u
dGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiA9IEludFJlY3QoKSk7CisgICAgYm9vbCBhZGROb2Rl
VG9SZWN0QmFzZWRUZXN0UmVzdWx0KE5vZGUqLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNv
bnRhaW5lciwgY29uc3QgSW50UmVjdCYgPSBJbnRSZWN0KCkpOwogICAgIGJvb2wgYWRkTm9kZVRv
UmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Db250
YWluZXIsIGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZvaWQgYXBwZW5kKGNvbnN0IEhpdFRlc3RS
ZXN1bHQmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100348</attachid>
            <date>2011-07-11 12:25:19 -0700</date>
            <delta_ts>2011-07-26 14:08:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64301-20110711122518.patch</filename>
            <type>text/plain</type>
            <size>12388</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwNzc4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDctMTEgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCB0cmFuc2Zvcm0g
b3BlcmF0aW9ucyB0byBMYXlvdXRTaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NDMwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENvbnZlcnRpbmcgYWxsIHRoZSB0cmFuc2Zvcm0gb3BlcmF0aW9ucyB0
byBvcGVyYXRlIG9uIExheW91dFNpemUgZnJvbSBJbnRTaXplLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6OklkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uOjphcHBseSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9w
ZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb246
OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRy
YW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4VHJhbnNmb3JtT3Bl
cmF0aW9uOjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Q
ZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UGVyc3Bl
Y3RpdmVUcmFuc2Zvcm1PcGVyYXRpb246OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjphcHBseSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2NhbGVUcmFuc2Zvcm1PcGVyYXRpb246OmFwcGx5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNrZXdUcmFuc2Zvcm1PcGVyYXRpb246OmFwcGx5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5o
OgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9uczo6YXBwbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246Ongp
OgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjp5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6eik6CisgICAgICAg
IChXZWJDb3JlOjpUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmFwcGx5KToKKyAgICAgICAg
KiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0
UmVzdWx0OjphZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KTogQ2hhbmdpbmcgdGhlIExheW91
dFJlY3QgdmVyc2lvbiBiYWNrCisgICAgICAgIHRvIEludFJlY3Qgc2luY2UgdGhlcmUgYXJlIHR3
byB2ZXJzaW9ucyBwcm92aWRlZCwgb25lIGZvciBpbnRzIGFuZCBvbmUgZm9yIGZsb2F0cy4KKyAg
ICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKKwogMjAxMS0wNy0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBNb3ZlIGlubmVyVGV4dEVsZW1lbnQoKSBmcm9tIFJlbmRlclRleHRD
b250cm9sIHRvIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAJKHJldmlzaW9uIDkwNzc4KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYwMCw3ICsy
NjAwLDcgQEAgVmlzaWJsZVBvc2l0aW9uIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplYwogICAgIE5v
ZGUqIGlubmVyTm9kZSA9IDA7CiAgICAgCiAgICAgLy8gbG9jYXRlIHRoZSBub2RlIGNvbnRhaW5p
bmcgdGhlIHBvaW50Ci0gICAgSW50UG9pbnQgcG9pbnRSZXN1bHQ7CisgICAgTGF5b3V0UG9pbnQg
cG9pbnRSZXN1bHQ7CiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgSW50UG9pbnQgb3VycG9pbnQ7
CiAjaWYgUExBVEZPUk0oTUFDKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFu
c2Zvcm1PcGVyYXRpb24uaAkocmV2aXNpb24gOTA3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIGlz
U2FtZVR5cGUobyk7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0
aW9uTWF0cml4JiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CisgICAgdmlydHVhbCBib29sIGFwcGx5
KFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgTGF5b3V0U2l6ZSYpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0
cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaAkocmV2aXNpb24gOTA3NzgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZTogICAgCiAgICAg
ICAgIHJldHVybiBtX21hdHJpeCA9PSBtLT5tX21hdHJpeDsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0CisgICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cmFuc2Zvcm0sIGNvbnN0IExheW91dFNpemUmKSBjb25zdAogICAgIHsKICAgICAgICAgdHJhbnNm
b3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fbWF0cml4KSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRp
b24uaAkocmV2aXNpb24gOTA3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX2EgPT0gbS0+bV9hICYm
IG1fYiA9PSBtLT5tX2IgJiYgbV9jID09IG0tPm1fYyAmJiBtX2QgPT0gbS0+bV9kICYmIG1fZSA9
PSBtLT5tX2UgJiYgbV9mID09IG0tPm1fZjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXBw
bHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgSW50U2l6ZSYpIGNvbnN0
CisgICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0s
IGNvbnN0IExheW91dFNpemUmKSBjb25zdAogICAgIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbWF0cml4KG1fYSwgbV9iLCBtX2MsIG1fZCwgbV9lLCBtX2YpOwogICAgICAgICB0cmFu
c2Zvcm0ubXVsdGlwbHkobWF0cml4KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNw
ZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJldmlzaW9uIDkwNzc4KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHJldHVybiBtX3AgPT0gcC0+bV9wOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBhcHBs
eShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBJbnRTaXplJikgY29uc3QK
KyAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwg
Y29uc3QgTGF5b3V0U2l6ZSYpIGNvbnN0CiAgICAgewogICAgICAgICB0cmFuc2Zvcm0uYXBwbHlQ
ZXJzcGVjdGl2ZShtX3AuY2FsY0Zsb2F0VmFsdWUoMSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJldmlz
aW9uIDkwNzc4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAs
NyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbV94ID09IHItPm1feCAmJiBtX3kgPT0gci0+
bV95ICYmIG1feiA9PSByLT5tX3ogJiYgbV9hbmdsZSA9PSByLT5tX2FuZ2xlOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBj
b25zdCBJbnRTaXplJiAvKmJvcmRlckJveFNpemUqLykgY29uc3QKKyAgICB2aXJ0dWFsIGJvb2wg
YXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgTGF5b3V0U2l6ZSYg
Lypib3JkZXJCb3hTaXplKi8pIGNvbnN0CiAgICAgewogICAgICAgICB0cmFuc2Zvcm0ucm90YXRl
M2QobV94LCBtX3ksIG1feiwgbV9hbmdsZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zv
cm1PcGVyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJldmlzaW9uIDkwNzc4
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRy
YW5zZm9ybU9wZXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIHJldHVybiBtX3ggPT0gcy0+bV94ICYmIG1feSA9PSBzLT5tX3kgJiYgbV96
ID09IHMtPm1fejsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CisgICAgdmlydHVhbCBi
b29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IExheW91dFNp
emUmKSBjb25zdAogICAgIHsKICAgICAgICAgdHJhbnNmb3JtLnNjYWxlM2QobV94LCBtX3ksIG1f
eik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5z
Zm9ybU9wZXJhdGlvbi5oCShyZXZpc2lvbiA5MDc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX2FuZ2xl
WCA9PSBzLT5tX2FuZ2xlWCAmJiBtX2FuZ2xlWSA9PSBzLT5tX2FuZ2xlWTsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29u
c3QgSW50U2l6ZSYpIGNvbnN0CisgICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IExheW91dFNpemUmKSBjb25zdAogICAgIHsKICAgICAg
ICAgdHJhbnNmb3JtLnNrZXcobV9hbmdsZVgsIG1fYW5nbGVZKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1PcGVyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5oCShyZXZpc2lvbiA5MDc3
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNm
b3JtT3BlcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDggQEAKICNpZm5kZWYg
VHJhbnNmb3JtT3BlcmF0aW9uX2gKICNkZWZpbmUgVHJhbnNmb3JtT3BlcmF0aW9uX2gKIAorI2lu
Y2x1ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIK
LSNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0ID0gMDsKIAogICAgIC8vIFJldHVybiB0cnVl
IGlmIHRoZSBib3JkZXJCb3hTaXplIHdhcyB1c2VkIGluIHRoZSBjb21wdXRhdGlvbiwgZmFsc2Ug
b3RoZXJ3aXNlLgotICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IEludFNpemUmIGJvcmRlckJveFNpemUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBMYXlvdXRTaXplJiBib3JkZXJC
b3hTaXplKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3Bl
cmF0aW9uPiBibGVuZChjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb20sIGRvdWJsZSBwcm9n
cmVzcywgYm9vbCBibGVuZFRvSWRlbnRpdHkgPSBmYWxzZSkgPSAwOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaAkocmV2aXNpb24gOTA3NzgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaAko
d29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAh
KCp0aGlzID09IG8pOwogICAgIH0KICAgICAKLSAgICB2b2lkIGFwcGx5KGNvbnN0IEludFNpemUm
IHN6LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgY29uc3QKKyAgICB2b2lkIGFwcGx5KGNvbnN0
IExheW91dFNpemUmIHN6LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgY29uc3QKICAgICB7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX29wZXJhdGlvbnMuc2l6ZSgpOyArK2kp
CiAgICAgICAgICAgICBtX29wZXJhdGlvbnNbaV0tPmFwcGx5KHQsIHN6KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3Jt
T3BlcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAkocmV2aXNpb24gOTA3
NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw5ICs0Miw5IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24odHgsIHR5LCB0eiwgdHlwZSkpOwogICAgIH0KIAotICAgIGRvdWJsZSB4KGNvbnN0
IEludFNpemUmIGJvcmRlckJveFNpemUpIGNvbnN0IHsgcmV0dXJuIG1feC5jYWxjRmxvYXRWYWx1
ZShib3JkZXJCb3hTaXplLndpZHRoKCkpOyB9Ci0gICAgZG91YmxlIHkoY29uc3QgSW50U2l6ZSYg
Ym9yZGVyQm94U2l6ZSkgY29uc3QgeyByZXR1cm4gbV95LmNhbGNGbG9hdFZhbHVlKGJvcmRlckJv
eFNpemUuaGVpZ2h0KCkpOyB9Ci0gICAgZG91YmxlIHooY29uc3QgSW50U2l6ZSYpIGNvbnN0IHsg
cmV0dXJuIG1fei5jYWxjRmxvYXRWYWx1ZSgxKTsgfQorICAgIGRvdWJsZSB4KGNvbnN0IExheW91
dFNpemUmIGJvcmRlckJveFNpemUpIGNvbnN0IHsgcmV0dXJuIG1feC5jYWxjRmxvYXRWYWx1ZShi
b3JkZXJCb3hTaXplLndpZHRoKCkpOyB9CisgICAgZG91YmxlIHkoY29uc3QgTGF5b3V0U2l6ZSYg
Ym9yZGVyQm94U2l6ZSkgY29uc3QgeyByZXR1cm4gbV95LmNhbGNGbG9hdFZhbHVlKGJvcmRlckJv
eFNpemUuaGVpZ2h0KCkpOyB9CisgICAgZG91YmxlIHooY29uc3QgTGF5b3V0U2l6ZSYpIGNvbnN0
IHsgcmV0dXJuIG1fei5jYWxjRmxvYXRWYWx1ZSgxKTsgfQogCiAgICAgTGVuZ3RoIHgoKSBjb25z
dCB7IHJldHVybiBtX3g7IH0KICAgICBMZW5ndGggeSgpIGNvbnN0IHsgcmV0dXJuIG1feTsgfQpA
QCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbV94ID09IHQtPm1feCAm
JiBtX3kgPT0gdC0+bV95ICYmIG1feiA9PSB0LT5tX3o7CiAgICAgfQogCi0gICAgdmlydHVhbCBi
b29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEludFNpemUm
IGJvcmRlckJveFNpemUpIGNvbnN0CisgICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0
aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IExheW91dFNpemUmIGJvcmRlckJveFNpemUpIGNv
bnN0CiAgICAgewogICAgICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlM2QoeChib3JkZXJCb3hTaXpl
KSwgeShib3JkZXJCb3hTaXplKSwgeihib3JkZXJCb3hTaXplKSk7CiAgICAgICAgIHJldHVybiBt
X3gudHlwZSgpID09IFBlcmNlbnQgfHwgbV95LnR5cGUoKSA9PSBQZXJjZW50OwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAkocmV2aXNpb24gOTA3Nzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUwOCw3ICs1MDgsNyBAQCBib29sIEhpdFRlc3RSZXN1bHQ6OmlzQ29udGVudEVk
aXRhYmxlKCkgCiAgICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5yZW5kZXJlcklzRWRp
dGFibGUoKTsKIH0KIAotYm9vbCBIaXRUZXN0UmVzdWx0OjphZGROb2RlVG9SZWN0QmFzZWRUZXN0
UmVzdWx0KE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRSZWN0JiByZWN0KQorYm9vbCBIaXRUZXN0UmVzdWx0OjphZGROb2RlVG9SZWN0
QmFzZWRUZXN0UmVzdWx0KE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29u
dGFpbmVyLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIC8vIElmIGl0IGlzIG5vdCBhIHJl
Y3QtYmFzZWQgaGl0IHRlc3QsIHRoaXMgbWV0aG9kIGhhcyB0byBiZSBuby1vcC4KICAgICAvLyBS
ZXR1cm4gZmFsc2UsIHNvIHRoZSBoaXQgdGVzdCBzdG9wcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAkocmV2aXNpb24gOTA3NzgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGl0IGlzIHJlY3QtYmFz
ZWQgaGl0IHRlc3QgYW5kIG5lZWRzIHRvIGNvbnRpbnVlIHVudGlsIHRoZSByZWN0IGlzIGZ1bGx5
CiAgICAgLy8gZW5jbG9zZWQgYnkgdGhlIGJvdW5kYXJpZXMgb2YgYSBub2RlLgotICAgIGJvb2wg
YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiwgY29uc3QgTGF5b3V0UG9pbnQmIHBv
aW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFJlY3QmID0gSW50UmVjdCgpKTsKKyAgICBib29s
IGFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQoTm9kZSosIGNvbnN0IExheW91dFBvaW50JiBw
b2ludEluQ29udGFpbmVyLCBjb25zdCBJbnRSZWN0JiA9IEludFJlY3QoKSk7CiAgICAgYm9vbCBh
ZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KE5vZGUqLCBjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnRJbkNvbnRhaW5lciwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdm9pZCBhcHBlbmQoY29uc3Qg
SGl0VGVzdFJlc3VsdCYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102050</attachid>
            <date>2011-07-26 14:08:36 -0700</date>
            <delta_ts>2011-07-27 16:18:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64301-20110726140834.patch</filename>
            <type>text/plain</type>
            <size>11270</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNzgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDctMjYgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCB0cmFuc2Zvcm0g
b3BlcmF0aW9ucyB0byBGbG9hdFNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ2hhbmdpbmcgVHJhbnNmb3JtT3BlcmF0aW9uIGFuZCBpdHMgcHJvZ2Vu
eSB0byBvcGVyYXRlIG9uIEZsb2F0U2l6ZXMgaW5zdGVhZCBvZiBJbnRTaXplcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRp
b24uaDoKKyAgICAgICAgKFdlYkNvcmU6OklkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uOjphcHBs
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5z
Zm9ybU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRyaXgzRFRyYW5zZm9ybU9w
ZXJhdGlvbjo6YmxlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
TWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdHJpeDNE
VHJhbnNmb3JtT3BlcmF0aW9uOjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbjo6YXBwbHkpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjphcHBs
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zv
cm1PcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bjo6YXBwbHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVU
cmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxlVHJhbnNmb3JtT3Bl
cmF0aW9uOjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9T
a2V3VHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpTa2V3VHJhbnNmb3Jt
T3BlcmF0aW9uOjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9UcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9y
bU9wZXJhdGlvbnM6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6VHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjp4KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zbGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbjo6eSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2xhdGVUcmFu
c2Zvcm1PcGVyYXRpb246OnopOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNsYXRlVHJhbnNmb3Jt
T3BlcmF0aW9uOjphcHBseSk6CisKIDIwMTEtMDctMjYgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBw
bGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MDc3OApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9JZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRp
b24uaAkocmV2aXNpb24gOTE3NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIGlzU2FtZVR5cGUobyk7
CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4Jiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0CisgICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0
aW9uTWF0cml4JiwgY29uc3QgRmxvYXRTaXplJikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNm
b3JtT3BlcmF0aW9uLmNwcAkocmV2aXNpb24gOTE3NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJh
dGlvbj4gTWF0cml4M0RUCiAgICAgICAgIHJldHVybiB0aGlzOwogCiAgICAgLy8gQ29udmVydCB0
aGUgVHJhbnNmb3JtT3BlcmF0aW9ucyBpbnRvIG1hdHJpY2VzCi0gICAgSW50U2l6ZSBzaXplOwor
ICAgIEZsb2F0U2l6ZSBzaXplOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGZyb21UOwogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IHRvVDsKICAgICBpZiAoZnJvbSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVy
YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJldmlzaW9uIDkxNzYxKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRy
YW5zZm9ybU9wZXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHByaXZh
dGU6ICAgIAogICAgICAgICByZXR1cm4gbV9tYXRyaXggPT0gbS0+bV9tYXRyaXg7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0s
IGNvbnN0IEludFNpemUmKSBjb25zdAorICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFNpemUmKSBjb25zdAogICAgIHsKICAg
ICAgICAgdHJhbnNmb3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fbWF0cml4KSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRy
YW5zZm9ybU9wZXJhdGlvbi5jcHAJKHJldmlzaW9uIDkxNzYxKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3Bl
cmF0aW9uPiBNYXRyaXhUcmEKICAgICAgICAgcmV0dXJuIHRoaXM7CiAKICAgICAvLyBjb252ZXJ0
IHRoZSBUcmFuc2Zvcm1PcGVyYXRpb25zIGludG8gbWF0cmljZXMKLSAgICBJbnRTaXplIHNpemU7
CisgICAgRmxvYXRTaXplIHNpemU7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZnJvbVQ7CiAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdG9UKG1fYSwgbV9iLCBtX2MsIG1fZCwgbV9lLCBtX2Yp
OwogICAgIGlmIChmcm9tKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3Jt
T3BlcmF0aW9uLmgJKHJldmlzaW9uIDkxNzYxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbV9hID09IG0t
Pm1fYSAmJiBtX2IgPT0gbS0+bV9iICYmIG1fYyA9PSBtLT5tX2MgJiYgbV9kID09IG0tPm1fZCAm
JiBtX2UgPT0gbS0+bV9lICYmIG1fZiA9PSBtLT5tX2Y7CiAgICAgfQogCi0gICAgdmlydHVhbCBi
b29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEludFNpemUm
KSBjb25zdAorICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJh
bnNmb3JtLCBjb25zdCBGbG9hdFNpemUmKSBjb25zdAogICAgIHsKICAgICAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggbWF0cml4KG1fYSwgbV9iLCBtX2MsIG1fZCwgbV9lLCBtX2YpOwogICAgICAg
ICB0cmFuc2Zvcm0ubXVsdGlwbHkobWF0cml4KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJldmlzaW9uIDkxNzYxKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5z
Zm9ybU9wZXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHJldHVybiBtX3AgPT0gcC0+bV9wOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBJbnRTaXplJikg
Y29uc3QKKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRTaXplJikgY29uc3QKICAgICB7CiAgICAgICAgIHRyYW5zZm9ybS5h
cHBseVBlcnNwZWN0aXZlKG1fcC5jYWxjRmxvYXRWYWx1ZSgxKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAko
cmV2aXNpb24gOTE3NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3
ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX3ggPT0gci0+bV94ICYmIG1feSA9
PSByLT5tX3kgJiYgbV96ID09IHItPm1feiAmJiBtX2FuZ2xlID09IHItPm1fYW5nbGU7CiAgICAg
fQogCi0gICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zv
cm0sIGNvbnN0IEludFNpemUmIC8qYm9yZGVyQm94U2l6ZSovKSBjb25zdAorICAgIHZpcnR1YWwg
Ym9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFNp
emUmIC8qYm9yZGVyQm94U2l6ZSovKSBjb25zdAogICAgIHsKICAgICAgICAgdHJhbnNmb3JtLnJv
dGF0ZTNkKG1feCwgbV95LCBtX3osIG1fYW5nbGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJh
bnNmb3JtT3BlcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oCShyZXZpc2lvbiA5
MTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2Nh
bGVUcmFuc2Zvcm1PcGVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBw
cml2YXRlOgogICAgICAgICByZXR1cm4gbV94ID09IHMtPm1feCAmJiBtX3kgPT0gcy0+bV95ICYm
IG1feiA9PSBzLT5tX3o7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEludFNpemUmKSBjb25zdAorICAgIHZpcnR1
YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9h
dFNpemUmKSBjb25zdAogICAgIHsKICAgICAgICAgdHJhbnNmb3JtLnNjYWxlM2QobV94LCBtX3ks
IG1feik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1Ry
YW5zZm9ybU9wZXJhdGlvbi5oCShyZXZpc2lvbiA5MTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX2Fu
Z2xlWCA9PSBzLT5tX2FuZ2xlWCAmJiBtX2FuZ2xlWSA9PSBzLT5tX2FuZ2xlWTsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0CisgICAgdmlydHVhbCBib29sIGFwcGx5KFRyYW5zZm9ybWF0
aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0CiAgICAgewogICAg
ICAgICB0cmFuc2Zvcm0uc2tldyhtX2FuZ2xlWCwgbV9hbmdsZVkpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1RyYW5zZm9ybU9wZXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJldmlzaW9uIDkx
NzYxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1PcGVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsOCBAQAogI2lmbmRl
ZiBUcmFuc2Zvcm1PcGVyYXRpb25faAogI2RlZmluZSBUcmFuc2Zvcm1PcGVyYXRpb25faAogCisj
aW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIK
LSNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0ID0gMDsKIAogICAgIC8vIFJldHVybiB0cnVl
IGlmIHRoZSBib3JkZXJCb3hTaXplIHdhcyB1c2VkIGluIHRoZSBjb21wdXRhdGlvbiwgZmFsc2Ug
b3RoZXJ3aXNlLgotICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IEludFNpemUmIGJvcmRlckJveFNpemUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgYXBwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFNpemUmIGJvcmRlckJv
eFNpemUpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVy
YXRpb24+IGJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbSwgZG91YmxlIHByb2dy
ZXNzLCBib29sIGJsZW5kVG9JZGVudGl0eSA9IGZhbHNlKSA9IDA7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5oCShyZXZpc2lvbiA5MTc2MSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICEo
KnRoaXMgPT0gbyk7CiAgICAgfQogICAgIAotICAgIHZvaWQgYXBwbHkoY29uc3QgSW50U2l6ZSYg
c3osIFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KSBjb25zdAorICAgIHZvaWQgYXBwbHkoY29uc3Qg
RmxvYXRTaXplJiBzeiwgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpIGNvbnN0CiAgICAgewogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9vcGVyYXRpb25zLnNpemUoKTsgKytpKQog
ICAgICAgICAgICAgbV9vcGVyYXRpb25zW2ldLT5hcHBseSh0LCBzeik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgJKHJldmlzaW9uIDkxNzYx
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xh
dGVUcmFuc2Zvcm1PcGVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDIsOSArNDIsOSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVHJhbnNsYXRlVHJhbnNmb3JtT3Bl
cmF0aW9uKHR4LCB0eSwgdHosIHR5cGUpKTsKICAgICB9CiAKLSAgICBkb3VibGUgeChjb25zdCBJ
bnRTaXplJiBib3JkZXJCb3hTaXplKSBjb25zdCB7IHJldHVybiBtX3guY2FsY0Zsb2F0VmFsdWUo
Ym9yZGVyQm94U2l6ZS53aWR0aCgpKTsgfQotICAgIGRvdWJsZSB5KGNvbnN0IEludFNpemUmIGJv
cmRlckJveFNpemUpIGNvbnN0IHsgcmV0dXJuIG1feS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hT
aXplLmhlaWdodCgpKTsgfQotICAgIGRvdWJsZSB6KGNvbnN0IEludFNpemUmKSBjb25zdCB7IHJl
dHVybiBtX3ouY2FsY0Zsb2F0VmFsdWUoMSk7IH0KKyAgICBkb3VibGUgeChjb25zdCBGbG9hdFNp
emUmIGJvcmRlckJveFNpemUpIGNvbnN0IHsgcmV0dXJuIG1feC5jYWxjRmxvYXRWYWx1ZShib3Jk
ZXJCb3hTaXplLndpZHRoKCkpOyB9CisgICAgZG91YmxlIHkoY29uc3QgRmxvYXRTaXplJiBib3Jk
ZXJCb3hTaXplKSBjb25zdCB7IHJldHVybiBtX3kuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6
ZS5oZWlnaHQoKSk7IH0KKyAgICBkb3VibGUgeihjb25zdCBGbG9hdFNpemUmKSBjb25zdCB7IHJl
dHVybiBtX3ouY2FsY0Zsb2F0VmFsdWUoMSk7IH0KIAogICAgIExlbmd0aCB4KCkgY29uc3QgeyBy
ZXR1cm4gbV94OyB9CiAgICAgTGVuZ3RoIHkoKSBjb25zdCB7IHJldHVybiBtX3k7IH0KQEAgLTY0
LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1feCA9PSB0LT5tX3ggJiYgbV95
ID09IHQtPm1feSAmJiBtX3ogPT0gdC0+bV96OwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBh
cHBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBJbnRTaXplJiBib3Jk
ZXJCb3hTaXplKSBjb25zdAorICAgIHZpcnR1YWwgYm9vbCBhcHBseShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFNpemUmIGJvcmRlckJveFNpemUpIGNvbnN0CiAg
ICAgewogICAgICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlM2QoeChib3JkZXJCb3hTaXplKSwgeShi
b3JkZXJCb3hTaXplKSwgeihib3JkZXJCb3hTaXplKSk7CiAgICAgICAgIHJldHVybiBtX3gudHlw
ZSgpID09IFBlcmNlbnQgfHwgbV95LnR5cGUoKSA9PSBQZXJjZW50Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>