<?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>68382</bug_id>
          
          <creation_ts>2011-09-19 13:19:40 -0700</creation_ts>
          <short_desc>Add settings to control the availability of the Web Audio API to WebKit and WebKit2.</short_desc>
          <delta_ts>2011-09-21 16:17:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>aroben</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>469633</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-19 13:19:40 -0700</bug_when>
    <thetext>Add settings to control the availability of the Web Audio API to WebKit and WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469638</commentid>
    <comment_count>1</comment_count>
      <attachid>107908</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-19 13:26:24 -0700</bug_when>
    <thetext>Created attachment 107908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469844</commentid>
    <comment_count>2</comment_count>
      <attachid>107908</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-19 18:16:08 -0700</bug_when>
    <thetext>Comment on attachment 107908
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:616
&gt;  #if ENABLE(WEB_AUDIO)
&gt;  JSValue JSDOMWindow::webkitAudioContext(ExecState* exec) const
&gt;  {
&gt; +    Frame* frame = impl()-&gt;frame();
&gt; +    if (!frame)
&gt; +        return jsUndefined();
&gt; +    Settings* settings = frame-&gt;settings();
&gt; +    if (!settings || !settings-&gt;webAudioEnabled())
&gt; +        return jsUndefined();
&gt;      return getDOMConstructor&lt;JSAudioContextConstructor&gt;(exec, this);
&gt;  }
&gt;  #endif

I wish there was a tighter way to implement this so the null checks didn’t take so many lines of code.

Does the webkitAudioContext property still show up if you iterate properties?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469928</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-19 23:34:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 107908 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=107908&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:616
&gt; &gt;  #if ENABLE(WEB_AUDIO)
&gt; &gt;  JSValue JSDOMWindow::webkitAudioContext(ExecState* exec) const
&gt; &gt;  {
&gt; &gt; +    Frame* frame = impl()-&gt;frame();
&gt; &gt; +    if (!frame)
&gt; &gt; +        return jsUndefined();
&gt; &gt; +    Settings* settings = frame-&gt;settings();
&gt; &gt; +    if (!settings || !settings-&gt;webAudioEnabled())
&gt; &gt; +        return jsUndefined();
&gt; &gt;      return getDOMConstructor&lt;JSAudioContextConstructor&gt;(exec, this);
&gt; &gt;  }
&gt; &gt;  #endif
&gt; 
&gt; I wish there was a tighter way to implement this so the null checks didn’t take so many lines of code.

I do as well.  This same pattern is used a couple of other places in this file; perhaps it could be pulled out into a file-static helper function?  I&apos;ll see what I can do.

&gt; Does the webkitAudioContext property still show up if you iterate properties?

Just checked, and yes it still does.  I used the same pattern as we&apos;re using for the WebGL setting, and the WebGL properties still appear on Window as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470097</commentid>
    <comment_count>4</comment_count>
      <attachid>108009</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-20 09:02:56 -0700</bug_when>
    <thetext>Created attachment 108009
Updated patch to address Darin&apos;s comment about the many lines of code dedicated to null-checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470135</commentid>
    <comment_count>5</comment_count>
      <attachid>108009</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-20 10:09:21 -0700</bug_when>
    <thetext>Comment on attachment 108009
Updated patch to address Darin&apos;s comment about the many lines of code dedicated to null-checks.

Whoops, this will never work.  Uploading a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470141</commentid>
    <comment_count>6</comment_count>
      <attachid>108015</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-20 10:16:48 -0700</bug_when>
    <thetext>Created attachment 108015
Patch

More LOC than the previous updated patch, but now with 100% fewer compile errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470143</commentid>
    <comment_count>7</comment_count>
      <attachid>108015</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-20 10:20:50 -0700</bug_when>
    <thetext>Comment on attachment 108015
Patch

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

I think this version of runtime-enabled properties is not good. The feature will still seem to be there for people who use best practices such as:

    if (webkitAudioContext in window)

I think that needs to be resolved. I believe V8 currently has a better version of runtime-enabled features.

&gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:610
&gt; +    Frame* frame = impl()-&gt;frame();
&gt; +    Settings* settings = frame ? frame-&gt;settings() : 0;

We could make a helper function to get settings and so remove one line of code from all of these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470171</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-20 10:48:16 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 108015 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108015&amp;action=review
&gt; 
&gt; I think this version of runtime-enabled properties is not good. The feature will still seem to be there for people who use best practices such as:
&gt; 
&gt;     if (webkitAudioContext in window)
&gt; 
&gt; I think that needs to be resolved. I believe V8 currently has a better version of runtime-enabled features.

Indeed.  I think the only way to do this is to manually handle each runtime-enabled property in JSDOMWindow::getOwnPropertySlot().  But I think Sam might have an idea about this; I&apos;ll talk to him.

&gt; &gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:610
&gt; &gt; +    Frame* frame = impl()-&gt;frame();
&gt; &gt; +    Settings* settings = frame ? frame-&gt;settings() : 0;
&gt; 
&gt; We could make a helper function to get settings and so remove one line of code from all of these.

Will do.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471236</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-21 16:05:52 -0700</bug_when>
    <thetext>Committed r95678: &lt;http://trac.webkit.org/changeset/95678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471240</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-21 16:09:13 -0700</bug_when>
    <thetext>What about WebKit1 on Windows?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471243</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-21 16:17:10 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; What about WebKit1 on Windows?

Chris Rogers has already added a WebKit1 API for controlling this setting.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107908</attachid>
            <date>2011-09-19 13:26:24 -0700</date>
            <delta_ts>2011-09-20 09:02:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68382-20110919132623.patch</filename>
            <type>text/plain</type>
            <size>7506</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUxMzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MDA0N2Q4MzA1NmY4ZGEx
Mzk4YmI0ZWM2OTA2NjBhZWVjMzIwNGE0Li4zYzBjMjkyNWMxMjg1YjAwNjQwNGU2M2NjOTI0NWNh
ZjJiNWE2OTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMTkgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIGNv
bnRyb2wgdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgV2ViIEF1ZGlvIEFQSSB0byBXZWJLaXQgYW5k
IFdlYktpdDIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02ODM4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgT25seSBjcmVhdGUgYSBBdWRpb0NvbnRleHQgb2JqZWN0IGlmIHRoZSBXZWIgQXVk
aW8gZmVhdHVyZSBpcyBydW50aW1lLWVuYWJsZWQgaW4gU2V0dGluZ3MuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBhcyB0aGlzIGZlYXR1cmUgaXMgbm90IHlldCBlbmFibGVkIGJ5IGRlZmF1bHQu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6d2Via2l0QXVkaW9Db250ZXh0KToKKwogMjAxMS0wOS0x
NCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEdldCBy
aWQgb2YgV2ViQ29yZVZpZXdGYWN0b3J5IGFuZCBpdHMgV2ViVmlld0ZhY3Rvcnkgc3ViY2xhc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApp
bmRleCBmNmM4OWQ5OTE5YTFiMWUzZTMyNjAyNTllN2FiNjk5NGE1MTY5MDMyLi42YTc0YWJjN2U3
NzQyZDIyNjhhZDg0M2RmYTMyMjBmZTlkZjM4YWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02MDUsNiArNjA1LDEyIEBAIEpT
VmFsdWUgSlNET01XaW5kb3c6OnNoYXJlZFdvcmtlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAj
aWYgRU5BQkxFKFdFQl9BVURJTykKIEpTVmFsdWUgSlNET01XaW5kb3c6OndlYmtpdEF1ZGlvQ29u
dGV4dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CisgICAgRnJhbWUqIGZyYW1lID0gaW1wbCgp
LT5mcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGZyYW1lLT5zZXR0aW5ncygpOworICAgIGlmICgh
c2V0dGluZ3MgfHwgIXNldHRpbmdzLT53ZWJBdWRpb0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTQXVkaW9Db250
ZXh0Q29uc3RydWN0b3I+KGV4ZWMsIHRoaXMpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggMWY5MzkzZTIzZmNlZTVlMzBhMTZiMTZjYzhjMDNlMjJjYmRjMjE2OC4uOTBlNzg4NDlhYTc3
NTg4ODQ3YzYyYjRmMTIzMTY3YTIyYTA1MmQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDExLTA5LTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBzZXR0aW5ncyB0byBjb250cm9sIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIFdl
YiBBdWRpbyBBUEkgdG8gV2ViS2l0IGFuZCBXZWJLaXQyLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzODIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsaXplIHRoZSB3ZWJBdWRpb0VuYWJsZWQg
cHJlZmVyZW5jZSB0byBOTyBieSBkZWZhdWx0LgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorCiAy
MDExLTA5LTE0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgR2V0IHJpZCBvZiBXZWJDb3JlVmlld0ZhY3RvcnkgYW5kIGl0cyBXZWJWaWV3RmFjdG9yeSBz
dWJjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5k
ZXggMWVlNmE1NTI3M2FiMTBlMjdjZWQzNTc0Yzg1OTljOTRjNDkzOGNjYy4uZjVmMjc2MjBkOWE2
MDYyNmUxYWE0ZTI2OWYzNzlmNjY0ZWU2YmUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zODQsNiArMzg0LDcgQEAgc3RhdGljIFdlYkNhY2hl
TW9kZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
S2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdE1lZGlh
UGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5l
UHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBX
ZWJLaXRXZWJBdWRpb0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogCiAgICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoTG9uZ0xvbmc6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKV0sIFdl
YktpdEFwcGxpY2F0aW9uQ2FjaGVUb3RhbFF1b3RhLAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVy
V2l0aExvbmdMb25nOkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCldLCBXZWJLaXRB
cHBsaWNhdGlvbkNhY2hlRGVmYXVsdE9yaWdpblF1b3RhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA1OGVkZTYz
ZDNmODUwZDRlZDNlMDRhZjU1YmUyNDM4ZmFhZTdlMzguLjRlYTcxZWU1Y2M1OWVmMTk4MWVjNWU4
YjgwNWMxZGE4MzliNGUzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wOS0x
OSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGlu
Z3MgdG8gY29udHJvbCB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBXZWIgQXVkaW8gQVBJIHRvIFdl
YktpdCBhbmQgV2ViS2l0Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY4MzgyCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSB3ZWJBdWRpb0Vu
YWJsZWQgcHJlZmVyZW5jZSBpbiBXZWJLaXQyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaDogQWRk
IFdlYkF1ZGlvRW5hYmxlZCBnZXR0ZXIgYW5kIHNldHRlciBtYWNyby4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0
V2ViQXVkaW9FbmFibGVkKTogQWRkZWQuCisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0V2ViQXVk
aW9FbmFibGVkKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogVXBkYXRlIHRoZSB3ZWJBdWRp
b0VuYWJsZWQgcHJlZmVyZW5jZS4KKwogMjAxMS0wOS0xNCAgQWRhIENoYW4gIDxhZGFjaGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgV0tCdW5kbGVGcmFtZUNvcHlXZWJBcmNoaXZl
KCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9y
ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCA5
Mzg3MzM0ZTFlZTJlODZlMzdjN2QxZmU0Mzk1Nzk5ZGExOWE0N2E2Li40OTM4N2FhNjg3NDhhYzU2
NGQ5NjQwMDQ0YTBjODc1NWZkYjhhMzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmgKQEAgLTkyLDYgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAg
ICAgbWFjcm8oTWVkaWFQbGF5YmFja0FsbG93c0lubGluZSwgbWVkaWFQbGF5YmFja0FsbG93c0lu
bGluZSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3JvKEluc3BlY3RvclN0YXJ0c0F0dGFj
aGVkLCBpbnNwZWN0b3JTdGFydHNBdHRhY2hlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1h
Y3JvKFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0LCBzaG93c1Rvb2xUaXBPdmVyVHJ1bmNh
dGVkVGV4dCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhXZWJBdWRpb0VuYWJsZWQs
IHdlYkF1ZGlvRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBcCiAKICNkZWZpbmUg
Rk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggMmI4ZjZlNDYz
YzMxNDc3MDJmM2U3OWVlNDRkYzA1Mzg3ODQ5YmIwYS4uN2FhZmFmNjI0MDAwNDRiODkyMmI2MGQ0
ZDMzODg1MmNjNTE3ODkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNjExLDMgKzYxMSwxMyBAQCBib29sIFdLUHJlZmVyZW5j
ZXNHZXRTaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUgogewogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zaG93c1Rvb2xU
aXBPdmVyVHJ1bmNhdGVkVGV4dCgpOwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRXZWJBdWRp
b0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQor
eworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFdlYkF1ZGlvRW5hYmxlZChlbmFibGVk
KTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0V2ViQXVkaW9FbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPndlYkF1ZGlvRW5hYmxlZCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmgKaW5kZXggYTMzNjEwOTE3ZDY1ZmFhODIwMjczNzM4ZGFjZmNi
YTY1MDg1YWJlYy4uMzE1YmY2Yjc4MzM3MGU2OGM0Njk1OWRmMjFkYmM5NGMwNWVjYjljNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCkBAIC0x
NjUsNiArMTY1LDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRGdWxsU2NyZWVu
RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmCiBXS19FWFBPUlQgdm9pZCBX
S1ByZWZlcmVuY2VzU2V0QVZGb3VuZGF0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dl
dEFWRm91bmRhdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CiAK
Ky8vIERlZmF1bHRzIHRvIGZhbHNlCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0V2Vi
QXVkaW9FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxl
ZCk7CitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0V2ViQXVkaW9FbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGUyZDY3ZmMxZmYxNmZhMDIzMTI3Nzc3ODY1NzZlYWQwZDQyNDYxNWUuLjkzZGEwNjdiMmVl
MmYxODM2NDYyZTg5NDMwNzA3NzBhZDI2Y2QwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE2MDQsNiArMTYwNCwxMCBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQogICAgIHNldHRpbmdzLT5zZXRVc2VIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2woc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpoaXhpZTc2V2ViU29ja2V0UHJvdG9j
b2xFbmFibGVkS2V5KCkpKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBz
ZXR0aW5ncy0+c2V0V2ViQXVkaW9FbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6d2ViQXVkaW9FbmFibGVkS2V5KCkpKTsKKyNlbmRpZgorCiAgICAgcGxh
dGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZShzdG9yZSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108009</attachid>
            <date>2011-09-20 09:02:56 -0700</date>
            <delta_ts>2011-09-20 10:09:21 -0700</delta_ts>
            <desc>Updated patch to address Darin&apos;s comment about the many lines of code dedicated to null-checks.</desc>
            <filename>bug-68382-20110920090239.patch</filename>
            <type>text/plain</type>
            <size>7577</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ3NjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0YzI5ZmE3ODk4MTIyMzVj
MDVjNTJmOGQyN2ZkM2RhMWMzZWE2YTc1Li45MjdiN2NlYzMzYWUwOGY3N2UxMTM2YWQ3ODgyOGQ1
N2E4ZThiMDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMjAgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIGNv
bnRyb2wgdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgV2ViIEF1ZGlvIEFQSSB0byBXZWJLaXQgYW5k
IFdlYktpdDIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02ODM4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgT25seSBjcmVhdGUgYSBBdWRpb0NvbnRleHQgb2JqZWN0IGlmIHRoZSBXZWIgQXVk
aW8gZmVhdHVyZSBpcyBydW50aW1lLWVuYWJsZWQgaW4gU2V0dGluZ3MuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBhcyB0aGlzIGZlYXR1cmUgaXMgbm90IHlldCBlbmFibGVkIGJ5IGRlZmF1bHQu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6d2Via2l0QXVkaW9Db250ZXh0KToKKwogMjAxMS0wOS0w
OCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIGJpbmRp
bmdzIHRlc3RzIHF1aWV0IGFmdGVyIHI5NDcwMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBmNmM4OWQ5OTE5YTFiMWUzZTMyNjAy
NTllN2FiNjk5NGE1MTY5MDMyLi5iOWIxOWY5NDVkNTAyNWVkZGNlYjZkZmEyYTY3MTQ1MzMyMjQ1
NGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCkBAIC02MDUsNyArNjA1LDkgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6c2hhcmVkV29y
a2VyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogSlNWYWx1
ZSBKU0RPTVdpbmRvdzo6d2Via2l0QXVkaW9Db250ZXh0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
IHsKLSAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNBdWRpb0NvbnRleHRDb25zdHJ1Y3Rv
cj4oZXhlYywgdGhpcyk7CisgICAgaWYgKChGcmFtZSogZnJhbWUgPSBpbXBsKCktPmZyYW1lKCkp
ICYmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBmcmFtZS0+c2V0dGluZ3MoKSkgJiYgc2V0dGluZ3Mt
PndlYkF1ZGlvRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNB
dWRpb0NvbnRleHRDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7CisgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDRhZGZiNTYyYTU1YzVlOGRm
NzE1OWMwZTUxYzZhOWIwOGUzNjEzOTYuLjQ4ZGYxNzFkNDgwMjZiYjJkMTQxMzAyMjczMTQ4YTJj
NGI2YmFiNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wOS0yMCAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGluZ3Mg
dG8gY29udHJvbCB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBXZWIgQXVkaW8gQVBJIHRvIFdlYktp
dCBhbmQgV2ViS2l0Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY4MzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW5pdGlhbGl6ZSB0aGUgd2ViQXVkaW9FbmFibGVkIHByZWZlcmVuY2UgdG8gTk8gYnkg
ZGVmYXVsdC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAg
ICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKwogMjAxMS0wOS0wNyAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjk0NjI3IGFuZCByOTQ2MzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAxZWU2YTU1MjczYWIxMGUyN2NlZDM1NzRjODU5OWM5
NGM0OTM4Y2NjLi5mNWYyNzYyMGQ5YTYwNjI2ZTFhYTRlMjY5ZjM3OWY2NjRlZTZiZTNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTM4NCw2ICsz
ODQsNyBAQCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1bmRsZSh2b2lk
KQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEhpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
Qm9vbDpOT10sICAgV2ViS2l0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmVQcmVmZXJl
bmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdE1l
ZGlhUGxheWJhY2tBbGxvd3NJbmxpbmVQcmVmZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFdlYkF1ZGlvRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhMb25nTG9uZzpBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6bm9RdW90YSgpXSwgV2ViS2l0QXBwbGljYXRpb25DYWNoZVRvdGFsUXVvdGEsCiAg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoTG9uZ0xvbmc6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6Om5vUXVvdGEoKV0sIFdlYktpdEFwcGxpY2F0aW9uQ2FjaGVEZWZhdWx0T3JpZ2luUXVvdGEs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMTM4OTdmNDdmMTMyZTU3MjZmYTVjMDlmMTFhMzllYTI5ZmI1MmZhYS4u
MDJlOGZlNDJjM2I1MDE4MTU1ZGExZjZlZDRjNjE1MmQ1MzBhZTliNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDIyIEBACiAyMDExLTA5LTIwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byBjb250cm9sIHRoZSBhdmFpbGFiaWxpdHkgb2Yg
dGhlIFdlYiBBdWRpbyBBUEkgdG8gV2ViS2l0IGFuZCBXZWJLaXQyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzODIKKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgdGhlIHdlYkF1ZGlvRW5hYmxlZCBwcmVmZXJlbmNlIGluIFdlYktpdDIuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXNTdG9yZS5oOiBBZGQgV2ViQXVkaW9FbmFibGVkIGdldHRlciBhbmQgc2V0dGVy
IG1hY3JvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAg
ICAgICAgKFdLUHJlZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNHZXRXZWJBdWRpb0VuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMpOiBVcGRhdGUgdGhlIHdlYkF1ZGlvRW5hYmxlZCBwcmVmZXJlbmNlLgorCisyMDExLTA5LTIw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCiAgICAgICAgIFJFR1JFU1NJT046
IENsaWNrVG9GbGFzaCBIVE1MNSBwbGF5ZXIgZG9lc24ndCBkaXNhYmxlIHNjcmVlbiBkaW1taW5n
IHdoZW4gZnVsbCBzY3JlZW4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY1MDYxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNT
dG9yZS5oCmluZGV4IDkzODczMzRlMWVlMmU4NmUzN2M3ZDFmZTQzOTU3OTlkYTE5YTQ3YTYuLjQ5
Mzg3YWE2ODc0OGFjNTY0ZDk2NDAwNDRhMGM4NzU1ZmRiOGEzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAtOTIsNiArOTIsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKICAgICBtYWNybyhNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lLCBtZWRpYVBs
YXliYWNrQWxsb3dzSW5saW5lLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oSW5zcGVj
dG9yU3RhcnRzQXR0YWNoZWQsIGluc3BlY3RvclN0YXJ0c0F0dGFjaGVkLCBCb29sLCBib29sLCB0
cnVlKSBcCiAgICAgbWFjcm8oU2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQsIHNob3dzVG9v
bFRpcE92ZXJUcnVuY2F0ZWRUZXh0LCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFdl
YkF1ZGlvRW5hYmxlZCwgd2ViQXVkaW9FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAg
IFwKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApp
bmRleCAyYjhmNmU0NjNjMzE0NzcwMmYzZTc5ZWU0NGRjMDUzODc4NDliYjBhLi43YWFmYWY2MjQw
MDA0NGI4OTIyYjYwZDRkMzM4ODUyY2M1MTc4OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC02MTEsMyArNjExLDEzIEBAIGJv
b2wgV0tQcmVmZXJlbmNlc0dldFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSCiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPnNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0KCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJl
bmNlc1NldFdlYkF1ZGlvRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBi
b29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0V2ViQXVkaW9F
bmFibGVkKGVuYWJsZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdWRpb0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+d2ViQXVkaW9FbmFibGVkKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAppbmRleCBhMzM2MTA5MTdkNjVmYWE4
MjAyNzM3MzhkYWNmY2JhNjUwODVhYmVjLi4zMTViZjZiNzgzMzcwZTY4YzQ2OTU5ZGYyMWRiYzk0
YzA1ZWNiOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmgKQEAgLTE2NSw2ICsxNjUsMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNl
c0dldEZ1bGxTY3JlZW5FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYKIFdL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRBVkZvdW5kYXRpb25FbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgYm9vbCBX
S1ByZWZlcmVuY2VzR2V0QVZGb3VuZGF0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmKTsKIAorLy8gRGVmYXVsdHMgdG8gZmFsc2UKK1dLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBlbmFibGVkKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdWRp
b0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CisKICNpZmRlZiBfX2Nw
bHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZjM0NmQxM2IyNDI2ZDE1ZjU3Mzg1NzBkMjU1MTliNTQ0Zjc0NzRk
Zi4uMjY3ZGE0ZjdkN2IzMTk3OWRmMWY1NzU1ODhhNjQzZGE2NTQ2NTU3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTYxMyw2ICsxNjEz
LDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3MtPnNldFVzZUhpeGllNzZXZWJTb2NrZXRQcm90
b2NvbChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmhpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRLZXkoKSkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VC
X0FVRElPKQorICAgIHNldHRpbmdzLT5zZXRXZWJBdWRpb0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp3ZWJBdWRpb0VuYWJsZWRLZXkoKSkpOworI2Vu
ZGlmCisKICAgICBwbGF0Zm9ybVByZWZlcmVuY2VzRGlkQ2hhbmdlKHN0b3JlKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108015</attachid>
            <date>2011-09-20 10:16:48 -0700</date>
            <delta_ts>2011-09-20 10:20:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68382-20110920101647.patch</filename>
            <type>text/plain</type>
            <size>7553</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU0NzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzYzMxMDg1YzMxODIxMDU5
MmRjMWUwY2Y0NDNmNTg3OTYxY2UzZjdiLi4xMTEyM2U1NmJkMDg5ZjhkZTdmYTVhMzY1ZmNlNGMw
MGE2YmIzZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTEtMDktMTkgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIGNv
bnRyb2wgdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgV2ViIEF1ZGlvIEFQSSB0byBXZWJLaXQgYW5k
IFdlYktpdDIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02ODM4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgT25seSBjcmVhdGUgYSBBdWRpb0NvbnRleHQgb2JqZWN0IGlmIHRoZSBXZWIgQXVk
aW8gZmVhdHVyZSBpcyBydW50aW1lLWVuYWJsZWQgaW4gU2V0dGluZ3MuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBhcyB0aGlzIGZlYXR1cmUgaXMgbm90IHlldCBlbmFibGVkIGJ5IGRlZmF1bHQu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6d2Via2l0QXVkaW9Db250ZXh0KToKKworMjAxMS0wOS0x
OSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwogICAgICAgICBGaXggY2xhbmcg
Y29tcGlsZSBlcnJvcnMgaW4gV2ViIEF1ZGlvCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02ODM4NAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggODQyNjExYzliMTU2NTg2YzhmM2M3MWU0
OTljNDcwMzgyNzE5OGQwYS4uMjljMGZkZmM1MjM3MmUxNDJiMWVmMzJhNTJhMGQ1ZjMwN2EyNjE3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcApAQCAtNjA2LDcgKzYwNiwxMSBAQCBKU1ZhbHVlIEpTRE9NV2luZG93OjpzaGFyZWRXb3Jr
ZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiBKU1ZhbHVl
IEpTRE9NV2luZG93Ojp3ZWJraXRBdWRpb0NvbnRleHQoRXhlY1N0YXRlKiBleGVjKSBjb25zdAog
ewotICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU0F1ZGlvQ29udGV4dENvbnN0cnVjdG9y
PihleGVjLCB0aGlzKTsKKyAgICBGcmFtZSogZnJhbWUgPSBpbXBsKCktPmZyYW1lKCk7CisgICAg
U2V0dGluZ3MqIHNldHRpbmdzID0gZnJhbWUgPyBmcmFtZS0+c2V0dGluZ3MoKSA6IDA7CisgICAg
aWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT53ZWJBdWRpb0VuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTQXVkaW9Db250ZXh0Q29uc3RydWN0b3I+KGV4ZWMsIHRo
aXMpOworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwppbmRleCBmOGUyYmQ3ZjUzOWViMzg4MTdjZTNlNTU2MTQ3MDRkMTA0ODY4MmMzLi5mMTk1YzFh
NzQxYTJhMzQ3NzZmZGM1MjhhMzJmY2JlYTgzMDkyZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTEtMDktMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIGNvbnRyb2wgdGhlIGF2YWlsYWJpbGl0eSBvZiB0
aGUgV2ViIEF1ZGlvIEFQSSB0byBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWxpemUgdGhlIHdlYkF1ZGlvRW5h
YmxlZCBwcmVmZXJlbmNlIHRvIE5PIGJ5IGRlZmF1bHQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6
CisKIDIwMTEtMDktMTkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgdGhlIGxhc3QgcmVtYWlucyBvZiB2aWV3bGVzcyBXZWJLaXQxCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA5MWNhZDE2NDNk
NDYyODdjODRhZjJiMTRhNzYxZGVlNDI0ZDYzYzVlLi43YTE2YzRmYTI5YmU1YzM3YzQ1OTA5MWIw
ZGZjNjcxMDc1NTk4OTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KQEAgLTM4NCw2ICszODQsNyBAQCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNoZU1v
ZGVsRm9yTWFpbkJ1bmRsZSh2b2lkKQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6
WUVTXSwgIFdlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRLZXksCiAgICAgICAg
IFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0TWVkaWFQbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmVQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEJvb2w6WUVTXSwgIFdlYktpdE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmVQcmVmZXJlbmNlS2V5
LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFdlYkF1ZGlv
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhMb25n
TG9uZzpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9RdW90YSgpXSwgV2ViS2l0QXBwbGljYXRp
b25DYWNoZVRvdGFsUXVvdGEsCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoTG9uZ0xvbmc6
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKV0sIFdlYktpdEFwcGxpY2F0aW9uQ2Fj
aGVEZWZhdWx0T3JpZ2luUXVvdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODQ4ZGNhYjUxZTViYjg2YzE3ZTNk
MTU5YWQ0YWU5YTlmY2QxYjcwNi4uN2NlZWE0ZDFjNjk2NGIwNzg0NTAwMjcxMWFmYTE2OGY3NGY0
MjMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA5LTE5ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byBjb250cm9s
IHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIFdlYiBBdWRpbyBBUEkgdG8gV2ViS2l0IGFuZCBXZWJL
aXQyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njgz
ODIKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIHdlYkF1ZGlvRW5hYmxlZCBwcmVmZXJl
bmNlIGluIFdlYktpdDIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOiBBZGQgV2ViQXVkaW9FbmFi
bGVkIGdldHRlciBhbmQgc2V0dGVyIG1hY3JvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJs
ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRXZWJBdWRpb0VuYWJsZWQpOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOiBVcGRhdGUgdGhlIHdlYkF1ZGlvRW5hYmxlZCBwcmVm
ZXJlbmNlLgorCiAyMDExLTA5LTE5ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVu
Ym9zc2Eub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBNYWtlIGxvYWRpbmcgZXJyb3JzIEFQSSBl
YXNpZXIgdG8gdXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3Jl
LmgKaW5kZXggMTZjNTFlZTVjOTg1NGU2Yjg5MTQzMjZjNmM4ZWFkMWUxMmQ3NjhjNy4uMmFjOWFk
NzUzYmJkNjZmN2QxZjY0MzY5YWQ2MjZmZDgwZmMwZWM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCkBAIC05Myw2ICs5Myw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogICAgIG1hY3JvKEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkLCBpbnNwZWN0b3JTdGFy
dHNBdHRhY2hlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3JvKFNob3dzVG9vbFRpcE92
ZXJUcnVuY2F0ZWRUZXh0LCBzaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCwgQm9vbCwgYm9v
bCwgZmFsc2UpIFwKICAgICBtYWNybyhNb2NrU2Nyb2xsYmFyc0VuYWJsZWQsIG1vY2tTY3JvbGxi
YXJzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhXZWJBdWRpb0VuYWJs
ZWQsIHdlYkF1ZGlvRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBcCiAKICNkZWZp
bmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggODIyY2I1
NDU2MGEyZTQ3OWI0OWJhOTQwOGE4ZmQ3Yzk1ZmIyYzdlNS4uZDIxNThjZTM2ZTIwODQ2ODY0YTM4
N2RkYjc0YTdjMGY5NzdlYzg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNjIxLDMgKzYyMSwxMyBAQCBib29sIFdLUHJlZmVy
ZW5jZXNHZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+bW9ja1Njcm9sbGJh
cnNFbmFibGVkKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1ZGlvRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7CisgICAgdG9J
bXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0V2ViQXVkaW9FbmFibGVkKGVuYWJsZWQpOworfQorCiti
b29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdWRpb0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+d2ViQXVk
aW9FbmFibGVkKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuaAppbmRleCBhMzM2MTA5MTdkNjVmYWE4MjAyNzM3MzhkYWNmY2JhNjUwODVhYmVj
Li4zMTViZjZiNzgzMzcwZTY4YzQ2OTU5ZGYyMWRiYzk0YzA1ZWNiOWM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKQEAgLTE2NSw2ICsxNjUs
MTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEZ1bGxTY3JlZW5FbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5j
ZXNTZXRBVkZvdW5kYXRpb25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYs
IGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0QVZGb3VuZGF0
aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVmYXVs
dHMgdG8gZmFsc2UKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsKK1dLX0VY
UE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdWRpb0VuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZik7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTI1NzY2
M2JmNWU3NzIyZmE5YTQ1YjVlODAzY2ZlN2NkMTEyNGM1OC4uMTljYjY4NDg2M2MxMDY1MGZhNTQ1
MzY4YWJlYjI1YmEwNDEyOGQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtMTYwNSw2ICsxNjA1LDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0
dGluZ3MtPnNldFVzZUhpeGllNzZXZWJTb2NrZXRQcm90b2NvbChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRL
ZXkoKSkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHNldHRpbmdzLT5z
ZXRXZWJBdWRpb0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5Ojp3ZWJBdWRpb0VuYWJsZWRLZXkoKSkpOworI2VuZGlmCisKICAgICBwbGF0Zm9ybVByZWZl
cmVuY2VzRGlkQ2hhbmdlKHN0b3JlKTsKIH0KIAo=
</data>
<flag name="review"
          id="104872"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>