<?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>76723</bug_id>
          
          <creation_ts>2012-01-20 11:59:11 -0800</creation_ts>
          <short_desc>Switch indexeddb to use supplemental IDL for DOMWindow</short_desc>
          <delta_ts>2012-02-23 20:56:17 -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>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>
          
          <blocked>79327</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Mark Pilgrim (Google)">pilgrim</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>539670</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-01-20 11:59:11 -0800</bug_when>
    <thetext>Switch indexeddb to use supplemental IDL for DOMWindow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539952</commentid>
    <comment_count>1</comment_count>
      <attachid>123418</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-01-20 17:27:51 -0800</bug_when>
    <thetext>Created attachment 123418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539954</commentid>
    <comment_count>2</comment_count>
      <attachid>123418</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-20 17:32:03 -0800</bug_when>
    <thetext>Comment on attachment 123418
Patch

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

&gt; Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.cpp:62
&gt; +       window-&gt;setIDBFactory(IDBFactory::create(page-&gt;group().idbFactory()));

I think this indent is off by one.

&gt; Source/WebCore/page/DOMWindow.cpp:753
&gt; +PassRefPtr&lt;IDBFactory&gt; DOMWindow::getIDBFactory()

Rather than returning a PassRefPtr&lt;IDBFactory&gt; here, we should just return a raw pointer.  We use PassRefPtr when we&apos;re passing ownership of an object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539970</commentid>
    <comment_count>3</comment_count>
      <attachid>123418</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-20 17:59:08 -0800</bug_when>
    <thetext>Comment on attachment 123418
Patch

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

&gt; Source/WebCore/page/DOMWindow.h:416
&gt; +        PassRefPtr&lt;IDBFactory&gt; getIDBFactory();

Another nit: this function should be called idbFactory().  WebKit doesn&apos;t use the &quot;get&quot; prefix for getters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539976</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-01-20 18:04:17 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebCore/page/DOMWindow.cpp:753
&gt; &gt; +PassRefPtr&lt;IDBFactory&gt; DOMWindow::getIDBFactory()
&gt; 
&gt; Rather than returning a PassRefPtr&lt;IDBFactory&gt; here, we should just return a raw pointer.  We use PassRefPtr when we&apos;re passing ownership of an object.

But IDBFactory::create(page-&gt;group().idbFactory()) is a PassRefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539977</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-20 18:06:57 -0800</bug_when>
    <thetext>&gt; But IDBFactory::create(page-&gt;group().idbFactory()) is a PassRefPtr.

Sure, but that gets given to the setter, which should take a PassRefPtr (since it grabs a reference).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539978</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-20 18:10:16 -0800</bug_when>
    <thetext>http://www.webkit.org/coding/RefPtr.html might be worth a read if you haven&apos;t seen it before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540007</commentid>
    <comment_count>7</comment_count>
      <attachid>123426</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-01-20 18:54:36 -0800</bug_when>
    <thetext>Created attachment 123426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540010</commentid>
    <comment_count>8</comment_count>
      <attachid>123426</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-20 18:57:40 -0800</bug_when>
    <thetext>Comment on attachment 123426
Patch

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

&gt; Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.cpp:52
&gt; +    Document* document = window-&gt;document();
&gt; +    if (!document)
&gt; +        return 0;

We can probably remove this check, but that&apos;s something for a later patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540054</commentid>
    <comment_count>9</comment_count>
      <attachid>123426</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-20 22:07:04 -0800</bug_when>
    <thetext>Comment on attachment 123426
Patch

Clearing flags on attachment: 123426

Committed r105569: &lt;http://trac.webkit.org/changeset/105569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540055</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-20 22:07:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123418</attachid>
            <date>2012-01-20 17:27:51 -0800</date>
            <delta_ts>2012-01-20 18:54:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76723-20120120202739.patch</filename>
            <type>text/plain</type>
            <size>13647</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTIwICBNYXJrIFBp
bGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBTd2l0Y2ggaW5kZXhlZGRi
IHRvIHVzZSBzdXBwbGVtZW50YWwgSURMIGZvciBET01XaW5kb3cKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHJlcXVpcmVkLCBhbGwg
ZXhpc3RpbmcgdGVzdHMgcGFzcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2Uu
Y3BwOiBBZGRlZC4gd2Via2l0SW5kZXhlZERCKCkgbWV0aG9kIHByZXZpb3VzbHkgaW4gRE9NV2lu
ZG93LmNwcAorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93SW5kZXhlZERhdGFiYXNlOjpET01X
aW5kb3dJbmRleGVkRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlOjp+RE9NV2luZG93SW5kZXhlZERhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6d2Via2l0SW5kZXhlZERCKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbDogQWRk
ZWQuIGF0dHJpYnV0ZXMgcHJldmlvdXNseSBpbiBET01XaW5kb3cuaWRsCisgICAgICAgICogV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXA6IGFkZCBNb2R1bGVzL2luZGV4ZWRkYi8gZGlyZWN0b3J5Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBhZGQgTW9kdWxlcy9pbmRleGVkZGIvKgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmNwcDogcmVtb3ZlIHdlYmtpdEluZGV4ZWREQigpIG1ldGhvZCwgYWRk
IGFjY2Vzc29yIG1ldGhvZHMgZm9yIG1faWRiRmFjdG9yeQorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjpnZXRJREJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0
SURCRmFjdG9yeSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDEtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MzI4Njg0PiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzY0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CShyZXZpc2lvbiAxMDU1NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTExNDgsNiArMTE0OCw3IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWQuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExp
c3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5p
ZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW50ZW50cy9ET01XaW5kb3dJbnRlbnRz
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvaW50ZW50cy9JbnRlbnRSZXN1bHRDYWxsYmFjay5pZGwnLApAQCAtMTcw
MSw2ICsxNzAyLDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3Qu
aCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwJywK
ICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oJywKKyAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwJywK
KyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2Uu
aCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW50ZW50cy9JbnRlbnQuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRl
bnRzL0ludGVudFJlcXVlc3QuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRv
d0luZGV4ZWREYXRhYmFzZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAi
RE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJJREJGYWN0b3J5
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93SW5k
ZXhlZERhdGFiYXNlOjpET01XaW5kb3dJbmRleGVkRGF0YWJhc2UoKQoreworfQorCitET01XaW5k
b3dJbmRleGVkRGF0YWJhc2U6On5ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UoKQoreworfQorCitJ
REJGYWN0b3J5KiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2U6OndlYmtpdEluZGV4ZWREQihET01X
aW5kb3cqIHdpbmRvdykKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB3aW5kb3ctPmRvY3Vt
ZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBQYWdl
KiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVy
biAwOworCisgICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0
YWJhc2UoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIXdpbmRvdy0+Z2V0SURCRmFj
dG9yeSgpICYmIHdpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAg
d2luZG93LT5zZXRJREJGYWN0b3J5KElEQkZhY3Rvcnk6OmNyZWF0ZShwYWdlLT5ncm91cCgpLmlk
YkZhY3RvcnkoKSkpOworICAgIHJldHVybiB3aW5kb3ctPmdldElEQkZhY3RvcnkoKS5nZXQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5k
b3dJbmRleGVkRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERP
TVdpbmRvd0luZGV4ZWREYXRhYmFzZV9oCisjZGVmaW5lIERPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZV9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBJREJGYWN0b3J5OworY2xhc3MgRE9NV2luZG93OworCitjbGFzcyBET01XaW5k
b3dJbmRleGVkRGF0YWJhc2UgeworcHVibGljOgorICAgIHN0YXRpYyBJREJGYWN0b3J5KiB3ZWJr
aXRJbmRleGVkREIoRE9NV2luZG93Kik7CisKK3ByaXZhdGU6CisgICAgRE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlKCk7CisgICAgfkRPTVdpbmRvd0luZGV4ZWREYXRhYmFzZSgpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CisKKyNlbmRpZiAvLyBET01XaW5kb3dJbmRleGVkRGF0YWJhc2VfaApJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRl
eGVkRGF0YWJhc2UuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgd2luZG93IHsKKwor
ICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCisg
ICAgICAgIFN1cHBsZW1lbnRhbD1ET01XaW5kb3cKKyAgICBdIERPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJGYWN0b3J5IHdlYmtpdEluZGV4
ZWREQjsKKworICAgICAgICBhdHRyaWJ1dGUgSURCQ3Vyc29yQ29uc3RydWN0b3Igd2Via2l0SURC
Q3Vyc29yOworICAgICAgICBhdHRyaWJ1dGUgSURCRGF0YWJhc2VDb25zdHJ1Y3RvciB3ZWJraXRJ
REJEYXRhYmFzZTsKKyAgICAgICAgYXR0cmlidXRlIElEQkRhdGFiYXNlRXJyb3JDb25zdHJ1Y3Rv
ciB3ZWJraXRJREJEYXRhYmFzZUVycm9yOworICAgICAgICBhdHRyaWJ1dGUgSURCRGF0YWJhc2VF
eGNlcHRpb25Db25zdHJ1Y3RvciB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsKKyAgICAgICAg
YXR0cmlidXRlIElEQkZhY3RvcnlDb25zdHJ1Y3RvciB3ZWJraXRJREJGYWN0b3J5OworICAgICAg
ICBhdHRyaWJ1dGUgSURCSW5kZXhDb25zdHJ1Y3RvciB3ZWJraXRJREJJbmRleDsKKyAgICAgICAg
YXR0cmlidXRlIElEQktleVJhbmdlQ29uc3RydWN0b3Igd2Via2l0SURCS2V5UmFuZ2U7CisgICAg
ICAgIGF0dHJpYnV0ZSBJREJPYmplY3RTdG9yZUNvbnN0cnVjdG9yIHdlYmtpdElEQk9iamVjdFN0
b3JlOworICAgICAgICBhdHRyaWJ1dGUgSURCUmVxdWVzdENvbnN0cnVjdG9yIHdlYmtpdElEQlJl
cXVlc3Q7CisgICAgICAgIGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbkNvbnN0cnVjdG9yIHdlYmtp
dElEQlRyYW5zYWN0aW9uOworICAgIH07CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiAxMDU1NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogICAg
ICAgJy4uLy4uJywKICAgICAgICcuLi9Nb2R1bGVzL2dhbWVwYWQnLAogICAgICAgJy4uL01vZHVs
ZXMvaW50ZW50cycsCisgICAgICAnLi4vTW9kdWxlcy9pbmRleGVkZGInLAogICAgICAgJy4uL2Fj
Y2Vzc2liaWxpdHknLAogICAgICAgJy4uL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0nLAogICAgICAg
Jy4uL2JpbmRpbmdzJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9u
IDEwNTU1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzUwLDIyICs3NTAsMTQgQEAgdm9pZCBET01XaW5kb3c6OnJlc2V0R2VvbG9jYXRp
b24oKQogfQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1JREJGYWN0b3J5KiBET01X
aW5kb3c6OndlYmtpdEluZGV4ZWREQigpIGNvbnN0CitQYXNzUmVmUHRyPElEQkZhY3Rvcnk+IERP
TVdpbmRvdzo6Z2V0SURCRmFjdG9yeSgpCiB7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhp
cy0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm4gMDsKLQot
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoIWRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5jYW5B
Y2Nlc3NEYXRhYmFzZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9pZGJGYWN0
b3J5OworfQogCi0gICAgaWYgKCFtX2lkYkZhY3RvcnkgJiYgaXNDdXJyZW50bHlEaXNwbGF5ZWRJ
bkZyYW1lKCkpCi0gICAgICAgIG1faWRiRmFjdG9yeSA9IElEQkZhY3Rvcnk6OmNyZWF0ZShwYWdl
LT5ncm91cCgpLmlkYkZhY3RvcnkoKSk7Ci0gICAgcmV0dXJuIG1faWRiRmFjdG9yeS5nZXQoKTsK
K3ZvaWQgRE9NV2luZG93OjpzZXRJREJGYWN0b3J5KFBhc3NSZWZQdHI8SURCRmFjdG9yeT4gaWRi
RmFjdG9yeSkKK3sKKyAgICBtX2lkYkZhY3RvcnkgPSBpZGJGYWN0b3J5OwogfQogI2VuZGlmCiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24gMTA1NTU2KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMzcyLDEwICszNzIs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgd2Via2l0UmVzb2x2ZUxvY2Fs
RmlsZVN5c3RlbVVSTChjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+LCBQ
YXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCi0gICAgICAgIElEQkZhY3RvcnkqIHdlYmtpdEluZGV4ZWREQigpIGNvbnN0Owot
I2VuZGlmCi0KICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAgICAgTm90aWZpY2F0aW9u
Q2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3Q7CiAgICAgICAgIC8vIFJlbmRlcnMg
d2Via2l0Tm90aWZpY2F0aW9ucyBvYmplY3Qgc2FmZWx5IGlub3BlcmFibGUsIGRpc2Nvbm5lY3Rz
CkBAIC00MTYsNiArNDEyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gYnkg
dGhlIGRvY3VtZW50IHRoYXQgaXMgY3VycmVudGx5IGFjdGl2ZSBpbiBtX2ZyYW1lLgogICAgICAg
ICBib29sIGlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpIGNvbnN0OwogCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgICAgIFBhc3NSZWZQdHI8SURCRmFjdG9yeT4gZ2V0SURC
RmFjdG9yeSgpOworICAgICAgICB2b2lkIHNldElEQkZhY3RvcnkoUGFzc1JlZlB0cjxJREJGYWN0
b3J5Pik7CisjZW5kaWYKKwogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IERPTVdpbmRv
dyhGcmFtZSopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAx
MDU1NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTE3MiwyMCArMTcyLDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAjaWYgZGVmaW5lZChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX05PVElGSUNBVElPTlMKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0
Tm90aWZpY2F0aW9uczsKICNlbmRpZgotI2lmIGRlZmluZWQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICYmIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBJREJGYWN0b3J5IHdlYmtpdEluZGV4ZWREQjsKLQotICAgICAgICBhdHRyaWJ1dGUgSURCQ3Vy
c29yQ29uc3RydWN0b3Igd2Via2l0SURCQ3Vyc29yOwotICAgICAgICBhdHRyaWJ1dGUgSURCRGF0
YWJhc2VDb25zdHJ1Y3RvciB3ZWJraXRJREJEYXRhYmFzZTsKLSAgICAgICAgYXR0cmlidXRlIElE
QkRhdGFiYXNlRXJyb3JDb25zdHJ1Y3RvciB3ZWJraXRJREJEYXRhYmFzZUVycm9yOwotICAgICAg
ICBhdHRyaWJ1dGUgSURCRGF0YWJhc2VFeGNlcHRpb25Db25zdHJ1Y3RvciB3ZWJraXRJREJEYXRh
YmFzZUV4Y2VwdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIElEQkZhY3RvcnlDb25zdHJ1Y3RvciB3
ZWJraXRJREJGYWN0b3J5OwotICAgICAgICBhdHRyaWJ1dGUgSURCSW5kZXhDb25zdHJ1Y3RvciB3
ZWJraXRJREJJbmRleDsKLSAgICAgICAgYXR0cmlidXRlIElEQktleVJhbmdlQ29uc3RydWN0b3Ig
d2Via2l0SURCS2V5UmFuZ2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBJREJPYmplY3RTdG9yZUNvbnN0
cnVjdG9yIHdlYmtpdElEQk9iamVjdFN0b3JlOwotICAgICAgICBhdHRyaWJ1dGUgSURCUmVxdWVz
dENvbnN0cnVjdG9yIHdlYmtpdElEQlJlcXVlc3Q7Ci0gICAgICAgIGF0dHJpYnV0ZSBJREJUcmFu
c2FjdGlvbkNvbnN0cnVjdG9yIHdlYmtpdElEQlRyYW5zYWN0aW9uOwotI2VuZGlmCiAjaWYgZGVm
aW5lZChFTkFCTEVfRklMRV9TWVNURU0pICYmIEVOQUJMRV9GSUxFX1NZU1RFTQogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBURU1QT1JBUlkgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBQRVJTSVNURU5UID0gMTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123426</attachid>
            <date>2012-01-20 18:54:36 -0800</date>
            <delta_ts>2012-01-20 22:07:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76723-20120120215424.patch</filename>
            <type>text/plain</type>
            <size>13568</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTIwICBNYXJrIFBp
bGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBTd2l0Y2ggaW5kZXhlZGRi
IHRvIHVzZSBzdXBwbGVtZW50YWwgSURMIGZvciBET01XaW5kb3cKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHJlcXVpcmVkLCBhbGwg
ZXhpc3RpbmcgdGVzdHMgcGFzcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2Uu
Y3BwOiBBZGRlZC4gd2Via2l0SW5kZXhlZERCKCkgbWV0aG9kIHByZXZpb3VzbHkgaW4gRE9NV2lu
ZG93LmNwcAorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93SW5kZXhlZERhdGFiYXNlOjpET01X
aW5kb3dJbmRleGVkRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlOjp+RE9NV2luZG93SW5kZXhlZERhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6d2Via2l0SW5kZXhlZERCKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbDogQWRk
ZWQuIGF0dHJpYnV0ZXMgcHJldmlvdXNseSBpbiBET01XaW5kb3cuaWRsCisgICAgICAgICogV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXA6IGFkZCBNb2R1bGVzL2luZGV4ZWRkYi8gZGlyZWN0b3J5Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBhZGQgTW9kdWxlcy9pbmRleGVkZGIvKgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmNwcDogcmVtb3ZlIHdlYmtpdEluZGV4ZWREQigpIG1ldGhvZCwgYWRk
IGFjY2Vzc29yIG1ldGhvZHMgZm9yIG1faWRiRmFjdG9yeQorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjpnZXRJREJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0
SURCRmFjdG9yeSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDEtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MzI4Njg0PiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzY0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CShyZXZpc2lvbiAxMDU1NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTExNDgsNiArMTE0OCw3IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWQuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExp
c3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5p
ZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW50ZW50cy9ET01XaW5kb3dJbnRlbnRz
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvaW50ZW50cy9JbnRlbnRSZXN1bHRDYWxsYmFjay5pZGwnLApAQCAtMTcw
MSw2ICsxNzAyLDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3Qu
aCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwJywK
ICAgICAgICAgICAgICdNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oJywKKyAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwJywK
KyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2Uu
aCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudC5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW50ZW50cy9JbnRlbnQuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRl
bnRzL0ludGVudFJlcXVlc3QuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRv
d0luZGV4ZWREYXRhYmFzZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAi
RE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJJREJGYWN0b3J5
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93SW5k
ZXhlZERhdGFiYXNlOjpET01XaW5kb3dJbmRleGVkRGF0YWJhc2UoKQoreworfQorCitET01XaW5k
b3dJbmRleGVkRGF0YWJhc2U6On5ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UoKQoreworfQorCitJ
REJGYWN0b3J5KiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2U6OndlYmtpdEluZGV4ZWREQihET01X
aW5kb3cqIHdpbmRvdykKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB3aW5kb3ctPmRvY3Vt
ZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBQYWdl
KiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVy
biAwOworCisgICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0
YWJhc2UoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIXdpbmRvdy0+aWRiRmFjdG9y
eSgpICYmIHdpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHdp
bmRvdy0+c2V0SURCRmFjdG9yeShJREJGYWN0b3J5OjpjcmVhdGUocGFnZS0+Z3JvdXAoKS5pZGJG
YWN0b3J5KCkpKTsKKyAgICByZXR1cm4gd2luZG93LT5pZGJGYWN0b3J5KCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERh
dGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
RE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dJbmRl
eGVkRGF0YWJhc2VfaAorI2RlZmluZSBET01XaW5kb3dJbmRleGVkRGF0YWJhc2VfaAorCisjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
SURCRmFjdG9yeTsKK2NsYXNzIERPTVdpbmRvdzsKKworY2xhc3MgRE9NV2luZG93SW5kZXhlZERh
dGFiYXNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgSURCRmFjdG9yeSogd2Via2l0SW5kZXhlZERC
KERPTVdpbmRvdyopOworCitwcml2YXRlOgorICAgIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZSgp
OworICAgIH5ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UoKTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYg
Ly8gRE9NV2luZG93SW5kZXhlZERhdGFiYXNlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNl
LmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RP
TVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZh
Y2UgWworICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFLAorICAgICAgICBTdXBw
bGVtZW50YWw9RE9NV2luZG93CisgICAgXSBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UgeworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCRmFjdG9yeSB3ZWJraXRJbmRleGVkREI7CisKKyAg
ICAgICAgYXR0cmlidXRlIElEQkN1cnNvckNvbnN0cnVjdG9yIHdlYmtpdElEQkN1cnNvcjsKKyAg
ICAgICAgYXR0cmlidXRlIElEQkRhdGFiYXNlQ29uc3RydWN0b3Igd2Via2l0SURCRGF0YWJhc2U7
CisgICAgICAgIGF0dHJpYnV0ZSBJREJEYXRhYmFzZUVycm9yQ29uc3RydWN0b3Igd2Via2l0SURC
RGF0YWJhc2VFcnJvcjsKKyAgICAgICAgYXR0cmlidXRlIElEQkRhdGFiYXNlRXhjZXB0aW9uQ29u
c3RydWN0b3Igd2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb247CisgICAgICAgIGF0dHJpYnV0ZSBJ
REJGYWN0b3J5Q29uc3RydWN0b3Igd2Via2l0SURCRmFjdG9yeTsKKyAgICAgICAgYXR0cmlidXRl
IElEQkluZGV4Q29uc3RydWN0b3Igd2Via2l0SURCSW5kZXg7CisgICAgICAgIGF0dHJpYnV0ZSBJ
REJLZXlSYW5nZUNvbnN0cnVjdG9yIHdlYmtpdElEQktleVJhbmdlOworICAgICAgICBhdHRyaWJ1
dGUgSURCT2JqZWN0U3RvcmVDb25zdHJ1Y3RvciB3ZWJraXRJREJPYmplY3RTdG9yZTsKKyAgICAg
ICAgYXR0cmlidXRlIElEQlJlcXVlc3RDb25zdHJ1Y3RvciB3ZWJraXRJREJSZXF1ZXN0OworICAg
ICAgICBhdHRyaWJ1dGUgSURCVHJhbnNhY3Rpb25Db25zdHJ1Y3RvciB3ZWJraXRJREJUcmFuc2Fj
dGlvbjsKKyAgICB9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJD
b3JlLmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3Jl
Lmd5cAkocmV2aXNpb24gMTA1NTU2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKICAgICAgICcuLi8uLics
CiAgICAgICAnLi4vTW9kdWxlcy9nYW1lcGFkJywKICAgICAgICcuLi9Nb2R1bGVzL2ludGVudHMn
LAorICAgICAgJy4uL01vZHVsZXMvaW5kZXhlZGRiJywKICAgICAgICcuLi9hY2Nlc3NpYmlsaXR5
JywKICAgICAgICcuLi9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtJywKICAgICAgICcuLi9iaW5kaW5n
cycsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAxMDU1NTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1
MCwyMiArNzUwLDkgQEAgdm9pZCBET01XaW5kb3c6OnJlc2V0R2VvbG9jYXRpb24oKQogfQogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1JREJGYWN0b3J5KiBET01XaW5kb3c6OndlYmtp
dEluZGV4ZWREQigpIGNvbnN0Cit2b2lkIERPTVdpbmRvdzo6c2V0SURCRmFjdG9yeShQYXNzUmVm
UHRyPElEQkZhY3Rvcnk+IGlkYkZhY3RvcnkpCiB7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoIWRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5j
YW5BY2Nlc3NEYXRhYmFzZSgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmICghbV9pZGJG
YWN0b3J5ICYmIGlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQotICAgICAgICBtX2lkYkZh
Y3RvcnkgPSBJREJGYWN0b3J5OjpjcmVhdGUocGFnZS0+Z3JvdXAoKS5pZGJGYWN0b3J5KCkpOwot
ICAgIHJldHVybiBtX2lkYkZhY3RvcnkuZ2V0KCk7CisgICAgbV9pZGJGYWN0b3J5ID0gaWRiRmFj
dG9yeTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9u
IDEwNTU1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3MiwxMCArMzcyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IHdlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwoY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0
cjxFbnRyeUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPik7CiAjZW5kaWYKIAot
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgICAgICBJREJGYWN0b3J5KiB3ZWJraXRJ
bmRleGVkREIoKSBjb25zdDsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAg
ICAgICAgIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0Owog
ICAgICAgICAvLyBSZW5kZXJzIHdlYmtpdE5vdGlmaWNhdGlvbnMgb2JqZWN0IHNhZmVseSBpbm9w
ZXJhYmxlLCBkaXNjb25uZWN0cwpAQCAtNDE2LDYgKzQxMiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIC8vIGJ5IHRoZSBkb2N1bWVudCB0aGF0IGlzIGN1cnJlbnRseSBhY3RpdmUg
aW4gbV9mcmFtZS4KICAgICAgICAgYm9vbCBpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSBj
b25zdDsKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgICAgICBJREJGYWN0b3J5
KiBpZGJGYWN0b3J5KCkgeyByZXR1cm4gbV9pZGJGYWN0b3J5LmdldCgpOyB9CisgICAgICAgIHZv
aWQgc2V0SURCRmFjdG9yeShQYXNzUmVmUHRyPElEQkZhY3Rvcnk+KTsKKyNlbmRpZgorCiAgICAg
cHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgRE9NV2luZG93KEZyYW1lKik7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDEwNTU1NikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDIwICsxNzIsNiBA
QCBtb2R1bGUgd2luZG93IHsKICNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBF
TkFCTEVfTk9USUZJQ0FUSU9OUwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRB
dFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwogI2VuZGlm
Ci0jaWYgZGVmaW5lZChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJiYgRU5BQkxFX0lOREVYRURf
REFUQUJBU0UKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkZhY3Rvcnkgd2Via2l0SW5k
ZXhlZERCOwotCi0gICAgICAgIGF0dHJpYnV0ZSBJREJDdXJzb3JDb25zdHJ1Y3RvciB3ZWJraXRJ
REJDdXJzb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBJREJEYXRhYmFzZUNvbnN0cnVjdG9yIHdlYmtp
dElEQkRhdGFiYXNlOwotICAgICAgICBhdHRyaWJ1dGUgSURCRGF0YWJhc2VFcnJvckNvbnN0cnVj
dG9yIHdlYmtpdElEQkRhdGFiYXNlRXJyb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbkNvbnN0cnVjdG9yIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uOwotICAgICAg
ICBhdHRyaWJ1dGUgSURCRmFjdG9yeUNvbnN0cnVjdG9yIHdlYmtpdElEQkZhY3Rvcnk7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBJREJJbmRleENvbnN0cnVjdG9yIHdlYmtpdElEQkluZGV4OwotICAgICAg
ICBhdHRyaWJ1dGUgSURCS2V5UmFuZ2VDb25zdHJ1Y3RvciB3ZWJraXRJREJLZXlSYW5nZTsKLSAg
ICAgICAgYXR0cmlidXRlIElEQk9iamVjdFN0b3JlQ29uc3RydWN0b3Igd2Via2l0SURCT2JqZWN0
U3RvcmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBJREJSZXF1ZXN0Q29uc3RydWN0b3Igd2Via2l0SURC
UmVxdWVzdDsKLSAgICAgICAgYXR0cmlidXRlIElEQlRyYW5zYWN0aW9uQ29uc3RydWN0b3Igd2Vi
a2l0SURCVHJhbnNhY3Rpb247Ci0jZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJMRV9GSUxFX1NZU1RF
TSkgJiYgRU5BQkxFX0ZJTEVfU1lTVEVNCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRF
TVBPUkFSWSA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBFUlNJU1RFTlQgPSAx
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>