<?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>75293</bug_id>
          
          <creation_ts>2011-12-27 23:51:01 -0800</creation_ts>
          <short_desc>Use IDL overloads in AudioContext.idl for createBuffer in the case of V8 binding</short_desc>
          <delta_ts>2011-12-29 18:29:07 -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 Audio</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>0</everconfirmed>
          <reporter name="Raymond">rgbbones</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>crogers</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527570</commentid>
    <comment_count>0</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-27 23:51:01 -0800</bug_when>
    <thetext>Use IDL overloads in AudioContext.idl for createBuffer in the case of V8 binding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527586</commentid>
    <comment_count>1</comment_count>
      <attachid>120642</attachid>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-28 01:22:29 -0800</bug_when>
    <thetext>Created attachment 120642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527715</commentid>
    <comment_count>2</comment_count>
      <attachid>120642</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-28 11:20:33 -0800</bug_when>
    <thetext>Comment on attachment 120642
Patch

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

&gt; Source/WebCore/bindings/js/JSAudioContextCustom.cpp:128
&gt; +                setDOMException(exec, ec);
&gt;                  return throwError(exec, createSyntaxError(exec, &quot;Error decoding audio file data&quot;));

Aren&apos;t these redundant?

&gt; Source/WebCore/webaudio/AudioContext.cpp:330
&gt; +fail:
&gt; +    ec = SYNTAX_ERR;
&gt; +    return 0;

I would have just repeated these two lines rather than use goto.

&gt; Source/WebCore/webaudio/AudioContext.idl:54
&gt; +        // FIXME: Remove &apos;else&apos; once JSC supports overloads too.

JSC doesn&apos;t support overloads?  I thought it did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527819</commentid>
    <comment_count>3</comment_count>
      <attachid>120713</attachid>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-28 19:17:22 -0800</bug_when>
    <thetext>Created attachment 120713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527820</commentid>
    <comment_count>4</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-28 19:21:59 -0800</bug_when>
    <thetext>(In reply to comment #2)

Thanks for your review , patch updated according to your comments.

&gt; 
&gt; &gt; Source/WebCore/webaudio/AudioContext.idl:54
&gt; &gt; +        // FIXME: Remove &apos;else&apos; once JSC supports overloads too.
&gt; 
&gt; JSC doesn&apos;t support overloads?  I thought it did.

Ok. I am following other part of code in canvasRenderContext2D, hmm, so that part of code also need to be fixed. Thx.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527835</commentid>
    <comment_count>5</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-28 20:08:55 -0800</bug_when>
    <thetext>oops, need to update the commit log too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527838</commentid>
    <comment_count>6</comment_count>
      <attachid>120716</attachid>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-28 20:36:30 -0800</bug_when>
    <thetext>Created attachment 120716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527841</commentid>
    <comment_count>7</comment_count>
      <attachid>120718</attachid>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-28 20:41:02 -0800</bug_when>
    <thetext>Created attachment 120718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527846</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-28 21:28:23 -0800</bug_when>
    <thetext>&gt; Ok. I am following other part of code in canvasRenderContext2D, hmm, so that part of code also need to be fixed. Thx.

Would you be willing to fix those cases as well (in a follow-up bug)?  That way folks in the future won&apos;t run into this same problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528046</commentid>
    <comment_count>9</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2011-12-29 16:58:31 -0800</bug_when>
    <thetext>(In reply to comment #8)

&gt; 
&gt; Would you be willing to fix those cases as well (in a follow-up bug)?  That way folks in the future won&apos;t run into this same problem.

OK, sure. Will try to scan through the code to find is there any more remains.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528057</commentid>
    <comment_count>10</comment_count>
      <attachid>120718</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-29 18:29:00 -0800</bug_when>
    <thetext>Comment on attachment 120718
Patch

Clearing flags on attachment: 120718

Committed r103832: &lt;http://trac.webkit.org/changeset/103832&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528058</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-29 18:29:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120642</attachid>
            <date>2011-12-28 01:22:29 -0800</date>
            <delta_ts>2011-12-28 20:02:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75293-20111228172616.patch</filename>
            <type>text/plain</type>
            <size>9927</size>
            <attacher name="Raymond">rgbbones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U4MGE5MGE2ZDNkOTRj
OWY5ZWNiOWI3NWZlZmQ4OThjNjZiNTc1My4uMTJkNmYzZmQ1NWUxNDFjYjc5NmRhNjk5Y2I4M2Qw
NWQ3NjU1YmE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTI3ICBSYXlt
b25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4KKworICAgICAgICBVc2UgSURMIG92ZXJs
b2FkcyBpbiBBdWRpb0NvbnRleHQuaWRsIGZvciBjcmVhdGVCdWZmZXIgaW4gdGhlIGNhc2Ugb2Yg
VjggYmluZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzUyOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgZnVuY3Rpb25hbGl0eSBzbyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0F1
ZGlvQ29udGV4dDo6Y3JlYXRlQnVmZmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhBdWRpb0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNyZWF0ZUJ1ZmZlcik6Cisg
ICAgICAgICogd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgICogd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmlkbDoKKwogMjAxMS0xMi0yNyAgQW5hbnRhbmFyYXlhbmFuIEcgSXllbmdhciAg
PGFuYW50YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ3Jhc2ggaW4gdGhlIFdlYktpdCBhY2Nl
c3NpYmlsaXR5IGNvZGUgd2hpbGUgYXR0ZW1wdGluZyB0byByZXRyaWV2ZSB0aGUgdGl0bGUgVUkg
ZWxlbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9D
b250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250
ZXh0Q3VzdG9tLmNwcAppbmRleCBlMmMyNjI3NTNhYTFkYTU1NWY4ZTdjMzQ1MzRlNDU5MDc2OGIy
MDdjLi40OGJjYmYwMDQzNGRhMjIzZjlhMDE3ZTdiYzIwM2YwMzNjNWI3M2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCkBA
IC0xMTIsNiArMTEyLDggQEAgSlNWYWx1ZSBKU0F1ZGlvQ29udGV4dDo6Y3JlYXRlQnVmZmVyKEV4
ZWNTdGF0ZSogZXhlYykKICAgICBBdWRpb0NvbnRleHQqIGF1ZGlvQ29udGV4dCA9IHN0YXRpY19j
YXN0PEF1ZGlvQ29udGV4dCo+KGltcGwoKSk7CiAgICAgQVNTRVJUKGF1ZGlvQ29udGV4dCk7CiAK
KyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKwogICAgIC8vIEF1ZGlvQnVmZmVyIGNyZWF0ZUJ1
ZmZlcihpbiBBcnJheUJ1ZmZlciBidWZmZXIsIGluIGJvb2xlYW4gbWl4VG9Nb25vKTsKICAgICBK
U1ZhbHVlIHZhbCA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAgIGlmICh2YWwuaW5oZXJpdHMoJkpT
QXJyYXlCdWZmZXI6OnNfaW5mbykpIHsKQEAgLTEyMCw5ICsxMjIsMTEgQEAgSlNWYWx1ZSBKU0F1
ZGlvQ29udGV4dDo6Y3JlYXRlQnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKGFy
cmF5QnVmZmVyKSB7CiAgICAgICAgICAgICBib29sIG1peFRvTW9ubyA9IGV4ZWMtPmFyZ3VtZW50
KDEpLnRvQm9vbGVhbihleGVjKTsKIAotICAgICAgICAgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBh
dWRpb0J1ZmZlciA9IGF1ZGlvQ29udGV4dC0+Y3JlYXRlQnVmZmVyKGFycmF5QnVmZmVyLCBtaXhU
b01vbm8pOwotICAgICAgICAgICAgaWYgKCFhdWRpb0J1ZmZlci5nZXQoKSkKKyAgICAgICAgICAg
IFJlZlB0cjxBdWRpb0J1ZmZlcj4gYXVkaW9CdWZmZXIgPSBhdWRpb0NvbnRleHQtPmNyZWF0ZUJ1
ZmZlcihhcnJheUJ1ZmZlciwgbWl4VG9Nb25vLCBlYyk7CisgICAgICAgICAgICBpZiAoZWMpIHsK
KyAgICAgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJFcnJv
ciBkZWNvZGluZyBhdWRpbyBmaWxlIGRhdGEiKSk7CisgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBhdWRpb0J1ZmZlci5nZXQoKSk7
CiAgICAgICAgIH0KQEAgLTE0Nyw5ICsxNTEsMTEgQEAgSlNWYWx1ZSBKU0F1ZGlvQ29udGV4dDo6
Y3JlYXRlQnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoc2FtcGxlUmF0ZSA8PSAwKQog
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAi
SW52YWxpZCBzYW1wbGUgcmF0ZSIpKTsKIAotICAgIFJlZlB0cjxBdWRpb0J1ZmZlcj4gYXVkaW9C
dWZmZXIgPSBhdWRpb0NvbnRleHQtPmNyZWF0ZUJ1ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1i
ZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7Ci0gICAgaWYgKCFhdWRpb0J1ZmZlci5nZXQoKSkKKyAg
ICBSZWZQdHI8QXVkaW9CdWZmZXI+IGF1ZGlvQnVmZmVyID0gYXVkaW9Db250ZXh0LT5jcmVhdGVC
dWZmZXIobnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUsIGVjKTsK
KyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkVycm9y
IGNyZWF0aW5nIEF1ZGlvQnVmZmVyIikpOworICAgIH0KIAogICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCgpLCBhdWRpb0J1ZmZlci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNw
cAppbmRleCA1OTUwODBlMmY5NjBlZDgyMWZjMjk4OGUxMDEwNTgwZWEwMmY1M2U0Li40OWFmOTMx
ZDU2NjA2ZTc1ZWNhZmViYWNlOGYwOWQ3MTNhNzdmZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAK
QEAgLTEwMCw1OCArMTAwLDYgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXVkaW9Db250ZXh0
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGEKICAgICByZXR1cm4g
YXJncy5Ib2xkZXIoKTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXVkaW9Db250ZXh0
OjpjcmVhdGVCdWZmZXJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBl
bm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOwotCi0gICAgQXVkaW9Db250
ZXh0KiBhdWRpb0NvbnRleHQgPSB0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBBU1NFUlQo
YXVkaW9Db250ZXh0KTsKLQotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzBd
OwotICAgIAotICAgIC8vIEF1ZGlvQnVmZmVyIGNyZWF0ZUJ1ZmZlcihpbiBBcnJheUJ1ZmZlciBi
dWZmZXIsIGluIGJvb2xlYW4gbWl4VG9Nb25vKTsKLSAgICBpZiAoVjhBcnJheUJ1ZmZlcjo6SGFz
SW5zdGFuY2UoYXJnKSkgewotICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCA9
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnKTsKLSAgICAgICAgQXJyYXlCdWZmZXIq
IGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRpdmUob2JqZWN0KTsKLSAgICAgICAg
QVNTRVJUKGFycmF5QnVmZmVyKTsKLQotICAgICAgICBpZiAoYXJyYXlCdWZmZXIpIHsKLSAgICAg
ICAgICAgIGJvb2wgbWl4VG9Nb25vID0gYXJnc1sxXS0+VG9Cb29sZWFuKCktPlZhbHVlKCk7Ci0K
LSAgICAgICAgICAgIFJlZlB0cjxBdWRpb0J1ZmZlcj4gYXVkaW9CdWZmZXIgPSBhdWRpb0NvbnRl
eHQtPmNyZWF0ZUJ1ZmZlcihhcnJheUJ1ZmZlciwgbWl4VG9Nb25vKTsKLSAgICAgICAgICAgIGlm
ICghYXVkaW9CdWZmZXIuZ2V0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
IkVycm9yIGRlY29kaW5nIGF1ZGlvIGZpbGUgZGF0YSIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsK
LQotICAgICAgICAgICAgcmV0dXJuIHRvVjgoYXVkaW9CdWZmZXIuZ2V0KCkpOwotICAgICAgICB9
Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotICAgIH0KLSAgICAK
LSAgICAvLyBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyBudW1iZXJP
ZkNoYW5uZWxzLCBpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mRnJhbWVzLCBpbiBmbG9hdCBzYW1w
bGVSYXRlKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCi0gICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKLQot
ICAgIGJvb2wgb2sgPSBmYWxzZTsKLSAgICAKLSAgICBpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMg
PSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICBpZiAoIW9rIHx8IG51bWJlck9mQ2hhbm5lbHMg
PD0gMCB8fCBudW1iZXJPZkNoYW5uZWxzID4gMTApCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KCJJbnZhbGlkIG51bWJlciBvZiBjaGFubmVscyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKLSAg
ICAKLSAgICBpbnQzMl90IG51bWJlck9mRnJhbWVzID0gdG9JbnQzMihhcmdzWzFdLCBvayk7Ci0g
ICAgaWYgKCFvayB8fCBudW1iZXJPZkZyYW1lcyA8PSAwKQotICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiSW52YWxpZCBudW1iZXIgb2YgZnJhbWVzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOwot
ICAgIAotICAgIGZsb2F0IHNhbXBsZVJhdGUgPSB0b0Zsb2F0KGFyZ3NbMl0pOwotICAgIAotICAg
IFJlZlB0cjxBdWRpb0J1ZmZlcj4gYXVkaW9CdWZmZXIgPSBhdWRpb0NvbnRleHQtPmNyZWF0ZUJ1
ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7Ci0gICAg
aWYgKCFhdWRpb0J1ZmZlci5nZXQoKSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkVycm9y
IGNyZWF0aW5nIEF1ZGlvQnVmZmVyIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOwotCi0gICAgcmV0
dXJuIHRvVjgoYXVkaW9CdWZmZXIuZ2V0KCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAKaW5kZXggNDg4ZDBhYTMyNWY4MzJiZjRlZDhjMzgyNGU3MDRjMjM1NTNi
MDI5My4uZjlkOGY3YmI2ODllYjU1YzkyNGU0ODdlMjM5ZTU0NzhmYzVlMzZjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC0zMDAsMTggKzMwMCwzNCBAQCB2
b2lkIEF1ZGlvQ29udGV4dDo6cmVmQnVmZmVyKFBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IGJ1ZmZl
cikKICAgICBtX2FsbG9jYXRlZEJ1ZmZlcnMuYXBwZW5kKGJ1ZmZlcik7CiB9CiAKLVBhc3NSZWZQ
dHI8QXVkaW9CdWZmZXI+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlQnVmZmVyKHVuc2lnbmVkIG51bWJl
ck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSkKK1Bh
c3NSZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlQnVmZmVyKHVuc2lnbmVk
IG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIEF1ZGlvQnVmZmVyOjpjcmVhdGUo
bnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIFJlZlB0
cjxBdWRpb0J1ZmZlcj4gYXVkaW9CdWZmZXIgPSBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG51bWJlck9m
Q2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICBpZiAoIWF1ZGlvQnVm
ZmVyLmdldCgpKSB7CisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQorCisgICAgcmV0dXJuIGF1ZGlvQnVmZmVyOwogfQogCi1QYXNzUmVmUHRyPEF1ZGlv
QnVmZmVyPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUJ1ZmZlcihBcnJheUJ1ZmZlciogYXJyYXlCdWZm
ZXIsIGJvb2wgbWl4VG9Nb25vKQorUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0
OjpjcmVhdGVCdWZmZXIoQXJyYXlCdWZmZXIqIGFycmF5QnVmZmVyLCBib29sIG1peFRvTW9ubywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKGFycmF5QnVmZmVyKTsKKyAgICBSZWZQ
dHI8QXVkaW9CdWZmZXI+IGF1ZGlvQnVmZmVyOworCiAgICAgaWYgKCFhcnJheUJ1ZmZlcikKLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgCi0gICAgcmV0dXJuIEF1ZGlvQnVmZmVyOjpjcmVhdGVGcm9t
QXVkaW9GaWxlRGF0YShhcnJheUJ1ZmZlci0+ZGF0YSgpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0
aCgpLCBtaXhUb01vbm8sIHNhbXBsZVJhdGUoKSk7CisgICAgICAgIGdvdG8gZmFpbDsKKworICAg
IGF1ZGlvQnVmZmVyID0gQXVkaW9CdWZmZXI6OmNyZWF0ZUZyb21BdWRpb0ZpbGVEYXRhKGFycmF5
QnVmZmVyLT5kYXRhKCksIGFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCksIG1peFRvTW9ubywgc2Ft
cGxlUmF0ZSgpKTsKKyAgICBpZiAoIWF1ZGlvQnVmZmVyLmdldCgpKQorICAgICAgICBnb3RvIGZh
aWw7CisKKyAgICByZXR1cm4gYXVkaW9CdWZmZXI7CisKK2ZhaWw6CisgICAgZWMgPSBTWU5UQVhf
RVJSOworICAgIHJldHVybiAwOwogfQogCiB2b2lkIEF1ZGlvQ29udGV4dDo6ZGVjb2RlQXVkaW9E
YXRhKEFycmF5QnVmZmVyKiBhdWRpb0RhdGEsIFBhc3NSZWZQdHI8QXVkaW9CdWZmZXJDYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyQ2FsbGJhY2s+IGVycm9y
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaAppbmRleCAyZGQwZTkyZTg3ODYyYzQ1NjNlNTc2NzliMjViOTBlNGYxMWQxNGI1Li5j
NGVlYzA4YzA0ZGE3NmIwM2U1NTAxMmMyODg3Y2RmYTNjMTRhZDRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtOTYsOCArOTYsOCBAQCBwdWJsaWM6CiAgICAgZG91
YmxlIGN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUtPmN1cnJlbnRUaW1l
KCk7IH0KICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUt
PnNhbXBsZVJhdGUoKTsgfQogCi0gICAgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlQnVm
ZmVyKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxv
YXQgc2FtcGxlUmF0ZSk7Ci0gICAgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlQnVmZmVy
KEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciwgYm9vbCBtaXhUb01vbm8pOworICAgIFBhc3NSZWZQ
dHI8QXVkaW9CdWZmZXI+IGNyZWF0ZUJ1ZmZlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBz
aXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGVCdWZmZXIoQXJyYXlCdWZmZXIqLCBi
b29sIG1peFRvTW9ubywgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgLy8gQXN5bmNocm9ub3VzIGF1
ZGlvIGZpbGUgZGF0YSBkZWNvZGluZy4KICAgICB2b2lkIGRlY29kZUF1ZGlvRGF0YShBcnJheUJ1
ZmZlciosIFBhc3NSZWZQdHI8QXVkaW9CdWZmZXJDYWxsYmFjaz4sIFBhc3NSZWZQdHI8QXVkaW9C
dWZmZXJDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaWRsCmluZGV4IDkyZDFhNzgyN2Y3ZDA3NDZiNDIxYTQyZDJmZjdkMTdi
MDlmZGJiZDEuLjYxMTA3YWMxZDc2YzgxZDdkZTZlNGY4YTEyMTE3NmM3NTU5YzA5N2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbApAQCAtNDUsMTEgKzQ1LDE2IEBA
IG1vZHVsZSB3ZWJhdWRpbyB7CiAgICAgICAgIC8vIEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRv
IHRoaXMgbGlzdGVuZXIuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0xpc3RlbmVy
IGxpc3RlbmVyOwogCi0gICAgICAgIC8vIEZJWE1FOiBTd2l0Y2ggZnJvbSBbQ3VzdG9tXSB0byB1
c2luZyBJREwgb3ZlcmxvYWRzLgotICAgICAgICAvLyBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIo
aW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkNoYW5uZWxzLCBpbiB1bnNpZ25lZCBsb25nIG51bWJl
ck9mRnJhbWVzLCBpbiBmbG9hdCBzYW1wbGVSYXRlKTsKLSAgICAgICAgLy8gQXVkaW9CdWZmZXIg
Y3JlYXRlQnVmZmVyKGluIEFycmF5QnVmZmVyIGJ1ZmZlciwgaW4gYm9vbGVhbiBtaXhUb01vbm8p
OworI2lmIGRlZmluZWQoVjhfQklORElORykgJiYgVjhfQklORElORworICAgICAgICBBdWRpb0J1
ZmZlciBjcmVhdGVCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkNoYW5uZWxzLCBpbiB1
bnNpZ25lZCBsb25nIG51bWJlck9mRnJhbWVzLCBpbiBmbG9hdCBzYW1wbGVSYXRlKQorICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIEF1ZGlvQnVmZmVyIGNyZWF0ZUJ1
ZmZlcihpbiBBcnJheUJ1ZmZlciBidWZmZXIsIGluIGJvb2xlYW4gbWl4VG9Nb25vKQorICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZWxzZQorICAgICAgICAvLyBGSVhNRTogUmVt
b3ZlICdlbHNlJyBvbmNlIEpTQyBzdXBwb3J0cyBvdmVybG9hZHMgdG9vLgogICAgICAgICBbQ3Vz
dG9tXSBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisjZW5kaWYKIAogICAgICAgICAvLyBBc3luY2hyb25vdXMgYXVkaW8gZmlsZSBk
YXRhIGRlY29kaW5nLgogICAgICAgICB2b2lkIGRlY29kZUF1ZGlvRGF0YShpbiBBcnJheUJ1ZmZl
ciBhdWRpb0RhdGEsIGluIFtDYWxsYmFja10gQXVkaW9CdWZmZXJDYWxsYmFjayBzdWNjZXNzQ2Fs
bGJhY2ssIGluIFtPcHRpb25hbCwgQ2FsbGJhY2tdIEF1ZGlvQnVmZmVyQ2FsbGJhY2sgZXJyb3JD
YWxsYmFjaykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120713</attachid>
            <date>2011-12-28 19:17:22 -0800</date>
            <delta_ts>2011-12-28 20:04:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75293-20111229112116.patch</filename>
            <type>text/plain</type>
            <size>10188</size>
            <attacher name="Raymond">rgbbones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDZjYjFjMzNkNWY2MDIx
NWMzNDQxZDc5OTM4MGQ4MzkzNjRkMTY4Yy4uNDgwZWIyNjU5NmQ0NjRkODg2NzgxNDQ5OTQyZjVm
Y2Q2MTE1NzMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTI4ICBSYXlt
b25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4KKworICAgICAgICBVc2UgSURMIG92ZXJs
b2FkcyBpbiBBdWRpb0NvbnRleHQuaWRsIGZvciBjcmVhdGVCdWZmZXIgaW4gdGhlIGNhc2Ugb2Yg
VjggYmluZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzUyOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgcmVxdWlyZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlv
Q29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9D
b250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIpOgorICAgICAgICAq
IHdlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5pZGw6CisKIDIwMTEtMTItMjggIENoYW5nU2VvayBPaCAgPHNoaXZhbWlkb3dAZ21haWwuY29t
PgogCiAgICAgICAgIFtHVEtdIEZpeCBjb21waWxhdGlvbiBpc3N1ZSB3aGVuIHNlbGVjdGluZyBv
cGVuZ2wgZm9yIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggZTJjMjYyNzUzYWEx
ZGE1NTVmOGU3YzM0NTM0ZTQ1OTA3NjhiMjA3Yy4uZjhmYWI2MjY2YzMxZDBkZDJlNjU0NDI4MDQz
NjM2ZTg2NDJjZjk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
dWRpb0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcApAQCAtMTA0LDU2ICsxMDQsNiBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTQXVkaW9Db250ZXh0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTQXVk
aW9Db250ZXh0KAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVj
LCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgYXVkaW9Db250ZXh0LmdldCgpKSkpOwog
fQogCi1KU1ZhbHVlIEpTQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIoRXhlY1N0YXRlKiBleGVj
KQotewotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1
bWVudHMiKSk7Ci0KLSAgICBBdWRpb0NvbnRleHQqIGF1ZGlvQ29udGV4dCA9IHN0YXRpY19jYXN0
PEF1ZGlvQ29udGV4dCo+KGltcGwoKSk7Ci0gICAgQVNTRVJUKGF1ZGlvQ29udGV4dCk7Ci0KLSAg
ICAvLyBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoaW4gQXJyYXlCdWZmZXIgYnVmZmVyLCBpbiBi
b29sZWFuIG1peFRvTW9ubyk7Ci0gICAgSlNWYWx1ZSB2YWwgPSBleGVjLT5hcmd1bWVudCgwKTsK
LSAgICBpZiAodmFsLmluaGVyaXRzKCZKU0FycmF5QnVmZmVyOjpzX2luZm8pKSB7Ci0gICAgICAg
IEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9IHRvQXJyYXlCdWZmZXIodmFsKTsKLSAgICAgICAg
QVNTRVJUKGFycmF5QnVmZmVyKTsKLSAgICAgICAgaWYgKGFycmF5QnVmZmVyKSB7Ci0gICAgICAg
ICAgICBib29sIG1peFRvTW9ubyA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvQm9vbGVhbihleGVjKTsK
LQotICAgICAgICAgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBhdWRpb0J1ZmZlciA9IGF1ZGlvQ29u
dGV4dC0+Y3JlYXRlQnVmZmVyKGFycmF5QnVmZmVyLCBtaXhUb01vbm8pOwotICAgICAgICAgICAg
aWYgKCFhdWRpb0J1ZmZlci5nZXQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiRXJyb3IgZGVjb2RpbmcgYXVkaW8gZmls
ZSBkYXRhIikpOwotCi0gICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qo
KSwgYXVkaW9CdWZmZXIuZ2V0KCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0gICAgfQotICAgIAotICAgIC8vIEF1ZGlvQnVmZmVyIGNyZWF0ZUJ1ZmZlcihp
biB1bnNpZ25lZCBsb25nIG51bWJlck9mQ2hhbm5lbHMsIGluIHVuc2lnbmVkIGxvbmcgbnVtYmVy
T2ZGcmFtZXMsIGluIGZsb2F0IHNhbXBsZVJhdGUpOwotICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAzKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhF
cnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7Ci0gICAgCi0gICAgaW50MzJfdCBu
dW1iZXJPZkNoYW5uZWxzID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKLSAgICBp
bnQzMl90IG51bWJlck9mRnJhbWVzID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsK
LSAgICBmbG9hdCBzYW1wbGVSYXRlID0gZXhlYy0+YXJndW1lbnQoMikudG9GbG9hdChleGVjKTsK
LQotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzIDw9IDAgfHwgbnVtYmVyT2ZDaGFubmVscyA+IDEw
KQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVj
LCAiSW52YWxpZCBudW1iZXIgb2YgY2hhbm5lbHMiKSk7Ci0KLSAgICBpZiAobnVtYmVyT2ZGcmFt
ZXMgPD0gMCkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgIkludmFsaWQgbnVtYmVyIG9mIGZyYW1lcyIpKTsKLQotICAgIGlmIChzYW1wbGVS
YXRlIDw9IDApCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVy
cm9yKGV4ZWMsICJJbnZhbGlkIHNhbXBsZSByYXRlIikpOwotCi0gICAgUmVmUHRyPEF1ZGlvQnVm
ZmVyPiBhdWRpb0J1ZmZlciA9IGF1ZGlvQ29udGV4dC0+Y3JlYXRlQnVmZmVyKG51bWJlck9mQ2hh
bm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKLSAgICBpZiAoIWF1ZGlvQnVmZmVy
LmdldCgpKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJv
cihleGVjLCAiRXJyb3IgY3JlYXRpbmcgQXVkaW9CdWZmZXIiKSk7Ci0KLSAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QoKSwgYXVkaW9CdWZmZXIuZ2V0KCkpOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1
c3RvbS5jcHAKaW5kZXggNTk1MDgwZTJmOTYwZWQ4MjFmYzI5ODhlMTAxMDU4MGVhMDJmNTNlNC4u
NDlhZjkzMWQ1NjYwNmU3NWVjYWZlYmFjZThmMDlkNzEzYTc3ZmQ3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0
b20uY3BwCkBAIC0xMDAsNTggKzEwMCw2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEF1ZGlv
Q29udGV4dDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhCiAgICAg
cmV0dXJuIGFyZ3MuSG9sZGVyKCk7CiB9CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEF1ZGlv
Q29udGV4dDo6Y3JlYXRlQnVmZmVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
LXsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKLQotICAgIEF1
ZGlvQ29udGV4dCogYXVkaW9Db250ZXh0ID0gdG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAg
QVNTRVJUKGF1ZGlvQ29udGV4dCk7Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJnID0g
YXJnc1swXTsKLSAgICAKLSAgICAvLyBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoaW4gQXJyYXlC
dWZmZXIgYnVmZmVyLCBpbiBib29sZWFuIG1peFRvTW9ubyk7Ci0gICAgaWYgKFY4QXJyYXlCdWZm
ZXI6Okhhc0luc3RhbmNlKGFyZykpIHsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBv
YmplY3QgPSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZyk7Ci0gICAgICAgIEFycmF5
QnVmZmVyKiBhcnJheUJ1ZmZlciA9IFY4QXJyYXlCdWZmZXI6OnRvTmF0aXZlKG9iamVjdCk7Ci0g
ICAgICAgIEFTU0VSVChhcnJheUJ1ZmZlcik7Ci0KLSAgICAgICAgaWYgKGFycmF5QnVmZmVyKSB7
Ci0gICAgICAgICAgICBib29sIG1peFRvTW9ubyA9IGFyZ3NbMV0tPlRvQm9vbGVhbigpLT5WYWx1
ZSgpOwotCi0gICAgICAgICAgICBSZWZQdHI8QXVkaW9CdWZmZXI+IGF1ZGlvQnVmZmVyID0gYXVk
aW9Db250ZXh0LT5jcmVhdGVCdWZmZXIoYXJyYXlCdWZmZXIsIG1peFRvTW9ubyk7Ci0gICAgICAg
ICAgICBpZiAoIWF1ZGlvQnVmZmVyLmdldCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJFcnJvciBkZWNvZGluZyBhdWRpbyBmaWxlIGRhdGEiLCBWOFByb3h5OjpTeW50YXhF
cnJvcik7Ci0KLSAgICAgICAgICAgIHJldHVybiB0b1Y4KGF1ZGlvQnVmZmVyLmdldCgpKTsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLSAgICB9
Ci0gICAgCi0gICAgLy8gQXVkaW9CdWZmZXIgY3JlYXRlQnVmZmVyKGluIHVuc2lnbmVkIGxvbmcg
bnVtYmVyT2ZDaGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4gZmxv
YXQgc2FtcGxlUmF0ZSk7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50YXhFcnJv
cik7Ci0KLSAgICBib29sIG9rID0gZmFsc2U7Ci0gICAgCi0gICAgaW50MzJfdCBudW1iZXJPZkNo
YW5uZWxzID0gdG9JbnQzMihhcmdzWzBdLCBvayk7Ci0gICAgaWYgKCFvayB8fCBudW1iZXJPZkNo
YW5uZWxzIDw9IDAgfHwgbnVtYmVyT2ZDaGFubmVscyA+IDEwKQotICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcigiSW52YWxpZCBudW1iZXIgb2YgY2hhbm5lbHMiLCBWOFByb3h5OjpTeW50YXhFcnJv
cik7Ci0gICAgCi0gICAgaW50MzJfdCBudW1iZXJPZkZyYW1lcyA9IHRvSW50MzIoYXJnc1sxXSwg
b2spOwotICAgIGlmICghb2sgfHwgbnVtYmVyT2ZGcmFtZXMgPD0gMCkKLSAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIkludmFsaWQgbnVtYmVyIG9mIGZyYW1lcyIsIFY4UHJveHk6OlN5bnRheEVy
cm9yKTsKLSAgICAKLSAgICBmbG9hdCBzYW1wbGVSYXRlID0gdG9GbG9hdChhcmdzWzJdKTsKLSAg
ICAKLSAgICBSZWZQdHI8QXVkaW9CdWZmZXI+IGF1ZGlvQnVmZmVyID0gYXVkaW9Db250ZXh0LT5j
cmVhdGVCdWZmZXIobnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUp
OwotICAgIGlmICghYXVkaW9CdWZmZXIuZ2V0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KCJFcnJvciBjcmVhdGluZyBBdWRpb0J1ZmZlciIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKLQot
ICAgIHJldHVybiB0b1Y4KGF1ZGlvQnVmZmVyLmdldCgpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDQ4OGQwYWEzMjVmODMyYmY0ZWQ4YzM4MjRlNzA0
YzIzNTUzYjAyOTMuLmRjYTk2MDYzYTI5YTg4ZjUzZjE0MGIxOTEzMzkxMjlmNjFiZTcxMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMzAwLDE4ICszMDAs
MzIgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnJlZkJ1ZmZlcihQYXNzUmVmUHRyPEF1ZGlvQnVmZmVy
PiBidWZmZXIpCiAgICAgbV9hbGxvY2F0ZWRCdWZmZXJzLmFwcGVuZChidWZmZXIpOwogfQogCi1Q
YXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUJ1ZmZlcih1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJh
dGUpCitQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUJ1ZmZlcih1
bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNh
bXBsZVJhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBBdWRpb0J1ZmZlcjo6
Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAg
ICBSZWZQdHI8QXVkaW9CdWZmZXI+IGF1ZGlvQnVmZmVyID0gQXVkaW9CdWZmZXI6OmNyZWF0ZShu
dW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgaWYgKCFh
dWRpb0J1ZmZlci5nZXQoKSkgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KKworICAgIHJldHVybiBhdWRpb0J1ZmZlcjsKIH0KIAotUGFzc1JlZlB0
cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIoQXJyYXlCdWZmZXIqIGFy
cmF5QnVmZmVyLCBib29sIG1peFRvTW9ubykKK1Bhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlv
Q29udGV4dDo6Y3JlYXRlQnVmZmVyKEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciwgYm9vbCBtaXhU
b01vbm8sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChhcnJheUJ1ZmZlcik7Ci0g
ICAgaWYgKCFhcnJheUJ1ZmZlcikKKyAgICBpZiAoIWFycmF5QnVmZmVyKSB7CisgICAgICAgIGVj
ID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgCi0gICAgcmV0dXJuIEF1ZGlv
QnVmZmVyOjpjcmVhdGVGcm9tQXVkaW9GaWxlRGF0YShhcnJheUJ1ZmZlci0+ZGF0YSgpLCBhcnJh
eUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpLCBtaXhUb01vbm8sIHNhbXBsZVJhdGUoKSk7CisgICAgfQor
CisgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBhdWRpb0J1ZmZlciA9IEF1ZGlvQnVmZmVyOjpjcmVh
dGVGcm9tQXVkaW9GaWxlRGF0YShhcnJheUJ1ZmZlci0+ZGF0YSgpLCBhcnJheUJ1ZmZlci0+Ynl0
ZUxlbmd0aCgpLCBtaXhUb01vbm8sIHNhbXBsZVJhdGUoKSk7CisgICAgaWYgKCFhdWRpb0J1ZmZl
ci5nZXQoKSkgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKworICAgIHJldHVybiBhdWRpb0J1ZmZlcjsKIH0KIAogdm9pZCBBdWRpb0NvbnRleHQ6
OmRlY29kZUF1ZGlvRGF0YShBcnJheUJ1ZmZlciogYXVkaW9EYXRhLCBQYXNzUmVmUHRyPEF1ZGlv
QnVmZmVyQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlckNh
bGxiYWNrPiBlcnJvckNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggMmRkMGU5MmU4Nzg2MmM0NTYzZTU3Njc5YjI1Yjkw
ZTRmMTFkMTRiNS4uYzRlZWMwOGMwNGRhNzZiMDNlNTUwMTJjMjg4N2NkZmEzYzE0YWQ0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTk2LDggKzk2LDggQEAgcHVi
bGljOgogICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2Rl
LT5jdXJyZW50VGltZSgpOyB9CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIHsgcmV0dXJuIG1fZGVz
dGluYXRpb25Ob2RlLT5zYW1wbGVSYXRlKCk7IH0KIAotICAgIFBhc3NSZWZQdHI8QXVkaW9CdWZm
ZXI+IGNyZWF0ZUJ1ZmZlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVy
T2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOwotICAgIFBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+
IGNyZWF0ZUJ1ZmZlcihBcnJheUJ1ZmZlciogYXJyYXlCdWZmZXIsIGJvb2wgbWl4VG9Nb25vKTsK
KyAgICBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGVCdWZmZXIodW5zaWduZWQgbnVtYmVy
T2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBFeGNl
cHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlQnVmZmVyKEFy
cmF5QnVmZmVyKiwgYm9vbCBtaXhUb01vbm8sIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIC8vIEFz
eW5jaHJvbm91cyBhdWRpbyBmaWxlIGRhdGEgZGVjb2RpbmcuCiAgICAgdm9pZCBkZWNvZGVBdWRp
b0RhdGEoQXJyYXlCdWZmZXIqLCBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyQ2FsbGJhY2s+LCBQYXNz
UmVmUHRyPEF1ZGlvQnVmZmVyQ2FsbGJhY2s+LCBFeGNlcHRpb25Db2RlJiBlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsIGIvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAppbmRleCA5MmQxYTc4MjdmN2QwNzQ2YjQy
MWE0MmQyZmY3ZDE3YjA5ZmRiYmQxLi4xMGY5YzkwNjIzMDY3ZTkxMjg2NzVmNTNmNWNkMjI2ZDgw
NjQ5Njg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKQEAgLTQ1
LDEwICs0NSw5IEBAIG1vZHVsZSB3ZWJhdWRpbyB7CiAgICAgICAgIC8vIEFsbCBwYW5uaW5nIGlz
IHJlbGF0aXZlIHRvIHRoaXMgbGlzdGVuZXIuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBB
dWRpb0xpc3RlbmVyIGxpc3RlbmVyOwogCi0gICAgICAgIC8vIEZJWE1FOiBTd2l0Y2ggZnJvbSBb
Q3VzdG9tXSB0byB1c2luZyBJREwgb3ZlcmxvYWRzLgotICAgICAgICAvLyBBdWRpb0J1ZmZlciBj
cmVhdGVCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkNoYW5uZWxzLCBpbiB1bnNpZ25l
ZCBsb25nIG51bWJlck9mRnJhbWVzLCBpbiBmbG9hdCBzYW1wbGVSYXRlKTsKLSAgICAgICAgLy8g
QXVkaW9CdWZmZXIgY3JlYXRlQnVmZmVyKGluIEFycmF5QnVmZmVyIGJ1ZmZlciwgaW4gYm9vbGVh
biBtaXhUb01vbm8pOwotICAgICAgICBbQ3VzdG9tXSBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIo
KQorICAgICAgICBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyBudW1i
ZXJPZkNoYW5uZWxzLCBpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mRnJhbWVzLCBpbiBmbG9hdCBz
YW1wbGVSYXRlKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIEF1
ZGlvQnVmZmVyIGNyZWF0ZUJ1ZmZlcihpbiBBcnJheUJ1ZmZlciBidWZmZXIsIGluIGJvb2xlYW4g
bWl4VG9Nb25vKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAg
Ly8gQXN5bmNocm9ub3VzIGF1ZGlvIGZpbGUgZGF0YSBkZWNvZGluZy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120716</attachid>
            <date>2011-12-28 20:36:30 -0800</date>
            <delta_ts>2011-12-28 20:41:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75293-20111229112120.patch</filename>
            <type>text/plain</type>
            <size>10387</size>
            <attacher name="Raymond">rgbbones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzg5DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCAwNmNiMWMzM2Q1ZjYw
MjE1YzM0NDFkNzk5MzgwZDgzOTM2NGQxNjhjLi40ODBlYjI2NTk2ZDQ2NGQ4ODY3ODE0NDk5NDJm
NWZjZDYxMTU3MzE2IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTkgQEANCisyMDExLTEyLTI4
ICBSYXltb25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4NCisNCisgICAgICAgIFVzZSBJ
REwgb3ZlcmxvYWRzIGluIEF1ZGlvQ29udGV4dC5pZGwgZm9yIGNyZWF0ZUJ1ZmZlcg0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjkzDQorDQorICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIE5vIG5ldyB0ZXN0
cyByZXF1aXJlZC4NCisNCisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0
b20uY3BwOg0KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0
b20uY3BwOg0KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOg0KKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Y3JlYXRlQnVmZmVyKToNCisgICAgICAgICogd2ViYXVk
aW8vQXVkaW9Db250ZXh0Lmg6DQorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGw6
DQorDQogMjAxMS0xMi0yOCAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+DQog
DQogICAgICAgICBbR1RLXSBGaXggY29tcGlsYXRpb24gaXNzdWUgd2hlbiBzZWxlY3Rpbmcgb3Bl
bmdsIGZvciBBY2NlbGVyYXRlZCBjb21wb3NpdGluZw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcA0KaW5kZXggZTJjMjYyNzUzYWEx
ZGE1NTVmOGU3YzM0NTM0ZTQ1OTA3NjhiMjA3Yy4uZjhmYWI2MjY2YzMxZDBkZDJlNjU0NDI4MDQz
NjM2ZTg2NDJjZjk3NiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBdWRpb0NvbnRleHRDdXN0b20uY3BwDQpAQCAtMTA0LDU2ICsxMDQsNiBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEpTQXVkaW9Db250ZXh0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
QXVkaW9Db250ZXh0KA0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMo
ZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGF1ZGlvQ29udGV4dC5nZXQoKSkp
KTsNCiB9DQogDQotSlNWYWx1ZSBKU0F1ZGlvQ29udGV4dDo6Y3JlYXRlQnVmZmVyKEV4ZWNTdGF0
ZSogZXhlYykNCi17DQotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQ0KLSAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIk5vdCBl
bm91Z2ggYXJndW1lbnRzIikpOw0KLQ0KLSAgICBBdWRpb0NvbnRleHQqIGF1ZGlvQ29udGV4dCA9
IHN0YXRpY19jYXN0PEF1ZGlvQ29udGV4dCo+KGltcGwoKSk7DQotICAgIEFTU0VSVChhdWRpb0Nv
bnRleHQpOw0KLQ0KLSAgICAvLyBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoaW4gQXJyYXlCdWZm
ZXIgYnVmZmVyLCBpbiBib29sZWFuIG1peFRvTW9ubyk7DQotICAgIEpTVmFsdWUgdmFsID0gZXhl
Yy0+YXJndW1lbnQoMCk7DQotICAgIGlmICh2YWwuaW5oZXJpdHMoJkpTQXJyYXlCdWZmZXI6OnNf
aW5mbykpIHsNCi0gICAgICAgIEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9IHRvQXJyYXlCdWZm
ZXIodmFsKTsNCi0gICAgICAgIEFTU0VSVChhcnJheUJ1ZmZlcik7DQotICAgICAgICBpZiAoYXJy
YXlCdWZmZXIpIHsNCi0gICAgICAgICAgICBib29sIG1peFRvTW9ubyA9IGV4ZWMtPmFyZ3VtZW50
KDEpLnRvQm9vbGVhbihleGVjKTsNCi0NCi0gICAgICAgICAgICBSZWZQdHI8QXVkaW9CdWZmZXI+
IGF1ZGlvQnVmZmVyID0gYXVkaW9Db250ZXh0LT5jcmVhdGVCdWZmZXIoYXJyYXlCdWZmZXIsIG1p
eFRvTW9ubyk7DQotICAgICAgICAgICAgaWYgKCFhdWRpb0J1ZmZlci5nZXQoKSkNCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywg
IkVycm9yIGRlY29kaW5nIGF1ZGlvIGZpbGUgZGF0YSIpKTsNCi0NCi0gICAgICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgYXVkaW9CdWZmZXIuZ2V0KCkpOw0KLSAgICAg
ICAgfQ0KLQ0KLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7DQotICAgIH0NCi0gICAgDQot
ICAgIC8vIEF1ZGlvQnVmZmVyIGNyZWF0ZUJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIG51bWJlck9m
Q2hhbm5lbHMsIGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZGcmFtZXMsIGluIGZsb2F0IHNhbXBs
ZVJhdGUpOw0KLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykNCi0gICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdo
IGFyZ3VtZW50cyIpKTsNCi0gICAgDQotICAgIGludDMyX3QgbnVtYmVyT2ZDaGFubmVscyA9IGV4
ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7DQotICAgIGludDMyX3QgbnVtYmVyT2ZGcmFt
ZXMgPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOw0KLSAgICBmbG9hdCBzYW1wbGVS
YXRlID0gZXhlYy0+YXJndW1lbnQoMikudG9GbG9hdChleGVjKTsNCi0NCi0gICAgaWYgKG51bWJl
ck9mQ2hhbm5lbHMgPD0gMCB8fCBudW1iZXJPZkNoYW5uZWxzID4gMTApDQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiSW52YWxpZCBudW1i
ZXIgb2YgY2hhbm5lbHMiKSk7DQotDQotICAgIGlmIChudW1iZXJPZkZyYW1lcyA8PSAwKQ0KLSAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIklu
dmFsaWQgbnVtYmVyIG9mIGZyYW1lcyIpKTsNCi0NCi0gICAgaWYgKHNhbXBsZVJhdGUgPD0gMCkN
Ci0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMs
ICJJbnZhbGlkIHNhbXBsZSByYXRlIikpOw0KLQ0KLSAgICBSZWZQdHI8QXVkaW9CdWZmZXI+IGF1
ZGlvQnVmZmVyID0gYXVkaW9Db250ZXh0LT5jcmVhdGVCdWZmZXIobnVtYmVyT2ZDaGFubmVscywg
bnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOw0KLSAgICBpZiAoIWF1ZGlvQnVmZmVyLmdldCgp
KQ0KLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhl
YywgIkVycm9yIGNyZWF0aW5nIEF1ZGlvQnVmZmVyIikpOw0KLQ0KLSAgICByZXR1cm4gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QoKSwgYXVkaW9CdWZmZXIuZ2V0KCkpOw0KLX0NCi0NCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlDQogDQogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4
dEN1c3RvbS5jcHANCmluZGV4IDU5NTA4MGUyZjk2MGVkODIxZmMyOTg4ZTEwMTA1ODBlYTAyZjUz
ZTQuLjQ5YWY5MzFkNTY2MDZlNzVlY2FmZWJhY2U4ZjA5ZDcxM2E3N2ZkNzAgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20u
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRl
eHRDdXN0b20uY3BwDQpAQCAtMTAwLDU4ICsxMDAsNiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YQ0KICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsNCiB9DQogDQotdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4QXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQ0KLXsNCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQ0KLSAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6U3ludGF4RXJy
b3IpOw0KLQ0KLSAgICBBdWRpb0NvbnRleHQqIGF1ZGlvQ29udGV4dCA9IHRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOw0KLSAgICBBU1NFUlQoYXVkaW9Db250ZXh0KTsNCi0NCi0gICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbMF07DQotICAgIA0KLSAgICAvLyBBdWRpb0J1ZmZlciBj
cmVhdGVCdWZmZXIoaW4gQXJyYXlCdWZmZXIgYnVmZmVyLCBpbiBib29sZWFuIG1peFRvTW9ubyk7
DQotICAgIGlmIChWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5jZShhcmcpKSB7DQotICAgICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoYXJnKTsNCi0gICAgICAgIEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9IFY4QXJyYXlCdWZm
ZXI6OnRvTmF0aXZlKG9iamVjdCk7DQotICAgICAgICBBU1NFUlQoYXJyYXlCdWZmZXIpOw0KLQ0K
LSAgICAgICAgaWYgKGFycmF5QnVmZmVyKSB7DQotICAgICAgICAgICAgYm9vbCBtaXhUb01vbm8g
PSBhcmdzWzFdLT5Ub0Jvb2xlYW4oKS0+VmFsdWUoKTsNCi0NCi0gICAgICAgICAgICBSZWZQdHI8
QXVkaW9CdWZmZXI+IGF1ZGlvQnVmZmVyID0gYXVkaW9Db250ZXh0LT5jcmVhdGVCdWZmZXIoYXJy
YXlCdWZmZXIsIG1peFRvTW9ubyk7DQotICAgICAgICAgICAgaWYgKCFhdWRpb0J1ZmZlci5nZXQo
KSkNCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkVycm9yIGRlY29kaW5nIGF1
ZGlvIGZpbGUgZGF0YSIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsNCi0NCi0gICAgICAgICAgICBy
ZXR1cm4gdG9WOChhdWRpb0J1ZmZlci5nZXQoKSk7DQotICAgICAgICB9DQotICAgICAgICANCi0g
ICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7DQotICAgIH0NCi0gICAgDQotICAgIC8vIEF1
ZGlvQnVmZmVyIGNyZWF0ZUJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mQ2hhbm5lbHMs
IGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZGcmFtZXMsIGluIGZsb2F0IHNhbXBsZVJhdGUpOw0K
LSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpDQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
Tm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7DQotDQotICAgIGJv
b2wgb2sgPSBmYWxzZTsNCi0gICAgDQotICAgIGludDMyX3QgbnVtYmVyT2ZDaGFubmVscyA9IHRv
SW50MzIoYXJnc1swXSwgb2spOw0KLSAgICBpZiAoIW9rIHx8IG51bWJlck9mQ2hhbm5lbHMgPD0g
MCB8fCBudW1iZXJPZkNoYW5uZWxzID4gMTApDQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
SW52YWxpZCBudW1iZXIgb2YgY2hhbm5lbHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7DQotICAg
IA0KLSAgICBpbnQzMl90IG51bWJlck9mRnJhbWVzID0gdG9JbnQzMihhcmdzWzFdLCBvayk7DQot
ICAgIGlmICghb2sgfHwgbnVtYmVyT2ZGcmFtZXMgPD0gMCkNCi0gICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJJbnZhbGlkIG51bWJlciBvZiBmcmFtZXMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7
DQotICAgIA0KLSAgICBmbG9hdCBzYW1wbGVSYXRlID0gdG9GbG9hdChhcmdzWzJdKTsNCi0gICAg
DQotICAgIFJlZlB0cjxBdWRpb0J1ZmZlcj4gYXVkaW9CdWZmZXIgPSBhdWRpb0NvbnRleHQtPmNy
ZWF0ZUJ1ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7
DQotICAgIGlmICghYXVkaW9CdWZmZXIuZ2V0KCkpDQotICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cigiRXJyb3IgY3JlYXRpbmcgQXVkaW9CdWZmZXIiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7DQot
DQotICAgIHJldHVybiB0b1Y4KGF1ZGlvQnVmZmVyLmdldCgpKTsNCi19DQotDQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQ0KIA0KICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQ0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwDQppbmRleCA0ODhkMGFhMzI1ZjgzMmJmNGVk
OGMzODI0ZTcwNGMyMzU1M2IwMjkzLi5kY2E5NjA2M2EyOWE4OGY1M2YxNDBiMTkxMzM5MTI5ZjYx
YmU3MTE0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcA0KQEAg
LTMwMCwxOCArMzAwLDMyIEBAIHZvaWQgQXVkaW9Db250ZXh0OjpyZWZCdWZmZXIoUGFzc1JlZlB0
cjxBdWRpb0J1ZmZlcj4gYnVmZmVyKQ0KICAgICBtX2FsbG9jYXRlZEJ1ZmZlcnMuYXBwZW5kKGJ1
ZmZlcik7DQogfQ0KIA0KLVBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQ29udGV4dDo6Y3Jl
YXRlQnVmZmVyKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1l
cywgZmxvYXQgc2FtcGxlUmF0ZSkNCitQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0NvbnRl
eHQ6OmNyZWF0ZUJ1ZmZlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVy
T2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQ0KIHsNCi0gICAg
cmV0dXJuIEF1ZGlvQnVmZmVyOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFt
ZXMsIHNhbXBsZVJhdGUpOw0KKyAgICBSZWZQdHI8QXVkaW9CdWZmZXI+IGF1ZGlvQnVmZmVyID0g
QXVkaW9CdWZmZXI6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2Ft
cGxlUmF0ZSk7DQorICAgIGlmICghYXVkaW9CdWZmZXIuZ2V0KCkpIHsNCisgICAgICAgIGVjID0g
U1lOVEFYX0VSUjsNCisgICAgICAgIHJldHVybiAwOw0KKyAgICB9DQorDQorICAgIHJldHVybiBh
dWRpb0J1ZmZlcjsNCiB9DQogDQotUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0
OjpjcmVhdGVCdWZmZXIoQXJyYXlCdWZmZXIqIGFycmF5QnVmZmVyLCBib29sIG1peFRvTW9ubykN
CitQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUJ1ZmZlcihBcnJh
eUJ1ZmZlciogYXJyYXlCdWZmZXIsIGJvb2wgbWl4VG9Nb25vLCBFeGNlcHRpb25Db2RlJiBlYykN
CiB7DQogICAgIEFTU0VSVChhcnJheUJ1ZmZlcik7DQotICAgIGlmICghYXJyYXlCdWZmZXIpDQor
ICAgIGlmICghYXJyYXlCdWZmZXIpIHsNCisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsNCiAgICAg
ICAgIHJldHVybiAwOw0KLSAgICANCi0gICAgcmV0dXJuIEF1ZGlvQnVmZmVyOjpjcmVhdGVGcm9t
QXVkaW9GaWxlRGF0YShhcnJheUJ1ZmZlci0+ZGF0YSgpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0
aCgpLCBtaXhUb01vbm8sIHNhbXBsZVJhdGUoKSk7DQorICAgIH0NCisNCisgICAgUmVmUHRyPEF1
ZGlvQnVmZmVyPiBhdWRpb0J1ZmZlciA9IEF1ZGlvQnVmZmVyOjpjcmVhdGVGcm9tQXVkaW9GaWxl
RGF0YShhcnJheUJ1ZmZlci0+ZGF0YSgpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpLCBtaXhU
b01vbm8sIHNhbXBsZVJhdGUoKSk7DQorICAgIGlmICghYXVkaW9CdWZmZXIuZ2V0KCkpIHsNCisg
ICAgICAgIGVjID0gU1lOVEFYX0VSUjsNCisgICAgICAgIHJldHVybiAwOw0KKyAgICB9DQorDQor
ICAgIHJldHVybiBhdWRpb0J1ZmZlcjsNCiB9DQogDQogdm9pZCBBdWRpb0NvbnRleHQ6OmRlY29k
ZUF1ZGlvRGF0YShBcnJheUJ1ZmZlciogYXVkaW9EYXRhLCBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVy
Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlckNhbGxiYWNr
PiBlcnJvckNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oDQppbmRleCAyZGQwZTkyZTg3ODYyYzQ1NjNlNTc2NzliMjViOTBlNGYx
MWQxNGI1Li5jNGVlYzA4YzA0ZGE3NmIwM2U1NTAxMmMyODg3Y2RmYTNjMTRhZDRmIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgNCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oDQpAQCAtOTYsOCArOTYsOCBAQCBwdWJs
aWM6DQogICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2Rl
LT5jdXJyZW50VGltZSgpOyB9DQogICAgIGZsb2F0IHNhbXBsZVJhdGUoKSB7IHJldHVybiBtX2Rl
c3RpbmF0aW9uTm9kZS0+c2FtcGxlUmF0ZSgpOyB9DQogDQotICAgIFBhc3NSZWZQdHI8QXVkaW9C
dWZmZXI+IGNyZWF0ZUJ1ZmZlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVt
YmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOw0KLSAgICBQYXNzUmVmUHRyPEF1ZGlvQnVm
ZmVyPiBjcmVhdGVCdWZmZXIoQXJyYXlCdWZmZXIqIGFycmF5QnVmZmVyLCBib29sIG1peFRvTW9u
byk7DQorICAgIFBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IGNyZWF0ZUJ1ZmZlcih1bnNpZ25lZCBu
dW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUs
IEV4Y2VwdGlvbkNvZGUmKTsNCisgICAgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlQnVm
ZmVyKEFycmF5QnVmZmVyKiwgYm9vbCBtaXhUb01vbm8sIEV4Y2VwdGlvbkNvZGUmKTsNCiANCiAg
ICAgLy8gQXN5bmNocm9ub3VzIGF1ZGlvIGZpbGUgZGF0YSBkZWNvZGluZy4NCiAgICAgdm9pZCBk
ZWNvZGVBdWRpb0RhdGEoQXJyYXlCdWZmZXIqLCBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyQ2FsbGJh
Y2s+LCBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyQ2FsbGJhY2s+LCBFeGNlcHRpb25Db2RlJiBlYyk7
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwNCmluZGV4IDkyZDFhNzgy
N2Y3ZDA3NDZiNDIxYTQyZDJmZjdkMTdiMDlmZGJiZDEuLjEwZjljOTA2MjMwNjdlOTEyODY3NWY1
M2Y1Y2QyMjZkODA2NDk2ODggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaWRsDQorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuaWRsDQpAQCAtNDUsMTAgKzQ1LDkgQEAgbW9kdWxlIHdlYmF1ZGlvIHsNCiAgICAgICAgIC8v
IEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRvIHRoaXMgbGlzdGVuZXIuDQogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgQXVkaW9MaXN0ZW5lciBsaXN0ZW5lcjsNCiANCi0gICAgICAgIC8vIEZJ
WE1FOiBTd2l0Y2ggZnJvbSBbQ3VzdG9tXSB0byB1c2luZyBJREwgb3ZlcmxvYWRzLg0KLSAgICAg
ICAgLy8gQXVkaW9CdWZmZXIgY3JlYXRlQnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZD
aGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4gZmxvYXQgc2FtcGxl
UmF0ZSk7DQotICAgICAgICAvLyBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoaW4gQXJyYXlCdWZm
ZXIgYnVmZmVyLCBpbiBib29sZWFuIG1peFRvTW9ubyk7DQotICAgICAgICBbQ3VzdG9tXSBBdWRp
b0J1ZmZlciBjcmVhdGVCdWZmZXIoKQ0KKyAgICAgICAgQXVkaW9CdWZmZXIgY3JlYXRlQnVmZmVy
KGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZDaGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1i
ZXJPZkZyYW1lcywgaW4gZmxvYXQgc2FtcGxlUmF0ZSkNCisgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsNCisgICAgICAgIEF1ZGlvQnVmZmVyIGNyZWF0ZUJ1ZmZlcihpbiBBcnJheUJ1
ZmZlciBidWZmZXIsIGluIGJvb2xlYW4gbWl4VG9Nb25vKQ0KICAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOw0KIA0KICAgICAgICAgLy8gQXN5bmNocm9ub3VzIGF1ZGlvIGZpbGUgZGF0
YSBkZWNvZGluZy4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120718</attachid>
            <date>2011-12-28 20:41:02 -0800</date>
            <delta_ts>2011-12-29 18:29:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75293-20111229112120.patch</filename>
            <type>text/plain</type>
            <size>10162</size>
            <attacher name="Raymond">rgbbones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDZjYjFjMzNkNWY2MDIx
NWMzNDQxZDc5OTM4MGQ4MzkzNjRkMTY4Yy4uNDgwZWIyNjU5NmQ0NjRkODg2NzgxNDQ5OTQyZjVm
Y2Q2MTE1NzMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTI4ICBSYXlt
b25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4KKworICAgICAgICBVc2UgSURMIG92ZXJs
b2FkcyBpbiBBdWRpb0NvbnRleHQuaWRsIGZvciBjcmVhdGVCdWZmZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjkzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHJlcXVpcmVkLgor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAg
ICogd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29u
dGV4dDo6Y3JlYXRlQnVmZmVyKToKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoK
KyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsOgorCiAyMDExLTEyLTI4ICBDaGFu
Z1Nlb2sgT2ggIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBGaXggY29t
cGlsYXRpb24gaXNzdWUgd2hlbiBzZWxlY3Rpbmcgb3BlbmdsIGZvciBBY2NlbGVyYXRlZCBjb21w
b3NpdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0Nv
bnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRl
eHRDdXN0b20uY3BwCmluZGV4IGUyYzI2Mjc1M2FhMWRhNTU1ZjhlN2MzNDUzNGU0NTkwNzY4YjIw
N2MuLmY4ZmFiNjI2NmMzMWQwZGQyZTY1NDQyODA0MzYzNmU4NjQyY2Y5NzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAKQEAg
LTEwNCw1NiArMTA0LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0F1ZGlvQ29u
dGV4dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0F1ZGlvQ29udGV4dCgKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2Jq
ZWN0KCksIGF1ZGlvQ29udGV4dC5nZXQoKSkpKTsKIH0KIAotSlNWYWx1ZSBKU0F1ZGlvQ29udGV4
dDo6Y3JlYXRlQnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3lu
dGF4RXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOwotCi0gICAgQXVkaW9Db250
ZXh0KiBhdWRpb0NvbnRleHQgPSBzdGF0aWNfY2FzdDxBdWRpb0NvbnRleHQqPihpbXBsKCkpOwot
ICAgIEFTU0VSVChhdWRpb0NvbnRleHQpOwotCi0gICAgLy8gQXVkaW9CdWZmZXIgY3JlYXRlQnVm
ZmVyKGluIEFycmF5QnVmZmVyIGJ1ZmZlciwgaW4gYm9vbGVhbiBtaXhUb01vbm8pOwotICAgIEpT
VmFsdWUgdmFsID0gZXhlYy0+YXJndW1lbnQoMCk7Ci0gICAgaWYgKHZhbC5pbmhlcml0cygmSlNB
cnJheUJ1ZmZlcjo6c19pbmZvKSkgewotICAgICAgICBBcnJheUJ1ZmZlciogYXJyYXlCdWZmZXIg
PSB0b0FycmF5QnVmZmVyKHZhbCk7Ci0gICAgICAgIEFTU0VSVChhcnJheUJ1ZmZlcik7Ci0gICAg
ICAgIGlmIChhcnJheUJ1ZmZlcikgewotICAgICAgICAgICAgYm9vbCBtaXhUb01vbm8gPSBleGVj
LT5hcmd1bWVudCgxKS50b0Jvb2xlYW4oZXhlYyk7Ci0KLSAgICAgICAgICAgIFJlZlB0cjxBdWRp
b0J1ZmZlcj4gYXVkaW9CdWZmZXIgPSBhdWRpb0NvbnRleHQtPmNyZWF0ZUJ1ZmZlcihhcnJheUJ1
ZmZlciwgbWl4VG9Nb25vKTsKLSAgICAgICAgICAgIGlmICghYXVkaW9CdWZmZXIuZ2V0KCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3Io
ZXhlYywgIkVycm9yIGRlY29kaW5nIGF1ZGlvIGZpbGUgZGF0YSIpKTsKLQotICAgICAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGF1ZGlvQnVmZmVyLmdldCgpKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLSAgICAKLSAg
ICAvLyBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkNo
YW5uZWxzLCBpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mRnJhbWVzLCBpbiBmbG9hdCBzYW1wbGVS
YXRlKTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKLSAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJn
dW1lbnRzIikpOwotICAgIAotICAgIGludDMyX3QgbnVtYmVyT2ZDaGFubmVscyA9IGV4ZWMtPmFy
Z3VtZW50KDApLnRvSW50MzIoZXhlYyk7Ci0gICAgaW50MzJfdCBudW1iZXJPZkZyYW1lcyA9IGV4
ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7Ci0gICAgZmxvYXQgc2FtcGxlUmF0ZSA9IGV4
ZWMtPmFyZ3VtZW50KDIpLnRvRmxvYXQoZXhlYyk7Ci0KLSAgICBpZiAobnVtYmVyT2ZDaGFubmVs
cyA8PSAwIHx8IG51bWJlck9mQ2hhbm5lbHMgPiAxMCkKLSAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkludmFsaWQgbnVtYmVyIG9mIGNoYW5u
ZWxzIikpOwotCi0gICAgaWYgKG51bWJlck9mRnJhbWVzIDw9IDApCi0gICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJJbnZhbGlkIG51bWJlciBv
ZiBmcmFtZXMiKSk7Ci0KLSAgICBpZiAoc2FtcGxlUmF0ZSA8PSAwKQotICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiSW52YWxpZCBzYW1wbGUg
cmF0ZSIpKTsKLQotICAgIFJlZlB0cjxBdWRpb0J1ZmZlcj4gYXVkaW9CdWZmZXIgPSBhdWRpb0Nv
bnRleHQtPmNyZWF0ZUJ1ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2Ft
cGxlUmF0ZSk7Ci0gICAgaWYgKCFhdWRpb0J1ZmZlci5nZXQoKSkKLSAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkVycm9yIGNyZWF0aW5nIEF1
ZGlvQnVmZmVyIikpOwotCi0gICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGF1
ZGlvQnVmZmVyLmdldCgpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDU5NTA4MGUyZjk2
MGVkODIxZmMyOTg4ZTEwMTA1ODBlYTAyZjUzZTQuLjQ5YWY5MzFkNTY2MDZlNzVlY2FmZWJhY2U4
ZjA5ZDcxM2E3N2ZkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcApAQCAtMTAwLDU4ICsxMDAsNiBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYQogICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogfQog
Ci12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhBdWRpb0NvbnRleHQ6OmNyZWF0ZUJ1ZmZlckNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAyKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBW
OFByb3h5OjpTeW50YXhFcnJvcik7Ci0KLSAgICBBdWRpb0NvbnRleHQqIGF1ZGlvQ29udGV4dCA9
IHRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEFTU0VSVChhdWRpb0NvbnRleHQpOwotCi0g
ICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbMF07Ci0gICAgCi0gICAgLy8gQXVk
aW9CdWZmZXIgY3JlYXRlQnVmZmVyKGluIEFycmF5QnVmZmVyIGJ1ZmZlciwgaW4gYm9vbGVhbiBt
aXhUb01vbm8pOwotICAgIGlmIChWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0g
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0Pjo6Q2FzdChhcmcpOwotICAgICAgICBBcnJheUJ1ZmZlciogYXJyYXlCdWZmZXIgPSBWOEFy
cmF5QnVmZmVyOjp0b05hdGl2ZShvYmplY3QpOwotICAgICAgICBBU1NFUlQoYXJyYXlCdWZmZXIp
OwotCi0gICAgICAgIGlmIChhcnJheUJ1ZmZlcikgewotICAgICAgICAgICAgYm9vbCBtaXhUb01v
bm8gPSBhcmdzWzFdLT5Ub0Jvb2xlYW4oKS0+VmFsdWUoKTsKLQotICAgICAgICAgICAgUmVmUHRy
PEF1ZGlvQnVmZmVyPiBhdWRpb0J1ZmZlciA9IGF1ZGlvQ29udGV4dC0+Y3JlYXRlQnVmZmVyKGFy
cmF5QnVmZmVyLCBtaXhUb01vbm8pOwotICAgICAgICAgICAgaWYgKCFhdWRpb0J1ZmZlci5nZXQo
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiRXJyb3IgZGVjb2RpbmcgYXVk
aW8gZmlsZSBkYXRhIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOwotCi0gICAgICAgICAgICByZXR1
cm4gdG9WOChhdWRpb0J1ZmZlci5nZXQoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0gICAgfQotICAgIAotICAgIC8vIEF1ZGlvQnVmZmVy
IGNyZWF0ZUJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mQ2hhbm5lbHMsIGluIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZGcmFtZXMsIGluIGZsb2F0IHNhbXBsZVJhdGUpOwotICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMykKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2gg
YXJndW1lbnRzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOwotCi0gICAgYm9vbCBvayA9IGZhbHNl
OwotICAgIAotICAgIGludDMyX3QgbnVtYmVyT2ZDaGFubmVscyA9IHRvSW50MzIoYXJnc1swXSwg
b2spOwotICAgIGlmICghb2sgfHwgbnVtYmVyT2ZDaGFubmVscyA8PSAwIHx8IG51bWJlck9mQ2hh
bm5lbHMgPiAxMCkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkludmFsaWQgbnVtYmVyIG9m
IGNoYW5uZWxzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOwotICAgIAotICAgIGludDMyX3QgbnVt
YmVyT2ZGcmFtZXMgPSB0b0ludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICBpZiAoIW9rIHx8IG51bWJl
ck9mRnJhbWVzIDw9IDApCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJJbnZhbGlkIG51bWJl
ciBvZiBmcmFtZXMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7Ci0gICAgCi0gICAgZmxvYXQgc2Ft
cGxlUmF0ZSA9IHRvRmxvYXQoYXJnc1syXSk7Ci0gICAgCi0gICAgUmVmUHRyPEF1ZGlvQnVmZmVy
PiBhdWRpb0J1ZmZlciA9IGF1ZGlvQ29udGV4dC0+Y3JlYXRlQnVmZmVyKG51bWJlck9mQ2hhbm5l
bHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKLSAgICBpZiAoIWF1ZGlvQnVmZmVyLmdl
dCgpKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiRXJyb3IgY3JlYXRpbmcgQXVkaW9CdWZm
ZXIiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7Ci0KLSAgICByZXR1cm4gdG9WOChhdWRpb0J1ZmZl
ci5nZXQoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRl
eCA0ODhkMGFhMzI1ZjgzMmJmNGVkOGMzODI0ZTcwNGMyMzU1M2IwMjkzLi5kY2E5NjA2M2EyOWE4
OGY1M2YxNDBiMTkxMzM5MTI5ZjYxYmU3MTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAKQEAgLTMwMCwxOCArMzAwLDMyIEBAIHZvaWQgQXVkaW9Db250ZXh0Ojpy
ZWZCdWZmZXIoUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gYnVmZmVyKQogICAgIG1fYWxsb2NhdGVk
QnVmZmVycy5hcHBlbmQoYnVmZmVyKTsKIH0KIAotUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVk
aW9Db250ZXh0OjpjcmVhdGVCdWZmZXIodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90
IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlKQorUGFzc1JlZlB0cjxBdWRpb0J1ZmZl
cj4gQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywg
c2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICByZXR1cm4gQXVkaW9CdWZmZXI6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCBu
dW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBhdWRp
b0J1ZmZlciA9IEF1ZGlvQnVmZmVyOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZG
cmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGlmICghYXVkaW9CdWZmZXIuZ2V0KCkpIHsKKyAgICAg
ICAgZWMgPSBTWU5UQVhfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1
cm4gYXVkaW9CdWZmZXI7CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQ29udGV4
dDo6Y3JlYXRlQnVmZmVyKEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciwgYm9vbCBtaXhUb01vbm8p
CitQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUJ1ZmZlcihBcnJh
eUJ1ZmZlciogYXJyYXlCdWZmZXIsIGJvb2wgbWl4VG9Nb25vLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBBU1NFUlQoYXJyYXlCdWZmZXIpOwotICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAg
aWYgKCFhcnJheUJ1ZmZlcikgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiAgICAgICAgIHJl
dHVybiAwOwotICAgIAotICAgIHJldHVybiBBdWRpb0J1ZmZlcjo6Y3JlYXRlRnJvbUF1ZGlvRmls
ZURhdGEoYXJyYXlCdWZmZXItPmRhdGEoKSwgYXJyYXlCdWZmZXItPmJ5dGVMZW5ndGgoKSwgbWl4
VG9Nb25vLCBzYW1wbGVSYXRlKCkpOworICAgIH0KKworICAgIFJlZlB0cjxBdWRpb0J1ZmZlcj4g
YXVkaW9CdWZmZXIgPSBBdWRpb0J1ZmZlcjo6Y3JlYXRlRnJvbUF1ZGlvRmlsZURhdGEoYXJyYXlC
dWZmZXItPmRhdGEoKSwgYXJyYXlCdWZmZXItPmJ5dGVMZW5ndGgoKSwgbWl4VG9Nb25vLCBzYW1w
bGVSYXRlKCkpOworICAgIGlmICghYXVkaW9CdWZmZXIuZ2V0KCkpIHsKKyAgICAgICAgZWMgPSBT
WU5UQVhfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gYXVkaW9C
dWZmZXI7CiB9CiAKIHZvaWQgQXVkaW9Db250ZXh0OjpkZWNvZGVBdWRpb0RhdGEoQXJyYXlCdWZm
ZXIqIGF1ZGlvRGF0YSwgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlckNhbGxiYWNrPiBzdWNjZXNzQ2Fs
bGJhY2ssIFBhc3NSZWZQdHI8QXVkaW9CdWZmZXJDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRp
b0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4
IDJkZDBlOTJlODc4NjJjNDU2M2U1NzY3OWIyNWI5MGU0ZjExZDE0YjUuLmM0ZWVjMDhjMDRkYTc2
YjAzZTU1MDEyYzI4ODdjZGZhM2MxNGFkNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5oCkBAIC05Niw4ICs5Niw4IEBAIHB1YmxpYzoKICAgICBkb3VibGUgY3VycmVudFRp
bWUoKSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uTm9kZS0+Y3VycmVudFRpbWUoKTsgfQogICAgIGZs
b2F0IHNhbXBsZVJhdGUoKSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uTm9kZS0+c2FtcGxlUmF0ZSgp
OyB9CiAKLSAgICBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGVCdWZmZXIodW5zaWduZWQg
bnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRl
KTsKLSAgICBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGVCdWZmZXIoQXJyYXlCdWZmZXIq
IGFycmF5QnVmZmVyLCBib29sIG1peFRvTW9ubyk7CisgICAgUGFzc1JlZlB0cjxBdWRpb0J1ZmZl
cj4gY3JlYXRlQnVmZmVyKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJP
ZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQ
dHI8QXVkaW9CdWZmZXI+IGNyZWF0ZUJ1ZmZlcihBcnJheUJ1ZmZlciosIGJvb2wgbWl4VG9Nb25v
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAvLyBBc3luY2hyb25vdXMgYXVkaW8gZmlsZSBkYXRh
IGRlY29kaW5nLgogICAgIHZvaWQgZGVjb2RlQXVkaW9EYXRhKEFycmF5QnVmZmVyKiwgUGFzc1Jl
ZlB0cjxBdWRpb0J1ZmZlckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlckNhbGxiYWNr
PiwgRXhjZXB0aW9uQ29kZSYgZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5pZGwKaW5kZXggOTJkMWE3ODI3ZjdkMDc0NmI0MjFhNDJkMmZmN2QxN2IwOWZkYmJkMS4uMTBm
OWM5MDYyMzA2N2U5MTI4Njc1ZjUzZjVjZDIyNmQ4MDY0OTY4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCkBAIC00NSwxMCArNDUsOSBAQCBtb2R1bGUgd2ViYXVk
aW8gewogICAgICAgICAvLyBBbGwgcGFubmluZyBpcyByZWxhdGl2ZSB0byB0aGlzIGxpc3RlbmVy
LgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9MaXN0ZW5lciBsaXN0ZW5lcjsKIAot
ICAgICAgICAvLyBGSVhNRTogU3dpdGNoIGZyb20gW0N1c3RvbV0gdG8gdXNpbmcgSURMIG92ZXJs
b2Fkcy4KLSAgICAgICAgLy8gQXVkaW9CdWZmZXIgY3JlYXRlQnVmZmVyKGluIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZDaGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4g
ZmxvYXQgc2FtcGxlUmF0ZSk7Ci0gICAgICAgIC8vIEF1ZGlvQnVmZmVyIGNyZWF0ZUJ1ZmZlcihp
biBBcnJheUJ1ZmZlciBidWZmZXIsIGluIGJvb2xlYW4gbWl4VG9Nb25vKTsKLSAgICAgICAgW0N1
c3RvbV0gQXVkaW9CdWZmZXIgY3JlYXRlQnVmZmVyKCkKKyAgICAgICAgQXVkaW9CdWZmZXIgY3Jl
YXRlQnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZDaGFubmVscywgaW4gdW5zaWduZWQg
bG9uZyBudW1iZXJPZkZyYW1lcywgaW4gZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBBdWRpb0J1ZmZlciBjcmVhdGVCdWZmZXIoaW4g
QXJyYXlCdWZmZXIgYnVmZmVyLCBpbiBib29sZWFuIG1peFRvTW9ubykKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEFzeW5jaHJvbm91cyBhdWRpbyBmaWxl
IGRhdGEgZGVjb2RpbmcuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>