<?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>107505</bug_id>
          
          <creation_ts>2013-01-21 23:20:18 -0800</creation_ts>
          <short_desc>Abstract the logic for appending a UChar32 onto StringBuilder</short_desc>
          <delta_ts>2013-01-24 15:02:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</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="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>812645</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-01-21 23:20:18 -0800</bug_when>
    <thetext>Several StringBuilder clients in WebCore want to a append a UChar32 onto a StringBuilder. Right now the logic for doing this is repeated at each place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814236</commentid>
    <comment_count>1</comment_count>
      <attachid>184244</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-01-23 08:41:35 -0800</bug_when>
    <thetext>Created attachment 184244
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814238</commentid>
    <comment_count>2</comment_count>
      <attachid>184244</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-01-23 08:43:19 -0800</bug_when>
    <thetext>Comment on attachment 184244
Patch for landing

Sorry, apparently I hit a bug in webkit-patch. This is for another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814239</commentid>
    <comment_count>3</comment_count>
      <attachid>184246</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-01-23 08:45:33 -0800</bug_when>
    <thetext>Created attachment 184246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814264</commentid>
    <comment_count>4</comment_count>
      <attachid>184246</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-23 09:35:27 -0800</bug_when>
    <thetext>Comment on attachment 184246
Patch

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

Nice improvement at every call site!

&gt; Source/WTF/wtf/text/StringBuilder.h:149
&gt; +            UChar character = static_cast&lt;UChar&gt;(c);
&gt; +            ASSERT(character == c);
&gt; +            append(character);

Tiny nit: This seems like overkill to me. I would follow the CSSOMUtils.cpp version and just do this.

    append(static_cast&lt;UChar&gt;(c));

We can trust that U_IS_BMP works properly and don’t need to restate what it does in the form of an assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814601</commentid>
    <comment_count>5</comment_count>
      <attachid>184246</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-23 13:54:30 -0800</bug_when>
    <thetext>Comment on attachment 184246
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        No new tests. This is just refactor, so it&apos;s covered by
&gt; +        existing tests.

Actually, WTF has a growing corpus of C++ tests. They already caught some bugs in the past.

I would appreciate if you could spend 5 minutes extending the tests of StringBuilder of this use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814607</commentid>
    <comment_count>6</comment_count>
      <attachid>184246</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-23 14:00:41 -0800</bug_when>
    <thetext>Comment on attachment 184246
Patch

Actually, I am gonna cq-. I agree with Darin&apos;s r+ but I would like this to have its test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814617</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-01-23 14:16:00 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 184246 [details])
&gt; Actually, I am gonna cq-. I agree with Darin&apos;s r+ but I would like this to have its test.

I don&apos;t mind adding a test, I&apos;ll do that and have you do a quick review before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815033</commentid>
    <comment_count>8</comment_count>
      <attachid>184393</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-01-23 21:08:51 -0800</bug_when>
    <thetext>Created attachment 184393
Patch for final review and landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815086</commentid>
    <comment_count>9</comment_count>
      <attachid>184393</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-23 22:34:29 -0800</bug_when>
    <thetext>Comment on attachment 184393
Patch for final review and landing

Attachment 184393 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16096002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815112</commentid>
    <comment_count>10</comment_count>
      <attachid>184393</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-23 23:04:03 -0800</bug_when>
    <thetext>Comment on attachment 184393
Patch for final review and landing

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

Thank you for adding the test. Some comments bellow:

&gt; Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp:97
&gt; +
&gt; +    StringBuilder builder3;
&gt; +    UChar32 frakturAChar = 0x1D504;
&gt; +    builder3.append(frakturAChar); // The fraktur A is not in the BMP, so it&apos;s two UTF-16 code units long.
&gt; +    ASSERT_EQ(2, builder3.length());
&gt; +    builder3.append(static_cast&lt;UChar32&gt;(&apos;A&apos;));
&gt; +    ASSERT_EQ(3, builder3.length());
&gt; +    ASSERT_EQ(builder3[0], U16_LEAD(frakturAChar));
&gt; +    ASSERT_EQ(builder3[1], U16_TRAIL(frakturAChar));
&gt; +    ASSERT_EQ(builder3[2], &apos;A&apos;);

Please add a little comment saying this is testing the append(UChar32).

Instead of ASSERT_EQ(builder3[0], U16_LEAD(frakturAChar));
Please to builder3.toString()  -&gt; then test the characters of the string.
This way, we test append() end to end and make sure the builder does its job at building strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815115</commentid>
    <comment_count>11</comment_count>
      <attachid>184393</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-23 23:09:47 -0800</bug_when>
    <thetext>Comment on attachment 184393
Patch for final review and landing

Attachment 184393 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16034031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815167</commentid>
    <comment_count>12</comment_count>
      <attachid>184393</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-24 00:16:59 -0800</bug_when>
    <thetext>Comment on attachment 184393
Patch for final review and landing

Attachment 184393 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16073652</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815422</commentid>
    <comment_count>13</comment_count>
      <attachid>184484</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-01-24 06:35:40 -0800</bug_when>
    <thetext>Created attachment 184484
Patch for final review and landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815878</commentid>
    <comment_count>14</comment_count>
      <attachid>184484</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-24 15:02:37 -0800</bug_when>
    <thetext>Comment on attachment 184484
Patch for final review and landing

Clearing flags on attachment: 184484

Committed r140731: &lt;http://trac.webkit.org/changeset/140731&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815879</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-24 15:02:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184244</attachid>
            <date>2013-01-23 08:41:35 -0800</date>
            <delta_ts>2013-01-23 08:45:29 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-107505-20130123083828.patch</filename>
            <type>text/plain</type>
            <size>11647</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAxMjEwYzU0MDkzZGZh
ZTE5ODJlZWU3NzhlYjg0MmYyMmRkYjVlNi4uYmUzZDRhZWM0YWVjMGZhOTk5YTM5ZTg5NTE0YTEw
ZDk3NWYwZmJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAxLTIxICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hv
dWxkIHN1cHBvcnQgZGVjb2RpbmcgbXVsdGktYnl0ZSBlbnRpdGllcyBpbiBYTUwgY29udGVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDU5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBUZXN0OiBmYXN0L3Bh
cnNlci9lbnRpdGllcy1pbi14aHRtbC54aHRtbAorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TEVudGl0eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRVQ2hhcjMyVG9VQ2hh
ckFycmF5KTogQWRkZWQgdGhpcyBoZWxwZXIgZnVuY3Rpb24uIExhdGVyIHBhdGNoZXMKKyAgICAg
ICAgbWF5IHRyeSB0byBtb3ZlIHRoaXMgY29kZSB0byBzb21ld2hlcmUgdGhhdCBpdCBjYW4gYmUg
c2hhcmVkIG1vcmUgZWFzaWx5LgorICAgICAgICAoV2ViQ29yZTo6ZGVjb2RlTmFtZWRFbnRpdHlU
b1VDaGFyQXJyYXkpOiBNb2RpZnkgdGhpcyBmdW5jdGlvbiB0byB3b3JrIG9uIGEgVUNoYXIKKyAg
ICAgICAgYXJyYXkgZm91ciBlbGVtZW50cyBsb25nLCBzbyB0aGF0IG11bHRpLWJ5dGUgYW5kIG11
bHRpLWNoYXJhY3RlciBlbnRpdGllcyBjYW4gYmUgcmVzb2x2ZWQuCisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTEVudGl0eVBhcnNlci5oOiBVcGRhdGVkIGZ1bmN0aW9uIGRlY2xhcmF0b2luLgor
ICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOiBNb2RpZnkgdGhlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIGVudGl0eSBzdHJp
bmcgbWVtb3J5IGFyZWEgdG8gYWNjb21tb2RhdGUKKyAgICAgICAgdXAgdG8gdHdvIFVURi04IGNo
YXJhY3RlcnMuIEVhY2ggVVRGLTggY2hhcmFjdGVyIGNhbiBiZSA0IGJ5dGVzLCBzbyB0aGlzIGJy
aW5ncyB0aGUKKyAgICAgICAgdG90YWwgc2l6ZSB0byA5IGJ5dGVzLgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0WEhUTUxFbnRpdHkpOiBVc2UgdGhlIG5ldyBlbnRpdHkgZGVjb2RpbmcgQVBJLgorICAg
ICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbnRpdHlSZXNvbHZlcjo6cmVzb2x2ZVVuZGVjbGFyZWRFbnRpdHkpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwYXJzZSk6IERpdHRvLgorCiAyMDEz
LTAxLTIxICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJ
bXBsZW1lbnQgVUlFdmVudCBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRW50aXR5UGFyc2VyLmNwcAppbmRleCA3MmY5MWNiNzg5ODRjN2ZkNDFlZTJjZDg0
YzA2ODUwOTlkMzNkMWQzLi5jZmYyMmUwYzI2ZDI2NGE3ZWM3OTMyZGFhN2RlMDZiYzMxMDkwMTQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmNw
cApAQCAtMTQwLDcgKzE0MCwyMSBAQCBib29sIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBTdHJpbmdCdWlsZGVyJiBkZWNvZGVkRW50aXR5LCBibwogICAgIHJldHVy
biBjb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlPEhUTUxFbnRpdHlQYXJzZXI+KHNvdXJjZSwgZGVj
b2RlZEVudGl0eSwgbm90RW5vdWdoQ2hhcmFjdGVycywgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0
ZXIpOwogfQogCi1VQ2hhciBkZWNvZGVOYW1lZEVudGl0eShjb25zdCBjaGFyKiBuYW1lKQorc3Rh
dGljIHNpemVfdCBhcHBlbmRVQ2hhcjMyVG9VQ2hhckFycmF5KFVDaGFyMzIgdmFsdWUsIFVDaGFy
KiByZXN1bHQpCit7CisgICAgaWYgKFVfSVNfQk1QKHZhbHVlKSkgeworICAgICAgICBVQ2hhciBj
aGFyYWN0ZXIgPSBzdGF0aWNfY2FzdDxVQ2hhcj4odmFsdWUpOworICAgICAgICBBU1NFUlQoY2hh
cmFjdGVyID09IHZhbHVlKTsKKyAgICAgICAgcmVzdWx0WzBdID0gY2hhcmFjdGVyOworICAgICAg
ICByZXR1cm4gMTsKKyAgICB9CisKKyAgICByZXN1bHRbMF0gPSBVMTZfTEVBRCh2YWx1ZSk7Cisg
ICAgcmVzdWx0WzFdID0gVTE2X1RSQUlMKHZhbHVlKTsKKyAgICByZXR1cm4gMjsKK30KKworc2l6
ZV90IGRlY29kZU5hbWVkRW50aXR5VG9VQ2hhckFycmF5KGNvbnN0IGNoYXIqIG5hbWUsIFVDaGFy
IHJlc3VsdFs0XSkKIHsKICAgICBIVE1MRW50aXR5U2VhcmNoIHNlYXJjaDsKICAgICB3aGlsZSAo
Km5hbWUpIHsKQEAgLTE1MiwxMyArMTY2LDEwIEBAIFVDaGFyIGRlY29kZU5hbWVkRW50aXR5KGNv
bnN0IGNoYXIqIG5hbWUpCiAgICAgaWYgKCFzZWFyY2guaXNFbnRpdHlQcmVmaXgoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICBVQ2hhcjMyIGZpcnN0VmFsdWUgPSBzZWFyY2gubW9zdFJlY2Vu
dE1hdGNoKCktPmZpcnN0VmFsdWU7Ci0gICAgaWYgKFUxNl9MRU5HVEgoZmlyc3RWYWx1ZSkgIT0g
MSB8fCBzZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVlKSB7Ci0gICAgICAgIC8v
IEZJWE1FOiBDYWxsZXJzIG5lZWQgdG8gbW92ZSBvZmYgdGhpcyBBUEkuIE5vdCBhbGwgZW50aXRp
ZXMgY2FuIGJlCi0gICAgICAgIC8vIHJlcHJlc2VudGVkIGluIGEgc2luZ2xlIFVDaGFyIQotICAg
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFVDaGFyPihmaXJz
dFZhbHVlKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZDb2RlUG9pbnRzID0gYXBwZW5kVUNoYXIzMlRv
VUNoYXJBcnJheShzZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPmZpcnN0VmFsdWUsIHJlc3VsdCk7
CisgICAgaWYgKCFzZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVlKQorICAgICAg
ICByZXR1cm4gbnVtYmVyT2ZDb2RlUG9pbnRzOworICAgIHJldHVybiBudW1iZXJPZkNvZGVQb2lu
dHMgKyBhcHBlbmRVQ2hhcjMyVG9VQ2hhckFycmF5KHNlYXJjaC5tb3N0UmVjZW50TWF0Y2goKS0+
c2Vjb25kVmFsdWUsIHJlc3VsdCArIG51bWJlck9mQ29kZVBvaW50cyk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxFbnRpdHlQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQ
YXJzZXIuaAppbmRleCAyNjhiMmRkZTUzNjc4NTJiMDY4MzNiOTUzZjFjZWE4YWQ3NjFjZDY0Li4z
ZjkyZWFlMmY0ZTE0OWI0NWViZTVlN2NmODg5ZDJmZGRmZjk2NTQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5oCkBAIC0zNCw4ICszNCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGJvb2wgY29uc3VtZUhUTUxFbnRpdHkoU2VnbWVudGVkU3RyaW5n
JiwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZEVudGl0eSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVy
cywgVUNoYXIgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAnXDAnKTsKIAogLy8gVXNlZCBi
eSB0aGUgWE1MIHBhcnNlci4gIE5vdCBzdWl0YWJsZSBmb3IgdXNlIGluIEhUTUwgcGFyc2luZy4g
IFVzZSBjb25zdW1lSFRNTEVudGl0eSBpbnN0ZWFkLgotLy8gRklYTUU6IE1vdmUgdGhlIFhNTCBw
YXJzZXIgdG8gYW4gZW50aXR5IGRlY29kaW5nIGZ1bmN0aW9uIHdvcmtzIGZvciBub24tQk1QIGNo
YXJhY3RlcnMhCi1VQ2hhciBkZWNvZGVOYW1lZEVudGl0eShjb25zdCBjaGFyKik7CitzaXplX3Qg
ZGVjb2RlTmFtZWRFbnRpdHlUb1VDaGFyQXJyYXkoY29uc3QgY2hhciosIFVDaGFyIHJlc3VsdFs0
XSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDc4YjgwNmQ1YWE3YTExNmIzN2I1N2FkNDE3ZTk3
MTY1ZGJjOTczNjAuLjg4ZDIzZWU2MWIxM2JlYWZlOTYzMDU3OTA1OTc5YTc1MjNiMDYzMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4
bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi91bmljb2RlL1VURjguaD4KIAogI2lmIEVOQUJMRShYU0xUKQogI2luY2x1
ZGUgIlhNTFRyZWVWaWV3ZXIuaCIKQEAgLTExNjAsNyArMTE2MSw3IEBAIHN0YXRpYyB2b2lkIG5v
cm1hbEVycm9ySGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCAuLi4p
CiAvLyBVc2luZyBhIHN0YXRpYyBlbnRpdHkgYW5kIG1hcmtpbmcgaXQgWE1MX0lOVEVSTkFMX1BS
RURFRklORURfRU5USVRZIGlzCiAvLyBhIGhhY2sgdG8gYXZvaWQgbWFsbG9jL2ZyZWUuIFVzaW5n
IGEgZ2xvYmFsIHZhcmlhYmxlIGxpa2UgdGhpcyBjb3VsZCBjYXVzZSB0cm91YmxlCiAvLyBpZiBs
aWJ4bWwgaW1wbGVtZW50YXRpb24gZGV0YWlscyB3ZXJlIHRvIGNoYW5nZQotc3RhdGljIHhtbENo
YXIgc2hhcmVkWEhUTUxFbnRpdHlSZXN1bHRbNV0gPSB7MCwgMCwgMCwgMCwgMH07CitzdGF0aWMg
eG1sQ2hhciBzaGFyZWRYSFRNTEVudGl0eVJlc3VsdFs5XSA9IHswLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwfTsKIAogc3RhdGljIHhtbEVudGl0eVB0ciBzaGFyZWRYSFRNTEVudGl0eSgpCiB7CkBA
IC0xMTc0LDE5ICsxMTc1LDM2IEBAIHN0YXRpYyB4bWxFbnRpdHlQdHIgc2hhcmVkWEhUTUxFbnRp
dHkoKQogICAgIHJldHVybiAmZW50aXR5OwogfQogCitzdGF0aWMgc2l6ZV90IGNvbnZlcnRVVEYx
NkVudGl0eVRvVVRGOChjb25zdCBVQ2hhciogdXRmMTZFbnRpdHksIHNpemVfdCBudW1iZXJPZkNv
ZGVVbml0cywgY2hhciogdGFyZ2V0LCBzaXplX3QgdGFyZ2V0U2l6ZSkKK3sKKyAgICBjb25zdCBj
aGFyKiBvcmlnaW5hbFRhcmdldCA9IHRhcmdldDsKKyAgICBXVEY6OlVuaWNvZGU6OkNvbnZlcnNp
b25SZXN1bHQgY29udmVyc2lvblJlc3VsdCA9IFdURjo6VW5pY29kZTo6Y29udmVydFVURjE2VG9V
VEY4KCZ1dGYxNkVudGl0eSwKKyAgICAgICAgdXRmMTZFbnRpdHkgKyBudW1iZXJPZkNvZGVVbml0
cywgJnRhcmdldCwgdGFyZ2V0ICsgdGFyZ2V0U2l6ZSk7CisgICAgaWYgKGNvbnZlcnNpb25SZXN1
bHQgIT0gV1RGOjpVbmljb2RlOjpjb252ZXJzaW9uT0spCisgICAgICAgIHJldHVybiAwOworCisg
ICAgLy8gRXZlbiB0aG91Z2ggd2UgbXVzdCBwYXNzIHRoZSBsZW5ndGgsIGxpYnhtbCBleHBlY3Rz
IHRoZSBlbnRpdHkgc3RyaW5nIHRvIGJlIG51bGwgdGVybWluYXRlZC4KKyAgICBBU1NFUlQodGFy
Z2V0ID4gb3JpZ2luYWxUYXJnZXQgKyAxKTsKKyAgICAqdGFyZ2V0ID0gJ1wwJzsKKyAgICByZXR1
cm4gdGFyZ2V0IC0gb3JpZ2luYWxUYXJnZXQ7Cit9CisKIHN0YXRpYyB4bWxFbnRpdHlQdHIgZ2V0
WEhUTUxFbnRpdHkoY29uc3QgeG1sQ2hhciogbmFtZSkKIHsKLSAgICBVQ2hhciBjID0gZGVjb2Rl
TmFtZWRFbnRpdHkocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4obmFtZSkpOwotICAgIGlm
ICghYykKKyAgICBVQ2hhciB1dGYxNkRlY29kZWRFbnRpdHlbNF07CisgICAgc2l6ZV90IG51bWJl
ck9mQ29kZVVuaXRzID0gZGVjb2RlTmFtZWRFbnRpdHlUb1VDaGFyQXJyYXkocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4obmFtZSksIHV0ZjE2RGVjb2RlZEVudGl0eSk7CisgICAgaWYgKCFu
dW1iZXJPZkNvZGVVbml0cykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBU1NFUlQobnVtYmVy
T2ZDb2RlVW5pdHMgPD0gNCk7CisgICAgc2l6ZV90IGVudGl0eUxlbmd0aEluVVRGOCA9IGNvbnZl
cnRVVEYxNkVudGl0eVRvVVRGOCh1dGYxNkRlY29kZWRFbnRpdHksIG51bWJlck9mQ29kZVVuaXRz
LAorICAgICAgICByZWludGVycHJldF9jYXN0PGNoYXIqPihzaGFyZWRYSFRNTEVudGl0eVJlc3Vs
dCksIFdURl9BUlJBWV9MRU5HVEgoc2hhcmVkWEhUTUxFbnRpdHlSZXN1bHQpKTsKKyAgICBpZiAo
IWVudGl0eUxlbmd0aEluVVRGOCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBDU3RyaW5nIHZh
bHVlID0gU3RyaW5nKCZjLCAxKS51dGY4KCk7Ci0gICAgQVNTRVJUKHZhbHVlLmxlbmd0aCgpIDwg
NSk7CiAgICAgeG1sRW50aXR5UHRyIGVudGl0eSA9IHNoYXJlZFhIVE1MRW50aXR5KCk7Ci0gICAg
ZW50aXR5LT5sZW5ndGggPSB2YWx1ZS5sZW5ndGgoKTsKKyAgICBlbnRpdHktPmxlbmd0aCA9IGVu
dGl0eUxlbmd0aEluVVRGODsKICAgICBlbnRpdHktPm5hbWUgPSBuYW1lOwotICAgIG1lbWNweShz
aGFyZWRYSFRNTEVudGl0eVJlc3VsdCwgdmFsdWUuZGF0YSgpLCBlbnRpdHktPmxlbmd0aCArIDEp
OwotCiAgICAgcmV0dXJuIGVudGl0eTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKaW5kZXggZmI1NTgzYWQwNTQ5YjQxMDcwYmYw
MzlkMWFkZTcwOTFiZjk3OTA4MS4uMDcxNDc1MDRjNDBkMTg3ZDc5ZjY5N2IzODE4ZGY2ZTdhNzIz
MGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyUXQuY3BwCkBAIC02NywxMCArNjcsMTYgQEAgY2xhc3MgRW50aXR5UmVzb2x2ZXIgOiBwdWJs
aWMgUVhtbFN0cmVhbUVudGl0eVJlc29sdmVyIHsKICAgICB2aXJ0dWFsIFFTdHJpbmcgcmVzb2x2
ZVVuZGVjbGFyZWRFbnRpdHkoY29uc3QgUVN0cmluZyAmbmFtZSk7CiB9OwogCitzdGF0aWMgUVN0
cmluZyBkZWNvZGVOYW1lZEVudGl0eShjb25zdCBRU3RyaW5nJiBlbnRpdHlOYW1lKQoreworICAg
IFVDaGFyIHV0ZjE2RGVjb2RlZEVudGl0eVs0XTsKKyAgICBzaXplX3QgbnVtYmVyT2ZDb2RlUG9p
bnRzID0gZGVjb2RlTmFtZWRFbnRpdHlUb1VDaGFyQXJyYXkoZW50aXR5TmFtZS50b1V0ZjgoKS5j
b25zdERhdGEoKSwgdXRmMTZEZWNvZGVkRW50aXR5KTsKKyAgICByZXR1cm4gUVN0cmluZzo6ZnJv
bVVURjE2KHV0ZjE2RGVjb2RlZEVudGl0eSwgbnVtYmVyT2ZDb2RlUG9pbnRzKTsKK30KKwogUVN0
cmluZyBFbnRpdHlSZXNvbHZlcjo6cmVzb2x2ZVVuZGVjbGFyZWRFbnRpdHkoY29uc3QgUVN0cmlu
ZyAmbmFtZSkKIHsKLSAgICBVQ2hhciBjID0gZGVjb2RlTmFtZWRFbnRpdHkobmFtZS50b1V0Zjgo
KS5jb25zdERhdGEoKSk7Ci0gICAgcmV0dXJuIFFTdHJpbmcoYyk7CisgICAgcmV0dXJuIGRlY29k
ZU5hbWVkRW50aXR5KG5hbWUpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQpAQCAtMzk0LDEzICs0MDAsMTEgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2Uo
KQogICAgICAgICAgICAgLy8gICAgICAgIDw8IiwgdCA9ICI8PG1fc3RyZWFtLnRleHQoKS50b1N0
cmluZygpOwogICAgICAgICAgICAgaWYgKGlzWEhUTUxEb2N1bWVudCgpKSB7CiAgICAgICAgICAg
ICAgICAgUVN0cmluZyBlbnRpdHkgPSBtX3N0cmVhbS5uYW1lKCkudG9TdHJpbmcoKTsKLSAgICAg
ICAgICAgICAgICBVQ2hhciBjID0gZGVjb2RlTmFtZWRFbnRpdHkoZW50aXR5LnRvVXRmOCgpLmNv
bnN0RGF0YSgpKTsKICAgICAgICAgICAgICAgICBpZiAoIW1fbGVhZlRleHROb2RlKQogICAgICAg
ICAgICAgICAgICAgICBlbnRlclRleHQoKTsKICAgICAgICAgICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKCZjLCAxKTsKICAgICAgICAgICAg
ICAgICAvLyBxRGVidWcoKTw8IiAtLS0tLS0tIGFkZGluZyBlbnRpdHkgIjw8c3RyOwotICAgICAg
ICAgICAgICAgIG1fbGVhZlRleHROb2RlLT5hcHBlbmREYXRhKHN0ciwgZWMpOworICAgICAgICAg
ICAgICAgIG1fbGVhZlRleHROb2RlLT5hcHBlbmREYXRhKGRlY29kZU5hbWVkRW50aXR5KGVudGl0
eSksIGVjKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggOWFlY2M2NGQwNWRhMWQ1YTY4ZjY3OWQ3MDQ2NTg3MmI1OTQ4ZTFiOS4uNjU1ODE3ZDdl
ODhkMTJlYmIzMGUyOTdhMzlmYTA4MDIwZDM2YzVhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEzLTAxLTIxICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAg
ICAgICBXZWJLaXQgc2hvdWxkIHN1cHBvcnQgZGVjb2RpbmcgbXVsdGktYnl0ZSBlbnRpdGllcyBp
biBYTUwgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3NDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAg
ICBBZGQgYSBzaW1wbGUgdGVzdCBmb3IgZGVjb2Rpbmcgc29tZSBlbnRpdGllcyB0aGF0IHJlc29s
dmUgdG8gbXVsdGlwbGUKKyAgICAgICAgYnl0ZXMgaW4gWE1MLgorCisgICAgICAgICogZmFzdC9w
YXJzZXIvZW50aXRpZXMtaW4teGh0bWwueGh0bWw6IEFkZGVkIGEgZmV3IG11bHRpLWJ5ZSBlbnRp
dGllcy4KKyAgICAgICAgKiBmYXN0L3BhcnNlci9lbnRpdGllcy1pbi14aHRtbC1leHBlY3RlZC50
eHQ6IFVwZGF0ZWQuCisKIDIwMTMtMDEtMjEgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBVSUV2ZW50IGNvbnN0cnVjdG9yCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9lbnRpdGllcy1pbi14aHRtbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9lbnRpdGllcy1pbi14aHRtbC1leHBlY3RlZC50
eHQKaW5kZXggYzNhM2VmYjBkNzFmY2YzOWEzMzc1ZWE3NDhiMWFlZWU3MWRhMmRiYy4uZjllOTJl
MWM5OGQ1MzY3OTM5MTk3MjQ5YzAzNTY2ODZjNTUzMjk3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wYXJzZXIvZW50aXRpZXMtaW4teGh0bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcGFyc2VyL2VudGl0aWVzLWluLXhodG1sLWV4cGVjdGVkLnR4dApAQCAtMjY2
LDMgKzI2Niw5IEBAIGRlY2ltYWwJaGV4YWRlY2ltYWwJZW50aXR5IG5hbWUJJiNubm47CSYjeGho
aDsJJmVudGl0eTsKIDk4MjcJMjY2MwljbHVicwnimaMJ4pmjCeKZowogOTgyOQkyNjY1CWhlYXJ0
cwnimaUJ4pmlCeKZpQogOTgzMAkyNjY2CWRpYW1zCeKZpgnimaYJ4pmmCitNdWx0aS1ieXRlIGVu
dGl0aWVzIGZyb20gSFRNTDUKKworZGVjaW1hbAloZXhhZGVjaW1hbAllbnRpdHkgbmFtZQkmI25u
bjsJJiN4aGhoOwkmZW50aXR5OworODg4MgkyMkIyCXZsdHJpCeKKsgniirIJ4oqyCis4ODM0ICsg
ODQwMgkyMjgyICsgMjBEMglzdWIJ4oqC4oOSCeKKguKDkgniioLig5IKKzg4MDQgKyA4NDAyCTIy
NjQgKyAyMEQyCXN1YgniiaTig5IJ4omk4oOSCeKJpOKDkgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wYXJzZXIvZW50aXRpZXMtaW4teGh0bWwueGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3BhcnNlci9lbnRpdGllcy1pbi14aHRtbC54aHRtbAppbmRleCAyYzczZjdjZGU3MWE5OTA2ZjVl
MWM4YTljM2ExOTFjNzFmN2VlNGMyLi5iM2JjZmUwZDQ2MjEzMzkyOTk4MTNiMjhkNjg2ZTc5YWZj
ZjQ3MWNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9lbnRpdGllcy1pbi14
aHRtbC54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9lbnRpdGllcy1pbi14aHRt
bC54aHRtbApAQCAtMzMyLDYgKzMzMiwyNyBAQCBlbnRpdHkgbmFtZSBhbmQgcmVzcGVjdGl2ZSBl
bnRpdHkgcmVmZXJlbmNlcyBvZiBYSFRNTCBlbnRpdGllcy4iPgogPHRyPjx0ZD45ODI3PC90ZD48
dGQ+MjY2MzwvdGQ+PHRkPmNsdWJzPC90ZD48dGQ+JiM5ODI3OzwvdGQ+PHRkPiYjeDI2NjM7PC90
ZD48dGQ+JmNsdWJzOzwvdGQ+PC90cj4KIDx0cj48dGQ+OTgyOTwvdGQ+PHRkPjI2NjU8L3RkPjx0
ZD5oZWFydHM8L3RkPjx0ZD4mIzk4Mjk7PC90ZD48dGQ+JiN4MjY2NTs8L3RkPjx0ZD4maGVhcnRz
OzwvdGQ+PC90cj4KIDx0cj48dGQ+OTgzMDwvdGQ+PHRkPjI2NjY8L3RkPjx0ZD5kaWFtczwvdGQ+
PHRkPiYjOTgzMDs8L3RkPjx0ZD4mI3gyNjY2OzwvdGQ+PHRkPiZkaWFtczs8L3RkPjwvdHI+CisK
KzwvdGJvZHk+Cis8L3RhYmxlPgorCis8aDI+TXVsdGktYnl0ZSBlbnRpdGllcyBmcm9tIEhUTUw1
PC9oMj4KKzx0YWJsZSBib3JkZXI9IjEiIHN1bW1hcnk9InRoaXMgdGFibGUgbGlzdHMgZGVjaW1h
bCB2YWx1ZSwgaGV4YWRlY2ltYWwgdmFsdWUsCitlbnRpdHkgbmFtZSBhbmQgcmVzcGVjdGl2ZSBl
bnRpdHkgcmVmZXJlbmNlcyBvZiBYSFRNTCBlbnRpdGllcy4iPgorPHRoZWFkPgorPHRyPgorPHRo
PmRlY2ltYWw8L3RoPgorPHRoPmhleGFkZWNpbWFsPC90aD4KKzx0aD5lbnRpdHkgbmFtZTwvdGg+
Cis8dGg+JmFtcDsjbm5uOzwvdGg+Cis8dGg+JmFtcDsjeGhoaDs8L3RoPgorPHRoPiZhbXA7ZW50
aXR5OzwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj48dGQ+ODg4MjwvdGQ+PHRk
PjIyQjI8L3RkPjx0ZD52bHRyaTwvdGQ+PHRkPiYjODg4Mjs8L3RkPjx0ZD4mI3gyMkIyOzwvdGQ+
PHRkPiZ2bHRyaTs8L3RkPjwvdHI+Cis8dHI+PHRkPjg4MzQgKyA4NDAyPC90ZD48dGQ+MjI4MiAr
IDIwRDI8L3RkPjx0ZD5zdWI8L3RkPjx0ZD4mIzg4MzQ7JiM4NDAyOzwvdGQ+PHRkPiYjeDIyODI7
JiN4MjBEMjs8L3RkPjx0ZD4mdm5zdWI7PC90ZD48L3RyPgorPHRyPjx0ZD44ODA0ICsgODQwMjwv
dGQ+PHRkPjIyNjQgKyAyMEQyPC90ZD48dGQ+c3ViPC90ZD48dGQ+JiM4ODA0OyYjODQwMjs8L3Rk
Pjx0ZD4mI3gyMjY0OyYjeDIwRDI7PC90ZD48dGQ+Jm52bGU7PC90ZD48L3RyPgogPC90Ym9keT4K
IDwvdGFibGU+CiA8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184246</attachid>
            <date>2013-01-23 08:45:33 -0800</date>
            <delta_ts>2013-01-23 21:08:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107505-20130123084225.patch</filename>
            <type>text/plain</type>
            <size>9179</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUzOTU1M2ZjZTZmODBjMWY5NTk2NTY0
MzQ4NTJjYTcyN2RmNTlkNWQuLjlhYTg2ZmE0MWM3MjUwMWJmMTgxYjU5ODE1NmY0NzkwOTVhMzg3
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDEtMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFic3RyYWN0IHRoZSBsb2dpYyBmb3IgYXBw
ZW5kaW5nIGEgVUNoYXIzMiBvbnRvIFN0cmluZ0J1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzUwNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oOgor
ICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmQpOiBBZGRlZCBhIG1ldGhvZCBmb3Ig
YXBwZW5kaW5nIGEgVUNoYXIzMiB0byBhIFN0cmluZ0J1aWxkZXIuCisKIDIwMTMtMDEtMjIgIEpv
c2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBQcmV2ZW50IHJhY2Ug
Y29uZGl0aW9uIGR1cmluZyBXb3JrZXIgc2h1dGRvd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZTNkNGFlYzRh
ZWMwZmE5OTlhMzllODk1MTRhMTBkOTc1ZjBmYmQ2Li4zYjI5OTdhZWU0NDNmNTg0NDg2MWRmNzhl
OWE1MDE4N2E3ZDc1ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDEtMjIg
IE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFic3Ry
YWN0IHRoZSBsb2dpYyBmb3IgYXBwZW5kaW5nIGEgVUNoYXIzMiBvbnRvIFN0cmluZ0J1aWxkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzUwNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gVGhpcyBpcyBqdXN0IHJlZmFjdG9yLCBzbyBpdCdzIGNvdmVyZWQgYnkKKyAgICAgICAg
ZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvQ1NTT01VdGlscy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXJpYWxpemVDaGFyYWN0ZXIpOiBVc2UgdGhlIG5ldyBTdHJpbmdCdWlsZGVy
IGFwcGVuZC4KKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZUlkZW50aWZpZXIpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZVN0cmluZyk6IERpdHRvLgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVu
dGl0eVBhcnNlcjo6Y29uc3VtZU5hbWVkRW50aXR5KTogRGl0dG8uCisgICAgICAgICogc3ZnL1NW
R0ZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnREYXRhOjpjcmVhdGVTdHJp
bmdXaXRoTWlycm9yZWRDaGFyYWN0ZXJzKTogRGl0dG8uCisgICAgICAgICogeG1sL3BhcnNlci9D
aGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dW1lQ2hhcmFjdGVyUmVmZXJlbmNlKTogRGl0dG8uCisgICAgICAgICogeG1sL3BhcnNlci9YTUxD
aGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXIuY3BwOiBSZW1vdmUgYW4gb2xkZXIgaGVscGVyCisgICAg
ICAgIHN1cGVyc2VkZWQgYnkgU3RyaW5nQnVpbGRlcjo6YXBwZW5kLgorCiAyMDEzLTAxLTIxICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJLaXQg
c2hvdWxkIHN1cHBvcnQgZGVjb2RpbmcgbXVsdGktYnl0ZSBlbnRpdGllcyBpbiBYTUwgY29udGVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCBlNjVmOGYzMDE1MGY2NGYxOWNj
YmM3NTIzNzFhZDc0NmFiYzhmY2VjLi5hY2ZmZWQwY2RmYWYwZTJiZTA2NmRmMTJiZmY5YmY4Yjkw
NDY5YTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaApAQCAtMTQxLDYgKzE0MSwx
OCBAQCBwdWJsaWM6CiAgICAgICAgIGFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4oYykpOwogICAg
IH0KIAorICAgIHZvaWQgYXBwZW5kKFVDaGFyMzIgYykKKyAgICB7CisgICAgICAgIGlmIChVX0lT
X0JNUChjKSkgeworICAgICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNo
YXI+KGMpOworICAgICAgICAgICAgQVNTRVJUKGNoYXJhY3RlciA9PSBjKTsKKyAgICAgICAgICAg
IGFwcGVuZChjaGFyYWN0ZXIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIGFwcGVuZChVMTZfTEVBRChjKSk7CisgICAgICAgIGFwcGVuZChVMTZfVFJBSUwoYykpOwor
ICAgIH0KKwogICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3VudD4KICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgYXBwZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hh
cmFjdGVyc0NvdW50XSkgeyBhcHBlbmQoY2hhcmFjdGVycywgY2hhcmFjdGVyc0NvdW50IC0gMSk7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU09NVXRpbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU09NVXRpbHMuY3BwCmluZGV4IDMzNjQyZGI1OTAwOTg1ODI0MzQ5
ZTQyOTk0MmZjNDgzNjhhMDhlOGUuLmU3NjNiZmU2NzViOWQ5NjNhMjQ1MWIzZDQ3ZmUwNDNiYjFl
NGQxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NPTVV0aWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTT01VdGlscy5jcHAKQEAgLTM2LDIwICszNiwxMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lkIGFwcGVuZENoYXJhY3RlcihVQ2hh
cjMyIGMsIFN0cmluZ0J1aWxkZXImIGFwcGVuZFRvKQotewotICAgIGlmIChVMTZfTEVOR1RIKGMp
ID09IDEpCi0gICAgICAgIGFwcGVuZFRvLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYykpOwot
ICAgIGVsc2UgewotICAgICAgICBhcHBlbmRUby5hcHBlbmQoVTE2X0xFQUQoYykpOwotICAgICAg
ICBhcHBlbmRUby5hcHBlbmQoVTE2X1RSQUlMKGMpKTsKLSAgICB9Ci19Ci0KIHZvaWQgc2VyaWFs
aXplQ2hhcmFjdGVyKFVDaGFyMzIgYywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCiB7CiAgICAg
YXBwZW5kVG8uYXBwZW5kKCdcXCcpOwotICAgIGFwcGVuZENoYXJhY3RlcihjLCBhcHBlbmRUbyk7
CisgICAgYXBwZW5kVG8uYXBwZW5kKGMpOwogfQogCiB2b2lkIHNlcmlhbGl6ZUNoYXJhY3RlckFz
Q29kZVBvaW50KFVDaGFyMzIgYywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCkBAIC04MSw3ICs3
MSw3IEBAIHZvaWQgc2VyaWFsaXplSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IFN0cmluZ0J1aWxkZXImIGFwcGVuZFRvKQogICAgICAgICBlbHNlIGlmIChjID09IDB4MmQgJiYg
aXNTZWNvbmQgJiYgaXNGaXJzdENoYXJIeXBoZW4pCiAgICAgICAgICAgICBzZXJpYWxpemVDaGFy
YWN0ZXIoYywgYXBwZW5kVG8pOwogICAgICAgICBlbHNlIGlmICgweDgwIDw9IGMgfHwgYyA9PSAw
eDJkIHx8IGMgPT0gMHg1ZiB8fCAoMHgzMCA8PSBjICYmIGMgPD0gMHgzOSkgfHwgKDB4NDEgPD0g
YyAmJiBjIDw9IDB4NWEpIHx8ICgweDYxIDw9IGMgJiYgYyA8PSAweDdhKSkKLSAgICAgICAgICAg
IGFwcGVuZENoYXJhY3RlcihjLCBhcHBlbmRUbyk7CisgICAgICAgICAgICBhcHBlbmRUby5hcHBl
bmQoYyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNlcmlhbGl6ZUNoYXJhY3RlcihjLCBh
cHBlbmRUbyk7CiAKQEAgLTExNSw3ICsxMDUsNyBAQCB2b2lkIHNlcmlhbGl6ZVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCiAgICAgICAgIGVsc2Ug
aWYgKGMgPT0gMHgyMiB8fCBjID09IDB4NWMpCiAgICAgICAgICAgICBzZXJpYWxpemVDaGFyYWN0
ZXIoYywgYXBwZW5kVG8pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmRDaGFyYWN0
ZXIoYywgYXBwZW5kVG8pOworICAgICAgICAgICAgYXBwZW5kVG8uYXBwZW5kKGMpOwogICAgIH0K
IAogICAgIGFwcGVuZFRvLmFwcGVuZCgnXCInKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVudGl0eVBhcnNlci5jcHAKaW5kZXggY2ZmMjJlMGMyNmQyNjRhN2VjNzkzMmRh
YTdkZTA2YmMzMTA5MDE0Ni4uNmVlZmFkNGI5OTRmYTgzOTZhMTIwMDdjYzU0ZTM5MmQzNDUwNDI5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5j
cHAKQEAgLTY4LDE4ICs2OCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAg
IH0KIAotICAgIGlubGluZSBzdGF0aWMgdm9pZCBjb252ZXJ0VG9VVEYxNihVQ2hhcjMyIHZhbHVl
LCBTdHJpbmdCdWlsZGVyJiBkZWNvZGVkRW50aXR5KQotICAgIHsKLSAgICAgICAgaWYgKFVfSVNf
Qk1QKHZhbHVlKSkgewotICAgICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8
VUNoYXI+KHZhbHVlKTsKLSAgICAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gdmFsdWUpOwot
ICAgICAgICAgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoY2hhcmFjdGVyKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChVMTZfTEVB
RCh2YWx1ZSkpOwotICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChVMTZfVFJBSUwodmFsdWUp
KTsKLSAgICB9Ci0KICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYWNjZXB0TWFsZm9ybWVkKCkgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAgICAgaW5saW5lIHN0YXRpYyBib29sIGNvbnN1bWVOYW1lZEVudGl0
eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZEVudGl0eSwg
Ym9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0
ZXIsIFVDaGFyJiBjYykKQEAgLTEyNSw5ICsxMTMsOSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChl
bnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPmxhc3RDaGFyYWN0ZXIoKSA9PSAnOycKICAg
ICAgICAgICAgIHx8ICFhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcgogICAgICAgICAgICAgfHwg
IShpc0FscGhhTnVtZXJpYyhjYykgfHwgY2MgPT0gJz0nKSkgewotICAgICAgICAgICAgY29udmVy
dFRvVVRGMTYoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5maXJzdFZhbHVlLCBkZWNv
ZGVkRW50aXR5KTsKKyAgICAgICAgICAgIGRlY29kZWRFbnRpdHkuYXBwZW5kKGVudGl0eVNlYXJj
aC5tb3N0UmVjZW50TWF0Y2goKS0+Zmlyc3RWYWx1ZSk7CiAgICAgICAgICAgICBpZiAoZW50aXR5
U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5zZWNvbmRWYWx1ZSkKLSAgICAgICAgICAgICAgICBj
b252ZXJ0VG9VVEYxNihlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVl
LCBkZWNvZGVkRW50aXR5KTsKKyAgICAgICAgICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChl
bnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVlKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291
cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKaW5k
ZXggODRjYTU2OGI5NmQ0ZWZkNzI4YjkyMDBjYjY0MWMxYTgwZWVmYTRmMC4uOWE1NmU2Mjc2MmJi
YmZjYTdkMjdiNGNiMTY5OGYzYzJhYjZiMDQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEu
Y3BwCkBAIC0yOTEsMTggKzI5MSwxMSBAQCBTdHJpbmcgU1ZHRm9udERhdGE6OmNyZWF0ZVN0cmlu
Z1dpdGhNaXJyb3JlZENoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsCiAgICAgU3Ry
aW5nQnVpbGRlciBtaXJyb3JlZENoYXJhY3RlcnM7CiAgICAgbWlycm9yZWRDaGFyYWN0ZXJzLnJl
c2VydmVDYXBhY2l0eShsZW5ndGgpOwogCi0gICAgVUNoYXIzMiBjaGFyYWN0ZXI7CiAgICAgdW5z
aWduZWQgaSA9IDA7CiAgICAgd2hpbGUgKGkgPCBsZW5ndGgpIHsKKyAgICAgICAgVUNoYXIzMiBj
aGFyYWN0ZXI7CiAgICAgICAgIFUxNl9ORVhUKGNoYXJhY3RlcnMsIGksIGxlbmd0aCwgY2hhcmFj
dGVyKTsKLSAgICAgICAgY2hhcmFjdGVyID0gbWlycm9yZWRDaGFyKGNoYXJhY3Rlcik7Ci0KLSAg
ICAgICAgaWYgKFUxNl9MRU5HVEgoY2hhcmFjdGVyKSA9PSAxKQotICAgICAgICAgICAgbWlycm9y
ZWRDaGFyYWN0ZXJzLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oY2hhcmFjdGVyKSk7Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgbWlycm9yZWRDaGFyYWN0ZXJzLmFwcGVuZChVMTZfTEVB
RChjaGFyYWN0ZXIpKTsKLSAgICAgICAgICAgIG1pcnJvcmVkQ2hhcmFjdGVycy5hcHBlbmQoVTE2
X1RSQUlMKGNoYXJhY3RlcikpOwotICAgICAgICB9CisgICAgICAgIG1pcnJvcmVkQ2hhcmFjdGVy
cy5hcHBlbmQobWlycm9yZWRDaGFyKGNoYXJhY3RlcikpOwogICAgIH0KIAogICAgIHJldHVybiBt
aXJyb3JlZENoYXJhY3RlcnMudG9TdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oIGIvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKaW5kZXgg
MTU5Y2Y5M2E2MmJkODQ1ODdiODU1OGM3MzBhMTcyYzVmMTRlYWMzZC4uNjI3ODBjN2RjZGY1YjVk
YzM2MDdlYTYwMmQ0NTE5ODU1YjEwM2QxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKQEAgLTEy
OCwxMCArMTI4LDEwIEBAIGJvb2wgY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZShTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZENoCiAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gcmVzdWx0ICogMTYgKyAxMCArIGNjIC0gJ0EnOwogICAgICAgICAgICAgZWxzZSBp
ZiAoY2MgPT0gJzsnKSB7CiAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQo
Y2MpOwotICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFy
c2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsK
KyAgICAgICAgICAgICAgICBkZWNvZGVkQ2hhcmFjdGVyLmFwcGVuZChQYXJzZXJGdW5jdGlvbnM6
OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAgICAgfSBlbHNlIGlmIChQYXJzZXJGdW5jdGlvbnM6OmFjY2VwdE1hbGZvcm1lZCgp
KSB7Ci0gICAgICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25zOjpjb252ZXJ0VG9VVEYxNihQYXJz
ZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCksIGRlY29kZWRDaGFyYWN0ZXIpOwor
ICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyYWN0ZXIuYXBwZW5kKFBhcnNlckZ1bmN0aW9uczo6
bGVnYWxFbnRpdHlGb3IocmVzdWx0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMo
c291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwpAQCAtMTQ0LDEwICsxNDQsMTAgQEAgYm9vbCBj
b25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBTdHJpbmdC
dWlsZGVyJiBkZWNvZGVkQ2gKICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAxMCAr
IGNjIC0gJzAnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJzsnKSB7CiAgICAgICAgICAg
ICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwotICAgICAgICAgICAgICAgIFBhcnNl
ckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZv
cihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICBkZWNvZGVkQ2hh
cmFjdGVyLmFwcGVuZChQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChQYXJz
ZXJGdW5jdGlvbnM6OmFjY2VwdE1hbGZvcm1lZCgpKSB7Ci0gICAgICAgICAgICAgICAgUGFyc2Vy
RnVuY3Rpb25zOjpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9y
KHJlc3VsdCksIGRlY29kZWRDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgIGRlY29kZWRDaGFy
YWN0ZXIuYXBwZW5kKFBhcnNlckZ1bmN0aW9uczo6bGVnYWxFbnRpdHlGb3IocmVzdWx0KSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184393</attachid>
            <date>2013-01-23 21:08:51 -0800</date>
            <delta_ts>2013-01-24 06:35:36 -0800</delta_ts>
            <desc>Patch for final review and landing</desc>
            <filename>bug-107505-20130123210543.patch</filename>
            <type>text/plain</type>
            <size>10700</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUzOTU1M2ZjZTZmODBjMWY5NTk2NTY0
MzQ4NTJjYTcyN2RmNTlkNWQuLmNiYTM0MWZjNTgzYWQ2MDQ5MjQ5MDY5ZGYxYjk0MzQxMTcwYjEx
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDEtMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFic3RyYWN0IHRoZSBsb2dpYyBmb3IgYXBw
ZW5kaW5nIGEgVUNoYXIzMiBvbnRvIFN0cmluZ0J1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzUwNQorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmQpOiBBZGRlZCBhIG1ldGhvZCBmb3IgYXBw
ZW5kaW5nIGEgVUNoYXIzMiB0byBhIFN0cmluZ0J1aWxkZXIuCisKIDIwMTMtMDEtMjIgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBQcmV2ZW50IHJhY2UgY29u
ZGl0aW9uIGR1cmluZyBXb3JrZXIgc2h1dGRvd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZTNkNGFlYzRhZWMw
ZmE5OTlhMzllODk1MTRhMTBkOTc1ZjBmYmQ2Li4zYTBhYmUzOGZiZjJjZjIyYWYzMDUzNTRkYjAx
MzlkYjc0NTJhNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDEtMjIgIE1h
cnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFic3RyYWN0
IHRoZSBsb2dpYyBmb3IgYXBwZW5kaW5nIGEgVUNoYXIzMiBvbnRvIFN0cmluZ0J1aWxkZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzUwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogY3NzL0NTU09NVXRp
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplQ2hhcmFjdGVyKTogVXNlIHRoZSBu
ZXcgU3RyaW5nQnVpbGRlciBhcHBlbmQuCisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVJZGVu
dGlmaWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVTdHJpbmcpOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxFbnRpdHlQYXJzZXI6OmNvbnN1bWVOYW1lZEVudGl0eSk6IERpdHRvLgor
ICAgICAgICAqIHN2Zy9TVkdGb250RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250
RGF0YTo6Y3JlYXRlU3RyaW5nV2l0aE1pcnJvcmVkQ2hhcmFjdGVycyk6IERpdHRvLgorICAgICAg
ICAqIHhtbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZSk6IERpdHRvLgorICAgICAgICAq
IHhtbC9wYXJzZXIvWE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VyLmNwcDogUmVtb3ZlIGFuIG9s
ZGVyIGhlbHBlcgorICAgICAgICBzdXBlcnNlZGVkIGJ5IFN0cmluZ0J1aWxkZXI6OmFwcGVuZC4K
KwogMjAxMy0wMS0yMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgV2ViS2l0IHNob3VsZCBzdXBwb3J0IGRlY29kaW5nIG11bHRpLWJ5dGUgZW50aXRp
ZXMgaW4gWE1MIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKaW5kZXggZTY1
ZjhmMzAxNTBmNjRmMTljY2JjNzUyMzcxYWQ3NDZhYmM4ZmNlYy4uOTI3OTE1MTI3YjJhNzRhOTM1
YWU1OWQwYjc4NTk3MTk2YjU3M2JjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgK
QEAgLTE0MSw2ICsxNDEsMTYgQEAgcHVibGljOgogICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8
TENoYXI+KGMpKTsKICAgICB9CiAKKyAgICB2b2lkIGFwcGVuZChVQ2hhcjMyIGMpCisgICAgewor
ICAgICAgICBpZiAoVV9JU19CTVAoYykpIHsKKyAgICAgICAgICAgIGFwcGVuZChzdGF0aWNfY2Fz
dDxVQ2hhcj4oYykpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFw
cGVuZChVMTZfTEVBRChjKSk7CisgICAgICAgIGFwcGVuZChVMTZfVFJBSUwoYykpOworICAgIH0K
KwogICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3VudD4KICAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgYXBwZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVy
c0NvdW50XSkgeyBhcHBlbmQoY2hhcmFjdGVycywgY2hhcmFjdGVyc0NvdW50IC0gMSk7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU09NVXRpbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU09NVXRpbHMuY3BwCmluZGV4IDMzNjQyZGI1OTAwOTg1ODI0MzQ5ZTQyOTk0
MmZjNDgzNjhhMDhlOGUuLmU3NjNiZmU2NzViOWQ5NjNhMjQ1MWIzZDQ3ZmUwNDNiYjFlNGQxOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NPTVV0aWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTT01VdGlscy5jcHAKQEAgLTM2LDIwICszNiwxMCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lkIGFwcGVuZENoYXJhY3RlcihVQ2hhcjMyIGMs
IFN0cmluZ0J1aWxkZXImIGFwcGVuZFRvKQotewotICAgIGlmIChVMTZfTEVOR1RIKGMpID09IDEp
Ci0gICAgICAgIGFwcGVuZFRvLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYykpOwotICAgIGVs
c2UgewotICAgICAgICBhcHBlbmRUby5hcHBlbmQoVTE2X0xFQUQoYykpOwotICAgICAgICBhcHBl
bmRUby5hcHBlbmQoVTE2X1RSQUlMKGMpKTsKLSAgICB9Ci19Ci0KIHZvaWQgc2VyaWFsaXplQ2hh
cmFjdGVyKFVDaGFyMzIgYywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCiB7CiAgICAgYXBwZW5k
VG8uYXBwZW5kKCdcXCcpOwotICAgIGFwcGVuZENoYXJhY3RlcihjLCBhcHBlbmRUbyk7CisgICAg
YXBwZW5kVG8uYXBwZW5kKGMpOwogfQogCiB2b2lkIHNlcmlhbGl6ZUNoYXJhY3RlckFzQ29kZVBv
aW50KFVDaGFyMzIgYywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCkBAIC04MSw3ICs3MSw3IEBA
IHZvaWQgc2VyaWFsaXplSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFN0cmlu
Z0J1aWxkZXImIGFwcGVuZFRvKQogICAgICAgICBlbHNlIGlmIChjID09IDB4MmQgJiYgaXNTZWNv
bmQgJiYgaXNGaXJzdENoYXJIeXBoZW4pCiAgICAgICAgICAgICBzZXJpYWxpemVDaGFyYWN0ZXIo
YywgYXBwZW5kVG8pOwogICAgICAgICBlbHNlIGlmICgweDgwIDw9IGMgfHwgYyA9PSAweDJkIHx8
IGMgPT0gMHg1ZiB8fCAoMHgzMCA8PSBjICYmIGMgPD0gMHgzOSkgfHwgKDB4NDEgPD0gYyAmJiBj
IDw9IDB4NWEpIHx8ICgweDYxIDw9IGMgJiYgYyA8PSAweDdhKSkKLSAgICAgICAgICAgIGFwcGVu
ZENoYXJhY3RlcihjLCBhcHBlbmRUbyk7CisgICAgICAgICAgICBhcHBlbmRUby5hcHBlbmQoYyk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNlcmlhbGl6ZUNoYXJhY3RlcihjLCBhcHBlbmRU
byk7CiAKQEAgLTExNSw3ICsxMDUsNyBAQCB2b2lkIHNlcmlhbGl6ZVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCiAgICAgICAgIGVsc2UgaWYgKGMg
PT0gMHgyMiB8fCBjID09IDB4NWMpCiAgICAgICAgICAgICBzZXJpYWxpemVDaGFyYWN0ZXIoYywg
YXBwZW5kVG8pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoYywg
YXBwZW5kVG8pOworICAgICAgICAgICAgYXBwZW5kVG8uYXBwZW5kKGMpOwogICAgIH0KIAogICAg
IGFwcGVuZFRvLmFwcGVuZCgnXCInKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTEVudGl0eVBhcnNlci5jcHAKaW5kZXggY2ZmMjJlMGMyNmQyNjRhN2VjNzkzMmRhYTdkZTA2
YmMzMTA5MDE0Ni4uNmVlZmFkNGI5OTRmYTgzOTZhMTIwMDdjYzU0ZTM5MmQzNDUwNDI5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5jcHAKQEAg
LTY4LDE4ICs2OCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KIAot
ICAgIGlubGluZSBzdGF0aWMgdm9pZCBjb252ZXJ0VG9VVEYxNihVQ2hhcjMyIHZhbHVlLCBTdHJp
bmdCdWlsZGVyJiBkZWNvZGVkRW50aXR5KQotICAgIHsKLSAgICAgICAgaWYgKFVfSVNfQk1QKHZh
bHVlKSkgewotICAgICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNoYXI+
KHZhbHVlKTsKLSAgICAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gdmFsdWUpOwotICAgICAg
ICAgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoY2hhcmFjdGVyKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChVMTZfTEVBRCh2YWx1
ZSkpOwotICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChVMTZfVFJBSUwodmFsdWUpKTsKLSAg
ICB9Ci0KICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYWNjZXB0TWFsZm9ybWVkKCkgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgaW5saW5lIHN0YXRpYyBib29sIGNvbnN1bWVOYW1lZEVudGl0eShTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZEVudGl0eSwgYm9vbCYg
bm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIsIFVD
aGFyJiBjYykKQEAgLTEyNSw5ICsxMTMsOSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChlbnRpdHlT
ZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPmxhc3RDaGFyYWN0ZXIoKSA9PSAnOycKICAgICAgICAg
ICAgIHx8ICFhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcgogICAgICAgICAgICAgfHwgIShpc0Fs
cGhhTnVtZXJpYyhjYykgfHwgY2MgPT0gJz0nKSkgewotICAgICAgICAgICAgY29udmVydFRvVVRG
MTYoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5maXJzdFZhbHVlLCBkZWNvZGVkRW50
aXR5KTsKKyAgICAgICAgICAgIGRlY29kZWRFbnRpdHkuYXBwZW5kKGVudGl0eVNlYXJjaC5tb3N0
UmVjZW50TWF0Y2goKS0+Zmlyc3RWYWx1ZSk7CiAgICAgICAgICAgICBpZiAoZW50aXR5U2VhcmNo
Lm1vc3RSZWNlbnRNYXRjaCgpLT5zZWNvbmRWYWx1ZSkKLSAgICAgICAgICAgICAgICBjb252ZXJ0
VG9VVEYxNihlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVlLCBkZWNv
ZGVkRW50aXR5KTsKKyAgICAgICAgICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChlbnRpdHlT
ZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVlKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBj
b25zdW1lZENoYXJhY3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKaW5kZXggODRj
YTU2OGI5NmQ0ZWZkNzI4YjkyMDBjYjY0MWMxYTgwZWVmYTRmMC4uOWE1NmU2Mjc2MmJiYmZjYTdk
MjdiNGNiMTY5OGYzYzJhYjZiMDQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuY3BwCkBA
IC0yOTEsMTggKzI5MSwxMSBAQCBTdHJpbmcgU1ZHRm9udERhdGE6OmNyZWF0ZVN0cmluZ1dpdGhN
aXJyb3JlZENoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsCiAgICAgU3RyaW5nQnVp
bGRlciBtaXJyb3JlZENoYXJhY3RlcnM7CiAgICAgbWlycm9yZWRDaGFyYWN0ZXJzLnJlc2VydmVD
YXBhY2l0eShsZW5ndGgpOwogCi0gICAgVUNoYXIzMiBjaGFyYWN0ZXI7CiAgICAgdW5zaWduZWQg
aSA9IDA7CiAgICAgd2hpbGUgKGkgPCBsZW5ndGgpIHsKKyAgICAgICAgVUNoYXIzMiBjaGFyYWN0
ZXI7CiAgICAgICAgIFUxNl9ORVhUKGNoYXJhY3RlcnMsIGksIGxlbmd0aCwgY2hhcmFjdGVyKTsK
LSAgICAgICAgY2hhcmFjdGVyID0gbWlycm9yZWRDaGFyKGNoYXJhY3Rlcik7Ci0KLSAgICAgICAg
aWYgKFUxNl9MRU5HVEgoY2hhcmFjdGVyKSA9PSAxKQotICAgICAgICAgICAgbWlycm9yZWRDaGFy
YWN0ZXJzLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oY2hhcmFjdGVyKSk7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgbWlycm9yZWRDaGFyYWN0ZXJzLmFwcGVuZChVMTZfTEVBRChjaGFy
YWN0ZXIpKTsKLSAgICAgICAgICAgIG1pcnJvcmVkQ2hhcmFjdGVycy5hcHBlbmQoVTE2X1RSQUlM
KGNoYXJhY3RlcikpOwotICAgICAgICB9CisgICAgICAgIG1pcnJvcmVkQ2hhcmFjdGVycy5hcHBl
bmQobWlycm9yZWRDaGFyKGNoYXJhY3RlcikpOwogICAgIH0KIAogICAgIHJldHVybiBtaXJyb3Jl
ZENoYXJhY3RlcnMudG9TdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKaW5kZXggMTU5Y2Y5
M2E2MmJkODQ1ODdiODU1OGM3MzBhMTcyYzVmMTRlYWMzZC4uNjI3ODBjN2RjZGY1YjVkYzM2MDdl
YTYwMmQ0NTE5ODU1YjEwM2QxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKQEAgLTEyOCwxMCAr
MTI4LDEwIEBAIGJvb2wgY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZShTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZENoCiAgICAgICAgICAgICAgICAgcmVzdWx0
ID0gcmVzdWx0ICogMTYgKyAxMCArIGNjIC0gJ0EnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2Mg
PT0gJzsnKSB7CiAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwot
ICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVu
Y3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAg
ICAgICAgICAgICBkZWNvZGVkQ2hhcmFjdGVyLmFwcGVuZChQYXJzZXJGdW5jdGlvbnM6OmxlZ2Fs
RW50aXR5Rm9yKHJlc3VsdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgfSBlbHNlIGlmIChQYXJzZXJGdW5jdGlvbnM6OmFjY2VwdE1hbGZvcm1lZCgpKSB7Ci0g
ICAgICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25zOjpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5j
dGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCksIGRlY29kZWRDaGFyYWN0ZXIpOworICAgICAg
ICAgICAgICAgIGRlY29kZWRDaGFyYWN0ZXIuYXBwZW5kKFBhcnNlckZ1bmN0aW9uczo6bGVnYWxF
bnRpdHlGb3IocmVzdWx0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNl
LCBjb25zdW1lZENoYXJhY3RlcnMpOwpAQCAtMTQ0LDEwICsxNDQsMTAgQEAgYm9vbCBjb25zdW1l
Q2hhcmFjdGVyUmVmZXJlbmNlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBTdHJpbmdCdWlsZGVy
JiBkZWNvZGVkQ2gKICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAxMCArIGNjIC0g
JzAnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJzsnKSB7CiAgICAgICAgICAgICAgICAg
c291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwotICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0
aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1
bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICBkZWNvZGVkQ2hhcmFjdGVy
LmFwcGVuZChQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChQYXJzZXJGdW5j
dGlvbnM6OmFjY2VwdE1hbGZvcm1lZCgpKSB7Ci0gICAgICAgICAgICAgICAgUGFyc2VyRnVuY3Rp
b25zOjpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3Vs
dCksIGRlY29kZWRDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyYWN0ZXIu
YXBwZW5kKFBhcnNlckZ1bmN0aW9uczo6bGVnYWxFbnRpdHlGb3IocmVzdWx0KSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJmNjE2OTM4
NGQ4ZjgxZDFhMzkwYmNkYTVmNDUxMDg0ZGNhODFmMzEuLmQ5NTk3MTdiMjEyOWY4YzA0MGM1MzM0
OTcxMzA1MGNkMTg0MTk1ODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMS0yMyAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWJzdHJhY3QgdGhlIGxvZ2ljIGZv
ciBhcHBlbmRpbmcgYSBVQ2hhcjMyIG9udG8gU3RyaW5nQnVpbGRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NTA1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBBZGRlZCBh
IHNpbXBsZSB0ZXN0IGZvciBhcHBlbmRpbmcgVUNoYXIzMi4KKwogMjAxMy0wMS0yMiAgRnJhbmsg
RmFyemFuICA8ZnJhbmtmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgQW5kcm9pZCBpbnN0
cnVtZW50YXRpb24gdGVzdHMgZnJvbSBDaHJvbWl1bUxpbnV4IHdhdGVyZmFsbApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCA4ZWU1YzZl
MDQwYmIxYjYwNTRmMjI1MWZlOTgxODNhMDIzMTdhYTllLi5iMzljNWQzZmZlNjIzNzIyNWZkZDQ5
MjAxNzQzY2M0MjE3OTIyMGU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdCdWlsZGVyLmNwcApAQCAtODUsNiArODUsMTYgQEAgVEVTVChTdHJpbmdCdWlsZGVy
VGVzdCwgQXBwZW5kKQogICAgIGJ1aWxkZXIyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOyAv
LyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nIHdpdGggYnVmZmVyIHByZXNlcnZlZC4KICAgICBidWls
ZGVyMi5hcHBlbmQoImFiY2QiKTsKICAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIu
Y2hhcmFjdGVycygpKTsKKworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjM7CisgICAgVUNoYXIz
MiBmcmFrdHVyQUNoYXIgPSAweDFENTA0OworICAgIGJ1aWxkZXIzLmFwcGVuZChmcmFrdHVyQUNo
YXIpOyAvLyBUaGUgZnJha3R1ciBBIGlzIG5vdCBpbiB0aGUgQk1QLCBzbyBpdCdzIHR3byBVVEYt
MTYgY29kZSB1bml0cyBsb25nLgorICAgIEFTU0VSVF9FUSgyLCBidWlsZGVyMy5sZW5ndGgoKSk7
CisgICAgYnVpbGRlcjMuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyMzI+KCdBJykpOworICAgIEFT
U0VSVF9FUSgzLCBidWlsZGVyMy5sZW5ndGgoKSk7CisgICAgQVNTRVJUX0VRKGJ1aWxkZXIzWzBd
LCBVMTZfTEVBRChmcmFrdHVyQUNoYXIpKTsKKyAgICBBU1NFUlRfRVEoYnVpbGRlcjNbMV0sIFUx
Nl9UUkFJTChmcmFrdHVyQUNoYXIpKTsKKyAgICBBU1NFUlRfRVEoYnVpbGRlcjNbMl0sICdBJyk7
CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184484</attachid>
            <date>2013-01-24 06:35:40 -0800</date>
            <delta_ts>2013-01-24 15:02:37 -0800</delta_ts>
            <desc>Patch for final review and landing</desc>
            <filename>bug-107505-20130124063232.patch</filename>
            <type>text/plain</type>
            <size>11455</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUzOTU1M2ZjZTZmODBjMWY5NTk2NTY0
MzQ4NTJjYTcyN2RmNTlkNWQuLmNiYTM0MWZjNTgzYWQ2MDQ5MjQ5MDY5ZGYxYjk0MzQxMTcwYjEx
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDEtMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFic3RyYWN0IHRoZSBsb2dpYyBmb3IgYXBw
ZW5kaW5nIGEgVUNoYXIzMiBvbnRvIFN0cmluZ0J1aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzUwNQorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmQpOiBBZGRlZCBhIG1ldGhvZCBmb3IgYXBw
ZW5kaW5nIGEgVUNoYXIzMiB0byBhIFN0cmluZ0J1aWxkZXIuCisKIDIwMTMtMDEtMjIgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBQcmV2ZW50IHJhY2UgY29u
ZGl0aW9uIGR1cmluZyBXb3JrZXIgc2h1dGRvd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZTNkNGFlYzRhZWMw
ZmE5OTlhMzllODk1MTRhMTBkOTc1ZjBmYmQ2Li4zYTBhYmUzOGZiZjJjZjIyYWYzMDUzNTRkYjAx
MzlkYjc0NTJhNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDEtMjIgIE1h
cnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFic3RyYWN0
IHRoZSBsb2dpYyBmb3IgYXBwZW5kaW5nIGEgVUNoYXIzMiBvbnRvIFN0cmluZ0J1aWxkZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzUwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogY3NzL0NTU09NVXRp
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplQ2hhcmFjdGVyKTogVXNlIHRoZSBu
ZXcgU3RyaW5nQnVpbGRlciBhcHBlbmQuCisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVJZGVu
dGlmaWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVTdHJpbmcpOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRW50aXR5UGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxFbnRpdHlQYXJzZXI6OmNvbnN1bWVOYW1lZEVudGl0eSk6IERpdHRvLgor
ICAgICAgICAqIHN2Zy9TVkdGb250RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250
RGF0YTo6Y3JlYXRlU3RyaW5nV2l0aE1pcnJvcmVkQ2hhcmFjdGVycyk6IERpdHRvLgorICAgICAg
ICAqIHhtbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZSk6IERpdHRvLgorICAgICAgICAq
IHhtbC9wYXJzZXIvWE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VyLmNwcDogUmVtb3ZlIGFuIG9s
ZGVyIGhlbHBlcgorICAgICAgICBzdXBlcnNlZGVkIGJ5IFN0cmluZ0J1aWxkZXI6OmFwcGVuZC4K
KwogMjAxMy0wMS0yMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgV2ViS2l0IHNob3VsZCBzdXBwb3J0IGRlY29kaW5nIG11bHRpLWJ5dGUgZW50aXRp
ZXMgaW4gWE1MIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKaW5kZXggZTY1
ZjhmMzAxNTBmNjRmMTljY2JjNzUyMzcxYWQ3NDZhYmM4ZmNlYy4uOTI3OTE1MTI3YjJhNzRhOTM1
YWU1OWQwYjc4NTk3MTk2YjU3M2JjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgK
QEAgLTE0MSw2ICsxNDEsMTYgQEAgcHVibGljOgogICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8
TENoYXI+KGMpKTsKICAgICB9CiAKKyAgICB2b2lkIGFwcGVuZChVQ2hhcjMyIGMpCisgICAgewor
ICAgICAgICBpZiAoVV9JU19CTVAoYykpIHsKKyAgICAgICAgICAgIGFwcGVuZChzdGF0aWNfY2Fz
dDxVQ2hhcj4oYykpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFw
cGVuZChVMTZfTEVBRChjKSk7CisgICAgICAgIGFwcGVuZChVMTZfVFJBSUwoYykpOworICAgIH0K
KwogICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3VudD4KICAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgYXBwZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVy
c0NvdW50XSkgeyBhcHBlbmQoY2hhcmFjdGVycywgY2hhcmFjdGVyc0NvdW50IC0gMSk7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU09NVXRpbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU09NVXRpbHMuY3BwCmluZGV4IDMzNjQyZGI1OTAwOTg1ODI0MzQ5ZTQyOTk0
MmZjNDgzNjhhMDhlOGUuLmU3NjNiZmU2NzViOWQ5NjNhMjQ1MWIzZDQ3ZmUwNDNiYjFlNGQxOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NPTVV0aWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTT01VdGlscy5jcHAKQEAgLTM2LDIwICszNiwxMCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lkIGFwcGVuZENoYXJhY3RlcihVQ2hhcjMyIGMs
IFN0cmluZ0J1aWxkZXImIGFwcGVuZFRvKQotewotICAgIGlmIChVMTZfTEVOR1RIKGMpID09IDEp
Ci0gICAgICAgIGFwcGVuZFRvLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYykpOwotICAgIGVs
c2UgewotICAgICAgICBhcHBlbmRUby5hcHBlbmQoVTE2X0xFQUQoYykpOwotICAgICAgICBhcHBl
bmRUby5hcHBlbmQoVTE2X1RSQUlMKGMpKTsKLSAgICB9Ci19Ci0KIHZvaWQgc2VyaWFsaXplQ2hh
cmFjdGVyKFVDaGFyMzIgYywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCiB7CiAgICAgYXBwZW5k
VG8uYXBwZW5kKCdcXCcpOwotICAgIGFwcGVuZENoYXJhY3RlcihjLCBhcHBlbmRUbyk7CisgICAg
YXBwZW5kVG8uYXBwZW5kKGMpOwogfQogCiB2b2lkIHNlcmlhbGl6ZUNoYXJhY3RlckFzQ29kZVBv
aW50KFVDaGFyMzIgYywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCkBAIC04MSw3ICs3MSw3IEBA
IHZvaWQgc2VyaWFsaXplSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIFN0cmlu
Z0J1aWxkZXImIGFwcGVuZFRvKQogICAgICAgICBlbHNlIGlmIChjID09IDB4MmQgJiYgaXNTZWNv
bmQgJiYgaXNGaXJzdENoYXJIeXBoZW4pCiAgICAgICAgICAgICBzZXJpYWxpemVDaGFyYWN0ZXIo
YywgYXBwZW5kVG8pOwogICAgICAgICBlbHNlIGlmICgweDgwIDw9IGMgfHwgYyA9PSAweDJkIHx8
IGMgPT0gMHg1ZiB8fCAoMHgzMCA8PSBjICYmIGMgPD0gMHgzOSkgfHwgKDB4NDEgPD0gYyAmJiBj
IDw9IDB4NWEpIHx8ICgweDYxIDw9IGMgJiYgYyA8PSAweDdhKSkKLSAgICAgICAgICAgIGFwcGVu
ZENoYXJhY3RlcihjLCBhcHBlbmRUbyk7CisgICAgICAgICAgICBhcHBlbmRUby5hcHBlbmQoYyk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNlcmlhbGl6ZUNoYXJhY3RlcihjLCBhcHBlbmRU
byk7CiAKQEAgLTExNSw3ICsxMDUsNyBAQCB2b2lkIHNlcmlhbGl6ZVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZywgU3RyaW5nQnVpbGRlciYgYXBwZW5kVG8pCiAgICAgICAgIGVsc2UgaWYgKGMg
PT0gMHgyMiB8fCBjID09IDB4NWMpCiAgICAgICAgICAgICBzZXJpYWxpemVDaGFyYWN0ZXIoYywg
YXBwZW5kVG8pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoYywg
YXBwZW5kVG8pOworICAgICAgICAgICAgYXBwZW5kVG8uYXBwZW5kKGMpOwogICAgIH0KIAogICAg
IGFwcGVuZFRvLmFwcGVuZCgnXCInKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTEVudGl0eVBhcnNlci5jcHAKaW5kZXggY2ZmMjJlMGMyNmQyNjRhN2VjNzkzMmRhYTdkZTA2
YmMzMTA5MDE0Ni4uNmVlZmFkNGI5OTRmYTgzOTZhMTIwMDdjYzU0ZTM5MmQzNDUwNDI5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVudGl0eVBhcnNlci5jcHAKQEAg
LTY4LDE4ICs2OCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KIAot
ICAgIGlubGluZSBzdGF0aWMgdm9pZCBjb252ZXJ0VG9VVEYxNihVQ2hhcjMyIHZhbHVlLCBTdHJp
bmdCdWlsZGVyJiBkZWNvZGVkRW50aXR5KQotICAgIHsKLSAgICAgICAgaWYgKFVfSVNfQk1QKHZh
bHVlKSkgewotICAgICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gc3RhdGljX2Nhc3Q8VUNoYXI+
KHZhbHVlKTsKLSAgICAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gdmFsdWUpOwotICAgICAg
ICAgICAgZGVjb2RlZEVudGl0eS5hcHBlbmQoY2hhcmFjdGVyKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChVMTZfTEVBRCh2YWx1
ZSkpOwotICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChVMTZfVFJBSUwodmFsdWUpKTsKLSAg
ICB9Ci0KICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYWNjZXB0TWFsZm9ybWVkKCkgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgaW5saW5lIHN0YXRpYyBib29sIGNvbnN1bWVOYW1lZEVudGl0eShTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZEVudGl0eSwgYm9vbCYg
bm90RW5vdWdoQ2hhcmFjdGVycywgVUNoYXIgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIsIFVD
aGFyJiBjYykKQEAgLTEyNSw5ICsxMTMsOSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChlbnRpdHlT
ZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPmxhc3RDaGFyYWN0ZXIoKSA9PSAnOycKICAgICAgICAg
ICAgIHx8ICFhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcgogICAgICAgICAgICAgfHwgIShpc0Fs
cGhhTnVtZXJpYyhjYykgfHwgY2MgPT0gJz0nKSkgewotICAgICAgICAgICAgY29udmVydFRvVVRG
MTYoZW50aXR5U2VhcmNoLm1vc3RSZWNlbnRNYXRjaCgpLT5maXJzdFZhbHVlLCBkZWNvZGVkRW50
aXR5KTsKKyAgICAgICAgICAgIGRlY29kZWRFbnRpdHkuYXBwZW5kKGVudGl0eVNlYXJjaC5tb3N0
UmVjZW50TWF0Y2goKS0+Zmlyc3RWYWx1ZSk7CiAgICAgICAgICAgICBpZiAoZW50aXR5U2VhcmNo
Lm1vc3RSZWNlbnRNYXRjaCgpLT5zZWNvbmRWYWx1ZSkKLSAgICAgICAgICAgICAgICBjb252ZXJ0
VG9VVEYxNihlbnRpdHlTZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVlLCBkZWNv
ZGVkRW50aXR5KTsKKyAgICAgICAgICAgICAgICBkZWNvZGVkRW50aXR5LmFwcGVuZChlbnRpdHlT
ZWFyY2gubW9zdFJlY2VudE1hdGNoKCktPnNlY29uZFZhbHVlKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBj
b25zdW1lZENoYXJhY3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKaW5kZXggODRj
YTU2OGI5NmQ0ZWZkNzI4YjkyMDBjYjY0MWMxYTgwZWVmYTRmMC4uOWE1NmU2Mjc2MmJiYmZjYTdk
MjdiNGNiMTY5OGYzYzJhYjZiMDQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuY3BwCkBA
IC0yOTEsMTggKzI5MSwxMSBAQCBTdHJpbmcgU1ZHRm9udERhdGE6OmNyZWF0ZVN0cmluZ1dpdGhN
aXJyb3JlZENoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsCiAgICAgU3RyaW5nQnVp
bGRlciBtaXJyb3JlZENoYXJhY3RlcnM7CiAgICAgbWlycm9yZWRDaGFyYWN0ZXJzLnJlc2VydmVD
YXBhY2l0eShsZW5ndGgpOwogCi0gICAgVUNoYXIzMiBjaGFyYWN0ZXI7CiAgICAgdW5zaWduZWQg
aSA9IDA7CiAgICAgd2hpbGUgKGkgPCBsZW5ndGgpIHsKKyAgICAgICAgVUNoYXIzMiBjaGFyYWN0
ZXI7CiAgICAgICAgIFUxNl9ORVhUKGNoYXJhY3RlcnMsIGksIGxlbmd0aCwgY2hhcmFjdGVyKTsK
LSAgICAgICAgY2hhcmFjdGVyID0gbWlycm9yZWRDaGFyKGNoYXJhY3Rlcik7Ci0KLSAgICAgICAg
aWYgKFUxNl9MRU5HVEgoY2hhcmFjdGVyKSA9PSAxKQotICAgICAgICAgICAgbWlycm9yZWRDaGFy
YWN0ZXJzLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oY2hhcmFjdGVyKSk7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgbWlycm9yZWRDaGFyYWN0ZXJzLmFwcGVuZChVMTZfTEVBRChjaGFy
YWN0ZXIpKTsKLSAgICAgICAgICAgIG1pcnJvcmVkQ2hhcmFjdGVycy5hcHBlbmQoVTE2X1RSQUlM
KGNoYXJhY3RlcikpOwotICAgICAgICB9CisgICAgICAgIG1pcnJvcmVkQ2hhcmFjdGVycy5hcHBl
bmQobWlycm9yZWRDaGFyKGNoYXJhY3RlcikpOwogICAgIH0KIAogICAgIHJldHVybiBtaXJyb3Jl
ZENoYXJhY3RlcnMudG9TdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKaW5kZXggMTU5Y2Y5
M2E2MmJkODQ1ODdiODU1OGM3MzBhMTcyYzVmMTRlYWMzZC4uNjI3ODBjN2RjZGY1YjVkYzM2MDdl
YTYwMmQ0NTE5ODU1YjEwM2QxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKQEAgLTEyOCwxMCAr
MTI4LDEwIEBAIGJvb2wgY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZShTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgZGVjb2RlZENoCiAgICAgICAgICAgICAgICAgcmVzdWx0
ID0gcmVzdWx0ICogMTYgKyAxMCArIGNjIC0gJ0EnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2Mg
PT0gJzsnKSB7CiAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwot
ICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVu
Y3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAg
ICAgICAgICAgICBkZWNvZGVkQ2hhcmFjdGVyLmFwcGVuZChQYXJzZXJGdW5jdGlvbnM6OmxlZ2Fs
RW50aXR5Rm9yKHJlc3VsdCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgfSBlbHNlIGlmIChQYXJzZXJGdW5jdGlvbnM6OmFjY2VwdE1hbGZvcm1lZCgpKSB7Ci0g
ICAgICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25zOjpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5j
dGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCksIGRlY29kZWRDaGFyYWN0ZXIpOworICAgICAg
ICAgICAgICAgIGRlY29kZWRDaGFyYWN0ZXIuYXBwZW5kKFBhcnNlckZ1bmN0aW9uczo6bGVnYWxF
bnRpdHlGb3IocmVzdWx0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNl
LCBjb25zdW1lZENoYXJhY3RlcnMpOwpAQCAtMTQ0LDEwICsxNDQsMTAgQEAgYm9vbCBjb25zdW1l
Q2hhcmFjdGVyUmVmZXJlbmNlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBTdHJpbmdCdWlsZGVy
JiBkZWNvZGVkQ2gKICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAxMCArIGNjIC0g
JzAnOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJzsnKSB7CiAgICAgICAgICAgICAgICAg
c291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOwotICAgICAgICAgICAgICAgIFBhcnNlckZ1bmN0
aW9uczo6Y29udmVydFRvVVRGMTYoUGFyc2VyRnVuY3Rpb25zOjpsZWdhbEVudGl0eUZvcihyZXN1
bHQpLCBkZWNvZGVkQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICBkZWNvZGVkQ2hhcmFjdGVy
LmFwcGVuZChQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3VsdCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChQYXJzZXJGdW5j
dGlvbnM6OmFjY2VwdE1hbGZvcm1lZCgpKSB7Ci0gICAgICAgICAgICAgICAgUGFyc2VyRnVuY3Rp
b25zOjpjb252ZXJ0VG9VVEYxNihQYXJzZXJGdW5jdGlvbnM6OmxlZ2FsRW50aXR5Rm9yKHJlc3Vs
dCksIGRlY29kZWRDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyYWN0ZXIu
YXBwZW5kKFBhcnNlckZ1bmN0aW9uczo6bGVnYWxFbnRpdHlGb3IocmVzdWx0KSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJmNjE2OTM4
NGQ4ZjgxZDFhMzkwYmNkYTVmNDUxMDg0ZGNhODFmMzEuLmQ5NTk3MTdiMjEyOWY4YzA0MGM1MzM0
OTcxMzA1MGNkMTg0MTk1ODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMS0yMyAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWJzdHJhY3QgdGhlIGxvZ2ljIGZv
ciBhcHBlbmRpbmcgYSBVQ2hhcjMyIG9udG8gU3RyaW5nQnVpbGRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NTA1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBBZGRlZCBh
IHNpbXBsZSB0ZXN0IGZvciBhcHBlbmRpbmcgVUNoYXIzMi4KKwogMjAxMy0wMS0yMiAgRnJhbmsg
RmFyemFuICA8ZnJhbmtmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgQW5kcm9pZCBpbnN0
cnVtZW50YXRpb24gdGVzdHMgZnJvbSBDaHJvbWl1bUxpbnV4IHdhdGVyZmFsbApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCA4ZWU1YzZl
MDQwYmIxYjYwNTRmMjI1MWZlOTgxODNhMDIzMTdhYTllLi4wM2JlNzU5MjVmMjRlNGE0YTI2Mzk4
Mjk0NzI5NmIyNmU4N2RjZWNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdCdWlsZGVyLmNwcApAQCAtMzMsMTEgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKIAotdm9pZCBleHBlY3RCdWlsZGVyQ29udGVudChjb25zdCBjaGFyKiBleHBl
Y3RlZCwgY29uc3QgU3RyaW5nQnVpbGRlciYgYnVpbGRlcikKK3N0YXRpYyB2b2lkIGV4cGVjdEJ1
aWxkZXJDb250ZW50KGNvbnN0IFN0cmluZyYgZXhwZWN0ZWQsIGNvbnN0IFN0cmluZ0J1aWxkZXIm
IGJ1aWxkZXIpCiB7CiAgICAgLy8gTm90IHVzaW5nIGJ1aWxkZXIudG9TdHJpbmcoKSBvciBidWls
ZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGJlY2F1c2UgdGhleSBhbGwKICAgICAvLyBj
aGFuZ2UgaW50ZXJuYWwgc3RhdGUgb2YgYnVpbGRlci4KLSAgICBFWFBFQ1RfRVEoU3RyaW5nKGV4
cGVjdGVkKSwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVycygpLCBidWlsZGVyLmxlbmd0aCgpKSk7
CisgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1
aWxkZXIubGVuZ3RoKCkpKTsKIH0KIAogdm9pZCBleHBlY3RFbXB0eShjb25zdCBTdHJpbmdCdWls
ZGVyJiBidWlsZGVyKQpAQCAtODUsNiArODUsMTYgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
QXBwZW5kKQogICAgIGJ1aWxkZXIyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOyAvLyBUZXN0
IGFmdGVyIHJlaWZ5U3RyaW5nIHdpdGggYnVmZmVyIHByZXNlcnZlZC4KICAgICBidWlsZGVyMi5h
cHBlbmQoImFiY2QiKTsKICAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFj
dGVycygpKTsKKworICAgIC8vIFRlc3QgYXBwZW5kaW5nIFVDaGFyMzIgY2hhcmFjdGVycyB0byBT
dHJpbmdCdWlsZGVyLgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlckZvclVDaGFyMzJBcHBlbmQ7
CisgICAgVUNoYXIzMiBmcmFrdHVyQUNoYXIgPSAweDFENTA0OworICAgIGJ1aWxkZXJGb3JVQ2hh
cjMyQXBwZW5kLmFwcGVuZChmcmFrdHVyQUNoYXIpOyAvLyBUaGUgZnJha3R1ciBBIGlzIG5vdCBp
biB0aGUgQk1QLCBzbyBpdCdzIHR3byBVVEYtMTYgY29kZSB1bml0cyBsb25nLgorICAgIEFTU0VS
VF9FUSgyVSwgYnVpbGRlckZvclVDaGFyMzJBcHBlbmQubGVuZ3RoKCkpOworICAgIGJ1aWxkZXJG
b3JVQ2hhcjMyQXBwZW5kLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcjMyPignQScpKTsKKyAgICBB
U1NFUlRfRVEoM1UsIGJ1aWxkZXJGb3JVQ2hhcjMyQXBwZW5kLmxlbmd0aCgpKTsKKyAgICBjb25z
dCBVQ2hhciByZXN1bHRBcnJheVtdID0geyBVMTZfTEVBRChmcmFrdHVyQUNoYXIpLCBVMTZfVFJB
SUwoZnJha3R1ckFDaGFyKSwgJ0EnIH07CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5n
KHJlc3VsdEFycmF5LCBXVEZfQVJSQVlfTEVOR1RIKHJlc3VsdEFycmF5KSksIGJ1aWxkZXJGb3JV
Q2hhcjMyQXBwZW5kKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>