<?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>73280</bug_id>
          
          <creation_ts>2011-11-28 21:38:27 -0800</creation_ts>
          <short_desc>Upstream credential storage files of BlackBerry porting</short_desc>
          <delta_ts>2011-12-01 07:56:33 -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>73144</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Jonathan Dong">jonathan.dong.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dbates</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510468</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2011-11-28 21:38:27 -0800</bug_when>
    <thetext>files: WebCore/platform/network/blackberry/CredentialStorageBlackBerry.(cpp|h),  WebCore/platform/network/blackberry/CredentialBackingStore.(cpp|h)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510469</commentid>
    <comment_count>1</comment_count>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2011-11-28 21:39:40 -0800</bug_when>
    <thetext>WebCore/platform/network/blackberry/CredentialStorageBlackBerry.cpp,  WebCore/platform/network/blackberry/CredentialBackingStore.(cpp|h)

sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510485</commentid>
    <comment_count>2</comment_count>
      <attachid>116891</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2011-11-28 22:03:27 -0800</bug_when>
    <thetext>Created attachment 116891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512344</commentid>
    <comment_count>3</comment_count>
      <attachid>116891</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-11-30 19:08:31 -0800</bug_when>
    <thetext>Comment on attachment 116891
Patch

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

This is an informal review. LGTM, but some minor style issues.

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:35
&gt; +CredentialBackingStore* CredentialBackingStore::instance()
&gt; +{
&gt; +    static CredentialBackingStore *backingStore = 0;

The star in the above line should be near the type.

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:47
&gt; +CredentialBackingStore::CredentialBackingStore()
&gt; +    : m_addStatement(0),
&gt; +    m_updateStatement(0),
&gt; +    m_hasStatement(0),
&gt; +    m_getStatement(0),
&gt; +    m_removeStatement(0)
&gt; +{

comma should be at the beginning of each member variable.

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:103
&gt; +String CredentialBackingStore::encryptedString(const String&amp; plainText) const
&gt; +{
&gt; +    // FIXME: need encrypt plain_text here

Nit: need --&gt; Need

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:110
&gt; +String CredentialBackingStore::decryptedString(const String&amp; cipherText) const
&gt; +{
&gt; +    // FIXME: need decrypt cipher_text here

Ditto.

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.h:36
&gt; +    static CredentialBackingStore* instance();
&gt; +    ~CredentialBackingStore();
&gt; +

Blank line is not necessary.

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.h:39
&gt; +    bool open(const String&amp; dbPath);
&gt; +    void close();
&gt; +

Ditto

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.h:45
&gt; +    Credential getLogin(const ProtectionSpace&amp;);
&gt; +    bool removeLogin(const ProtectionSpace&amp;);
&gt; +

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512375</commentid>
    <comment_count>4</comment_count>
      <attachid>117315</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2011-11-30 19:49:22 -0800</bug_when>
    <thetext>Created attachment 117315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512402</commentid>
    <comment_count>5</comment_count>
      <attachid>117315</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2011-11-30 20:44:07 -0800</bug_when>
    <thetext>Comment on attachment 117315
Patch

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

it looks good.

r- because we need another round to fix the nits.

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:53
&gt; +bool CredentialBackingStore::open(const String&amp; dbPath)

UNUSED_PARAM(dbPath) missing.

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:68
&gt; +bool CredentialBackingStore::addLogin(const KURL&amp; url, const ProtectionSpace&amp; protectionSpace, const Credential&amp; credential)
&gt; +{
&gt; +    notImplemented();
&gt; +    return false;
&gt; +}

ditto

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:74
&gt; +bool CredentialBackingStore::updateLogin(const KURL&amp; url, const ProtectionSpace&amp; protectionSpace, const Credential&amp; credential)
&gt; +{
&gt; +    notImplemented();
&gt; +    return false;
&gt; +}

ditto

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:86
&gt; +Credential CredentialBackingStore::getLogin(const ProtectionSpace&amp; protectionSpace)
&gt; +{
&gt; +    notImplemented();
&gt; +    return Credential();
&gt; +}

ditto

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.cpp:92
&gt; +{
&gt; +    notImplemented();
&gt; +    return false;
&gt; +}

ditto

&gt; Source/WebCore/platform/network/blackberry/CredentialBackingStore.h:55
&gt; +    SQLiteStatement *m_addStatement;
&gt; +    SQLiteStatement *m_updateStatement;
&gt; +    SQLiteStatement *m_hasStatement;
&gt; +    SQLiteStatement *m_getStatement;
&gt; +    SQLiteStatement *m_removeStatement;

* position on the left

&gt; Source/WebCore/platform/network/blackberry/CredentialStorageBlackBerry.cpp:35
&gt; +#else
&gt; +    return Credential();
&gt; +#endif

UNUSED_PARAM needed here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512457</commentid>
    <comment_count>6</comment_count>
      <attachid>117334</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2011-11-30 21:55:27 -0800</bug_when>
    <thetext>Created attachment 117334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512726</commentid>
    <comment_count>7</comment_count>
      <attachid>117334</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-12-01 06:40:37 -0800</bug_when>
    <thetext>Comment on attachment 117334
Patch

Antonio&apos;s nits are fixed, so r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512769</commentid>
    <comment_count>8</comment_count>
      <attachid>117334</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 07:56:28 -0800</bug_when>
    <thetext>Comment on attachment 117334
Patch

Clearing flags on attachment: 117334

Committed r101668: &lt;http://trac.webkit.org/changeset/101668&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512770</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 07:56:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116891</attachid>
            <date>2011-11-28 22:03:27 -0800</date>
            <delta_ts>2011-11-30 19:49:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73280-20111129140325.patch</filename>
            <type>text/plain</type>
            <size>9519</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThhMmFmMWI0ZGRlNjNi
NjVjN2Y4YTQxOTM1MWVlZTE5NmI0MGZmYy4uMWM1ZGM2YTdlN2Y4ZGI2ZDg5NmM5NDljM2YxNmFk
MzBlZTNhMzY0YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDExLTExLTI4ICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
VXBzdHJlYW0gY3JlZGVudGlhbCBzdG9yYWdlIGZpbGVzIG9mIEJsYWNrQmVycnkgcG9ydGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUg
YmFzaWMgc3RydWN0dXJlIG9mIGNsYXNzIENyZWRlbnRpYWxCYWNraW5nU3RvcmUKKyAgICAgICAg
dG8gcGVyc2lzdCB0aGUgY3JlZGVudGlhbCBkYXRhLCBhbmQgZ2VuZXJhdGVkCisgICAgICAgIHBs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsU3RvcmFnZUJsYWNrQmVycnkuY3Bw
LAorICAgICAgICB0byBpbXBsZW1lbnQgQ3JlZGVudGlhbFN0b3JhZ2U6OmdldEZyb21QZXJzaXN0
ZW50U3RvcmFnZQorICAgICAgICBmb3IgQmxhY2tCZXJyeSBwb3J0aW5nLgorICAgICAgICBDb250
cmlidXRlZCBieSBUb3JjaCBUZWFtLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxCYWNraW5nU3RvcmU6OkNyZWRlbnRpYWxCYWNraW5nU3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6fkNyZWRlbnRpYWxCYWNraW5nU3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjphZGRMb2dpbik6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjp1cGRhdGVMb2dpbik6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpoYXNMb2dpbik6CisgICAgICAgIChXZWJD
b3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpnZXRMb2dpbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpyZW1vdmVMb2dpbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpDcmVk
ZW50aWFsQmFja2luZ1N0b3JlOjplbmNyeXB0ZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6ZGVjcnlwdGVkU3RyaW5nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbFN0b3JhZ2VC
bGFja0JlcnJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFn
ZTo6Z2V0RnJvbVBlcnNpc3RlbnRTdG9yYWdlKToKKwogMjAxMS0xMS0yOCAgSmFja3kgSmlhbmcg
IDx6aGFqaWFuZ0ByaW0uY29tPgogCiAgICAgICAgIFVwc3RyZWFtIEJsYWNrQmVycnkgcG9ydGlu
ZyBvZiBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9i
bGFja2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ2NTE5MWQ1N2NmN2JjNDQwZWQ2NzUzOTFlYTJmZTdjMjk4YmY5ZTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3Jl
ZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUKQorCisjaW5jbHVkZSAiQ3JlZGVudGlh
bEJhY2tpbmdTdG9yZS5oIgorCisjaW5jbHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKKyNpbmNs
dWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQcm90
ZWN0aW9uU3BhY2VIYXNoLmgiCisjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworQ3JlZGVudGlhbEJhY2tpbmdTdG9yZSogQ3JlZGVudGlhbEJhY2tp
bmdTdG9yZTo6aW5zdGFuY2UoKQoreworICAgIHN0YXRpYyBDcmVkZW50aWFsQmFja2luZ1N0b3Jl
ICpiYWNraW5nU3RvcmUgPSAwOworICAgIGlmICghYmFja2luZ1N0b3JlKQorICAgICAgICBiYWNr
aW5nU3RvcmUgPSBuZXcgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTsKKyAgICByZXR1cm4gYmFja2lu
Z1N0b3JlOworfQorCitDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpDcmVkZW50aWFsQmFja2luZ1N0
b3JlKCkKKyAgICA6IG1fYWRkU3RhdGVtZW50KDApLAorICAgIG1fdXBkYXRlU3RhdGVtZW50KDAp
LAorICAgIG1faGFzU3RhdGVtZW50KDApLAorICAgIG1fZ2V0U3RhdGVtZW50KDApLAorICAgIG1f
cmVtb3ZlU3RhdGVtZW50KDApCit7Cit9CisKK0NyZWRlbnRpYWxCYWNraW5nU3RvcmU6On5DcmVk
ZW50aWFsQmFja2luZ1N0b3JlKCkKK3sKK30KKworYm9vbCBDcmVkZW50aWFsQmFja2luZ1N0b3Jl
OjpvcGVuKGNvbnN0IFN0cmluZyYgZGJQYXRoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6OmNsb3Nl
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIENyZWRlbnRpYWxCYWNraW5n
U3RvcmU6OmFkZExvZ2luKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBw
cm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQ3JlZGVudGlhbEJh
Y2tpbmdTdG9yZTo6dXBkYXRlTG9naW4oY29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90ZWN0aW9u
U3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBDcmVk
ZW50aWFsQmFja2luZ1N0b3JlOjpoYXNMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3Rl
Y3Rpb25TcGFjZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworQ3JlZGVudGlhbCBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpnZXRMb2dpbihjb25zdCBQ
cm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBDcmVkZW50aWFsKCk7Cit9CisKK2Jvb2wgQ3JlZGVudGlhbEJhY2tpbmdT
dG9yZTo6cmVtb3ZlTG9naW4oY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2Up
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6Y2xlYXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6
ZW5jcnlwdGVkU3RyaW5nKGNvbnN0IFN0cmluZyYgcGxhaW5UZXh0KSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBuZWVkIGVuY3J5cHQgcGxhaW5fdGV4dCBoZXJlCisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gcGxhaW5fdGV4dDsKK30KKworU3RyaW5nIENyZWRlbnRpYWxCYWNraW5n
U3RvcmU6OmRlY3J5cHRlZFN0cmluZyhjb25zdCBTdHJpbmcmIGNpcGhlclRleHQpIGNvbnN0Cit7
CisgICAgLy8gRklYTUU6IG5lZWQgZGVjcnlwdCBjaXBoZXJfdGV4dCBoZXJlCisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gY2lwaGVyX3RleHQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lT
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNzBj
M2JhYmIyZTdkZmJlMWVhNDUxZjcwMzU4MTUxMDc1ODAyMGQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tp
bmdTdG9yZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworI2lmbmRlZiBDcmVkZW50aWFsQmFja2luZ1N0b3JlX2gKKyNkZWZpbmUgQ3Jl
ZGVudGlhbEJhY2tpbmdTdG9yZV9oCisKKyNpZiBFTkFCTEUoQkxBQ0tCRVJSWV9DUkVERU5USUFM
X1BFUlNJU1QpCisKKyNpbmNsdWRlICJDcmVkZW50aWFsLmgiCisjaW5jbHVkZSAiU1FMaXRlRGF0
YWJhc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBLVVJMOworY2xhc3MgUHJv
dGVjdGlvblNwYWNlOworCitjbGFzcyBDcmVkZW50aWFsQmFja2luZ1N0b3JlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZSogaW5zdGFuY2UoKTsKKyAgICB+Q3Jl
ZGVudGlhbEJhY2tpbmdTdG9yZSgpOworCisgICAgYm9vbCBvcGVuKGNvbnN0IFN0cmluZyYgZGJQ
YXRoKTsKKyAgICB2b2lkIGNsb3NlKCk7CisKKyAgICBib29sIGFkZExvZ2luKGNvbnN0IEtVUkwm
LCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50aWFsJik7CisgICAgYm9vbCB1
cGRhdGVMb2dpbihjb25zdCBLVVJMJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgQ3Jl
ZGVudGlhbCYpOworICAgIGJvb2wgaGFzTG9naW4oY29uc3QgUHJvdGVjdGlvblNwYWNlJik7Cisg
ICAgQ3JlZGVudGlhbCBnZXRMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKKyAgICBib29s
IHJlbW92ZUxvZ2luKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOworCisgICAgYm9vbCBjbGVhcigp
OworCitwcml2YXRlOgorICAgIENyZWRlbnRpYWxCYWNraW5nU3RvcmUoKTsKKyAgICBTdHJpbmcg
ZW5jcnlwdGVkU3RyaW5nKGNvbnN0IFN0cmluZyYgcGxhaW5UZXh0KSBjb25zdDsKKyAgICBTdHJp
bmcgZGVjcnlwdGVkU3RyaW5nKGNvbnN0IFN0cmluZyYgY2lwaGVyVGV4dCkgY29uc3Q7CisKKyAg
ICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFiYXNlOworICAgIFNRTGl0ZVN0YXRlbWVudCAqbV9hZGRT
dGF0ZW1lbnQ7CisgICAgU1FMaXRlU3RhdGVtZW50ICptX3VwZGF0ZVN0YXRlbWVudDsKKyAgICBT
UUxpdGVTdGF0ZW1lbnQgKm1faGFzU3RhdGVtZW50OworICAgIFNRTGl0ZVN0YXRlbWVudCAqbV9n
ZXRTdGF0ZW1lbnQ7CisgICAgU1FMaXRlU3RhdGVtZW50ICptX3JlbW92ZVN0YXRlbWVudDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShCTEFDS0JFUlJZ
X0NSRURFTlRJQUxfUEVSU0lTVCkKKworI2VuZGlmIC8vIENyZWRlbnRpYWxCYWNraW5nU3RvcmVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L0NyZWRlbnRpYWxTdG9yYWdlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbFN0b3JhZ2VCbGFja0JlcnJ5LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMWVlMjQ0YWNiYzg0YTdjMDEyNDQ1NTEyMDM4NTM1NTQ2YmRmYWI2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0Ny
ZWRlbnRpYWxTdG9yYWdlQmxhY2tCZXJyeS5jcHAKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKKworI2luY2x1ZGUgIkNyZWRlbnRpYWwuaCIKKyNp
ZiBFTkFCTEUoQkxBQ0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisjaW5jbHVkZSAiQ3JlZGVu
dGlhbEJhY2tpbmdTdG9yZS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3Jl
ZGVudGlhbCBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0RnJvbVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKQoreworI2lmIEVOQUJMRShCTEFDS0JF
UlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKyAgICByZXR1cm4gQ3JlZGVudGlhbEJhY2tpbmdTdG9y
ZTo6aW5zdGFuY2UoKS0+Z2V0TG9naW4ocHJvdGVjdGlvblNwYWNlKTsKKyNlbHNlCisgICAgcmV0
dXJuIENyZWRlbnRpYWwoKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117315</attachid>
            <date>2011-11-30 19:49:22 -0800</date>
            <delta_ts>2011-11-30 21:55:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73280-20111201114920.patch</filename>
            <type>text/plain</type>
            <size>9531</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE3OWIwYzRmZTUxZWEy
YWVhODNjYjRhZTExM2MxNWMwMjczZWFiYi4uZDUzYzA4MWFiYjkzNTU3MTY1M2ZlZTMyZGVkZTBh
NDYyYTg3NjM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDExLTExLTMwICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
VXBzdHJlYW0gY3JlZGVudGlhbCBzdG9yYWdlIGZpbGVzIG9mIEJsYWNrQmVycnkgcG9ydGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUg
YmFzaWMgc3RydWN0dXJlIG9mIGNsYXNzIENyZWRlbnRpYWxCYWNraW5nU3RvcmUKKyAgICAgICAg
dG8gcGVyc2lzdCB0aGUgY3JlZGVudGlhbCBkYXRhLCBhbmQgZ2VuZXJhdGVkCisgICAgICAgIHBs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsU3RvcmFnZUJsYWNrQmVycnkuY3Bw
LAorICAgICAgICB0byBpbXBsZW1lbnQgQ3JlZGVudGlhbFN0b3JhZ2U6OmdldEZyb21QZXJzaXN0
ZW50U3RvcmFnZQorICAgICAgICBmb3IgQmxhY2tCZXJyeSBwb3J0aW5nLgorICAgICAgICBDb250
cmlidXRlZCBieSBUb3JjaCBUZWFtLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxCYWNraW5nU3RvcmU6OkNyZWRlbnRpYWxCYWNraW5nU3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6fkNyZWRlbnRpYWxCYWNraW5nU3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjphZGRMb2dpbik6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjp1cGRhdGVMb2dpbik6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpoYXNMb2dpbik6CisgICAgICAgIChXZWJD
b3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpnZXRMb2dpbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpyZW1vdmVMb2dpbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpDcmVk
ZW50aWFsQmFja2luZ1N0b3JlOjplbmNyeXB0ZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6ZGVjcnlwdGVkU3RyaW5nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbFN0b3JhZ2VC
bGFja0JlcnJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFn
ZTo6Z2V0RnJvbVBlcnNpc3RlbnRTdG9yYWdlKToKKwogMjAxMS0xMS0zMCAgR3JlZ2cgVGF2YXJl
cyAgPGdtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgZHJhZnQgV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlcyBXZWJHTCBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFs
QmFja2luZ1N0b3JlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wM2RkMTZhOTgzNjhmOTI3ZTQ5MjI0Mzc2YWFj
YWM2MzAzZmZjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwCkBAIC0wLDAgKzEs
MTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkK
KyNpbmNsdWRlICJDcmVkZW50aWFsQmFja2luZ1N0b3JlLmgiCisKKyNpbmNsdWRlICJDcmVkZW50
aWFsU3RvcmFnZS5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZUhhc2guaCIKKyNpbmNsdWRlICJTUUxpdGVT
dGF0ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDcmVkZW50aWFsQmFja2luZ1N0
b3JlKiBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjppbnN0YW5jZSgpCit7CisgICAgc3RhdGljIENy
ZWRlbnRpYWxCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IDA7CisgICAgaWYgKCFiYWNraW5n
U3RvcmUpCisgICAgICAgIGJhY2tpbmdTdG9yZSA9IG5ldyBDcmVkZW50aWFsQmFja2luZ1N0b3Jl
OworICAgIHJldHVybiBiYWNraW5nU3RvcmU7Cit9CisKK0NyZWRlbnRpYWxCYWNraW5nU3RvcmU6
OkNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKQorICAgIDogbV9hZGRTdGF0ZW1lbnQoMCkKKyAgICAs
IG1fdXBkYXRlU3RhdGVtZW50KDApCisgICAgLCBtX2hhc1N0YXRlbWVudCgwKQorICAgICwgbV9n
ZXRTdGF0ZW1lbnQoMCkKKyAgICAsIG1fcmVtb3ZlU3RhdGVtZW50KDApCit7Cit9CisKK0NyZWRl
bnRpYWxCYWNraW5nU3RvcmU6On5DcmVkZW50aWFsQmFja2luZ1N0b3JlKCkKK3sKK30KKworYm9v
bCBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpvcGVuKGNvbnN0IFN0cmluZyYgZGJQYXRoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENyZWRl
bnRpYWxCYWNraW5nU3RvcmU6OmNsb3NlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Citib29sIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6OmFkZExvZ2luKGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRpYWwm
IGNyZWRlbnRpYWwpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6dXBkYXRlTG9naW4oY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgY29uc3QgQ3Jl
ZGVudGlhbCYgY3JlZGVudGlhbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpoYXNMb2dpbihjb25z
dCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworQ3JlZGVudGlhbCBDcmVkZW50aWFsQmFja2lu
Z1N0b3JlOjpnZXRMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBDcmVkZW50aWFsKCk7Cit9CisK
K2Jvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6cmVtb3ZlTG9naW4oY29uc3QgUHJvdGVjdGlv
blNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6Y2xlYXIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcg
Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6ZW5jcnlwdGVkU3RyaW5nKGNvbnN0IFN0cmluZyYgcGxh
aW5UZXh0KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBOZWVkIGVuY3J5cHQgcGxhaW5UZXh0IGhl
cmUKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBwbGFpblRleHQ7Cit9CisKK1N0
cmluZyBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpkZWNyeXB0ZWRTdHJpbmcoY29uc3QgU3RyaW5n
JiBjaXBoZXJUZXh0KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBOZWVkIGRlY3J5cHQgY2lwaGVy
VGV4dCBoZXJlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gY2lwaGVyVGV4dDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEJMQUNLQkVS
UllfQ1JFREVOVElBTF9QRVJTSVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsQmFja2luZ1N0b3Jl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzVkYTM5ZjAwOTc5MjhhYmJhYzQ4MTQwYzA3OTUwZDkxYWFmYTQzMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIENyZWRlbnRpYWxCYWNraW5n
U3RvcmVfaAorI2RlZmluZSBDcmVkZW50aWFsQmFja2luZ1N0b3JlX2gKKworI2lmIEVOQUJMRShC
TEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKworI2luY2x1ZGUgIkNyZWRlbnRpYWwuaCIK
KyNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEtVUkw7CitjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CisKK2NsYXNzIENyZWRlbnRpYWxCYWNr
aW5nU3RvcmUgeworcHVibGljOgorICAgIHN0YXRpYyBDcmVkZW50aWFsQmFja2luZ1N0b3JlKiBp
bnN0YW5jZSgpOworICAgIH5DcmVkZW50aWFsQmFja2luZ1N0b3JlKCk7CisgICAgYm9vbCBvcGVu
KGNvbnN0IFN0cmluZyYgZGJQYXRoKTsKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgYm9vbCBhZGRM
b2dpbihjb25zdCBLVVJMJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgQ3JlZGVudGlh
bCYpOworICAgIGJvb2wgdXBkYXRlTG9naW4oY29uc3QgS1VSTCYsIGNvbnN0IFByb3RlY3Rpb25T
cGFjZSYsIGNvbnN0IENyZWRlbnRpYWwmKTsKKyAgICBib29sIGhhc0xvZ2luKGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYpOworICAgIENyZWRlbnRpYWwgZ2V0TG9naW4oY29uc3QgUHJvdGVjdGlvblNw
YWNlJik7CisgICAgYm9vbCByZW1vdmVMb2dpbihjb25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKKyAg
ICBib29sIGNsZWFyKCk7CisKK3ByaXZhdGU6CisgICAgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZSgp
OworICAgIFN0cmluZyBlbmNyeXB0ZWRTdHJpbmcoY29uc3QgU3RyaW5nJiBwbGFpblRleHQpIGNv
bnN0OworICAgIFN0cmluZyBkZWNyeXB0ZWRTdHJpbmcoY29uc3QgU3RyaW5nJiBjaXBoZXJUZXh0
KSBjb25zdDsKKworICAgIFNRTGl0ZURhdGFiYXNlIG1fZGF0YWJhc2U7CisgICAgU1FMaXRlU3Rh
dGVtZW50ICptX2FkZFN0YXRlbWVudDsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgKm1fdXBkYXRlU3Rh
dGVtZW50OworICAgIFNRTGl0ZVN0YXRlbWVudCAqbV9oYXNTdGF0ZW1lbnQ7CisgICAgU1FMaXRl
U3RhdGVtZW50ICptX2dldFN0YXRlbWVudDsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgKm1fcmVtb3Zl
U3RhdGVtZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUKQorCisjZW5kaWYgLy8gQ3JlZGVudGlh
bEJhY2tpbmdTdG9yZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbFN0b3JhZ2VCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsU3RvcmFnZUJsYWNr
QmVycnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhODY2Mzc3MjRlMDE4MWI5MmUwNzhhMWU3MDczMmYzMjRl
ZDk2MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvQ3JlZGVudGlhbFN0b3JhZ2VCbGFja0JlcnJ5LmNwcApAQCAtMCwwICsxLDM4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgorCisjaW5jbHVkZSAiQ3Jl
ZGVudGlhbC5oIgorI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkKKyNp
bmNsdWRlICJDcmVkZW50aWFsQmFja2luZ1N0b3JlLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitDcmVkZW50aWFsIENyZWRlbnRpYWxTdG9yYWdlOjpnZXRGcm9tUGVyc2lzdGVu
dFN0b3JhZ2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCit7CisjaWYg
RU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUKQorICAgIHJldHVybiBDcmVkZW50
aWFsQmFja2luZ1N0b3JlOjppbnN0YW5jZSgpLT5nZXRMb2dpbihwcm90ZWN0aW9uU3BhY2UpOwor
I2Vsc2UKKyAgICByZXR1cm4gQ3JlZGVudGlhbCgpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117334</attachid>
            <date>2011-11-30 21:55:27 -0800</date>
            <delta_ts>2011-12-01 07:56:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73280-20111201135525.patch</filename>
            <type>text/plain</type>
            <size>9956</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE3OWIwYzRmZTUxZWEy
YWVhODNjYjRhZTExM2MxNWMwMjczZWFiYi4uZDUzYzA4MWFiYjkzNTU3MTY1M2ZlZTMyZGVkZTBh
NDYyYTg3NjM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDExLTExLTMwICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
VXBzdHJlYW0gY3JlZGVudGlhbCBzdG9yYWdlIGZpbGVzIG9mIEJsYWNrQmVycnkgcG9ydGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUg
YmFzaWMgc3RydWN0dXJlIG9mIGNsYXNzIENyZWRlbnRpYWxCYWNraW5nU3RvcmUKKyAgICAgICAg
dG8gcGVyc2lzdCB0aGUgY3JlZGVudGlhbCBkYXRhLCBhbmQgZ2VuZXJhdGVkCisgICAgICAgIHBs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsU3RvcmFnZUJsYWNrQmVycnkuY3Bw
LAorICAgICAgICB0byBpbXBsZW1lbnQgQ3JlZGVudGlhbFN0b3JhZ2U6OmdldEZyb21QZXJzaXN0
ZW50U3RvcmFnZQorICAgICAgICBmb3IgQmxhY2tCZXJyeSBwb3J0aW5nLgorICAgICAgICBDb250
cmlidXRlZCBieSBUb3JjaCBUZWFtLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNyZWRlbnRpYWxCYWNraW5nU3RvcmU6Omluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxCYWNraW5nU3RvcmU6OkNyZWRlbnRpYWxCYWNraW5nU3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6fkNyZWRlbnRpYWxCYWNraW5nU3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjphZGRMb2dpbik6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjp1cGRhdGVMb2dpbik6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpoYXNMb2dpbik6CisgICAgICAgIChXZWJD
b3JlOjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpnZXRMb2dpbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpyZW1vdmVMb2dpbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpDcmVk
ZW50aWFsQmFja2luZ1N0b3JlOjplbmNyeXB0ZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6ZGVjcnlwdGVkU3RyaW5nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbFN0b3JhZ2VC
bGFja0JlcnJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFn
ZTo6Z2V0RnJvbVBlcnNpc3RlbnRTdG9yYWdlKToKKwogMjAxMS0xMS0zMCAgR3JlZ2cgVGF2YXJl
cyAgPGdtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgZHJhZnQgV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlcyBXZWJHTCBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFs
QmFja2luZ1N0b3JlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmIyYmZjNWUzNjNlYjk4Yjg2NDM0OGY0M2Fm
YzQ0NDVlZjNhZGE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuY3BwCkBAIC0wLDAgKzEs
MTMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVCkK
KyNpbmNsdWRlICJDcmVkZW50aWFsQmFja2luZ1N0b3JlLmgiCisKKyNpbmNsdWRlICJDcmVkZW50
aWFsU3RvcmFnZS5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZUhhc2guaCIKKyNpbmNsdWRlICJTUUxpdGVT
dGF0ZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitDcmVkZW50aWFsQmFja2luZ1N0b3JlKiBDcmVkZW50aWFsQmFja2luZ1N0b3Jl
OjppbnN0YW5jZSgpCit7CisgICAgc3RhdGljIENyZWRlbnRpYWxCYWNraW5nU3RvcmUqIGJhY2tp
bmdTdG9yZSA9IDA7CisgICAgaWYgKCFiYWNraW5nU3RvcmUpCisgICAgICAgIGJhY2tpbmdTdG9y
ZSA9IG5ldyBDcmVkZW50aWFsQmFja2luZ1N0b3JlOworICAgIHJldHVybiBiYWNraW5nU3RvcmU7
Cit9CisKK0NyZWRlbnRpYWxCYWNraW5nU3RvcmU6OkNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKQor
ICAgIDogbV9hZGRTdGF0ZW1lbnQoMCkKKyAgICAsIG1fdXBkYXRlU3RhdGVtZW50KDApCisgICAg
LCBtX2hhc1N0YXRlbWVudCgwKQorICAgICwgbV9nZXRTdGF0ZW1lbnQoMCkKKyAgICAsIG1fcmVt
b3ZlU3RhdGVtZW50KDApCit7Cit9CisKK0NyZWRlbnRpYWxCYWNraW5nU3RvcmU6On5DcmVkZW50
aWFsQmFja2luZ1N0b3JlKCkKK3sKK30KKworYm9vbCBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjpv
cGVuKGNvbnN0IFN0cmluZyYgZGJQYXRoKQoreworICAgIFVOVVNFRF9QQVJBTShkYlBhdGgpOwor
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ3Jl
ZGVudGlhbEJhY2tpbmdTdG9yZTo6Y2xvc2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK2Jvb2wgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZTo6YWRkTG9naW4oY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgY29uc3QgQ3JlZGVudGlh
bCYgY3JlZGVudGlhbCkKK3sKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKyAgICBVTlVTRURfUEFS
QU0ocHJvdGVjdGlvblNwYWNlKTsKKyAgICBVTlVTRURfUEFSQU0oY3JlZGVudGlhbCk7CisKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBDcmVkZW50
aWFsQmFja2luZ1N0b3JlOjp1cGRhdGVMb2dpbihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFs
KQoreworICAgIFVOVVNFRF9QQVJBTSh1cmwpOworICAgIFVOVVNFRF9QQVJBTShwcm90ZWN0aW9u
U3BhY2UpOworICAgIFVOVVNFRF9QQVJBTShjcmVkZW50aWFsKTsKKworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIENyZWRlbnRpYWxCYWNraW5nU3Rv
cmU6Omhhc0xvZ2luKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlKQorewor
ICAgIFVOVVNFRF9QQVJBTShwcm90ZWN0aW9uU3BhY2UpOworCisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0NyZWRlbnRpYWwgQ3JlZGVudGlhbEJhY2tpbmdT
dG9yZTo6Z2V0TG9naW4oY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCit7
CisgICAgVU5VU0VEX1BBUkFNKHByb3RlY3Rpb25TcGFjZSk7CisKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBDcmVkZW50aWFsKCk7Cit9CisKK2Jvb2wgQ3JlZGVudGlhbEJhY2tp
bmdTdG9yZTo6cmVtb3ZlTG9naW4oY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3Bh
Y2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHByb3RlY3Rpb25TcGFjZSk7CisKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBDcmVkZW50aWFsQmFja2lu
Z1N0b3JlOjpjbGVhcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK1N0cmluZyBDcmVkZW50aWFsQmFja2luZ1N0b3JlOjplbmNyeXB0ZWRTdHJpbmco
Y29uc3QgU3RyaW5nJiBwbGFpblRleHQpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IE5lZWQgZW5j
cnlwdCBwbGFpblRleHQgaGVyZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHBs
YWluVGV4dDsKK30KKworU3RyaW5nIENyZWRlbnRpYWxCYWNraW5nU3RvcmU6OmRlY3J5cHRlZFN0
cmluZyhjb25zdCBTdHJpbmcmIGNpcGhlclRleHQpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IE5l
ZWQgZGVjcnlwdCBjaXBoZXJUZXh0IGhlcmUKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBjaXBoZXJUZXh0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoQkxBQ0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvQ3JlZGVudGlhbEJhY2tpbmdT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0NyZWRl
bnRpYWxCYWNraW5nU3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTI2MzEwNjVkNWY2MzU2NWQxZDdiMjAy
YzNjZjRjYWZjM2ZmNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L0NyZWRlbnRpYWxCYWNraW5nU3RvcmUuaApAQCAtMCwwICsx
LDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYg
Q3JlZGVudGlhbEJhY2tpbmdTdG9yZV9oCisjZGVmaW5lIENyZWRlbnRpYWxCYWNraW5nU3RvcmVf
aAorCisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUKQorCisjaW5jbHVk
ZSAiQ3JlZGVudGlhbC5oIgorI2luY2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgS1VSTDsKK2NsYXNzIFByb3RlY3Rpb25TcGFjZTsKKworY2xh
c3MgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZSB7CitwdWJsaWM6CisgICAgc3RhdGljIENyZWRlbnRp
YWxCYWNraW5nU3RvcmUqIGluc3RhbmNlKCk7CisgICAgfkNyZWRlbnRpYWxCYWNraW5nU3RvcmUo
KTsKKyAgICBib29sIG9wZW4oY29uc3QgU3RyaW5nJiBkYlBhdGgpOworICAgIHZvaWQgY2xvc2Uo
KTsKKyAgICBib29sIGFkZExvZ2luKGNvbnN0IEtVUkwmLCBjb25zdCBQcm90ZWN0aW9uU3BhY2Um
LCBjb25zdCBDcmVkZW50aWFsJik7CisgICAgYm9vbCB1cGRhdGVMb2dpbihjb25zdCBLVVJMJiwg
Y29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgQ3JlZGVudGlhbCYpOworICAgIGJvb2wgaGFz
TG9naW4oY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CisgICAgQ3JlZGVudGlhbCBnZXRMb2dpbihj
b25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKKyAgICBib29sIHJlbW92ZUxvZ2luKGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYpOworICAgIGJvb2wgY2xlYXIoKTsKKworcHJpdmF0ZToKKyAgICBDcmVkZW50
aWFsQmFja2luZ1N0b3JlKCk7CisgICAgU3RyaW5nIGVuY3J5cHRlZFN0cmluZyhjb25zdCBTdHJp
bmcmIHBsYWluVGV4dCkgY29uc3Q7CisgICAgU3RyaW5nIGRlY3J5cHRlZFN0cmluZyhjb25zdCBT
dHJpbmcmIGNpcGhlclRleHQpIGNvbnN0OworCisgICAgU1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFz
ZTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQqIG1fYWRkU3RhdGVtZW50OworICAgIFNRTGl0ZVN0YXRl
bWVudCogbV91cGRhdGVTdGF0ZW1lbnQ7CisgICAgU1FMaXRlU3RhdGVtZW50KiBtX2hhc1N0YXRl
bWVudDsKKyAgICBTUUxpdGVTdGF0ZW1lbnQqIG1fZ2V0U3RhdGVtZW50OworICAgIFNRTGl0ZVN0
YXRlbWVudCogbV9yZW1vdmVTdGF0ZW1lbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoQkxBQ0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisKKyNl
bmRpZiAvLyBDcmVkZW50aWFsQmFja2luZ1N0b3JlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsU3RvcmFnZUJsYWNrQmVy
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L0NyZWRl
bnRpYWxTdG9yYWdlQmxhY2tCZXJyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVhNzgzZjljYTk5NjU1ZWFi
YmU4NWI1NmU5YWRkNGQ1YTZmMWRhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9DcmVkZW50aWFsU3RvcmFnZUJsYWNrQmVycnku
Y3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNyZWRlbnRpYWxTdG9yYWdlLmgi
CisKKyNpbmNsdWRlICJDcmVkZW50aWFsLmgiCisjaWYgRU5BQkxFKEJMQUNLQkVSUllfQ1JFREVO
VElBTF9QRVJTSVNUKQorI2luY2x1ZGUgIkNyZWRlbnRpYWxCYWNraW5nU3RvcmUuaCIKKyNlbmRp
ZgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0NyZWRlbnRpYWwgQ3JlZGVudGlhbFN0b3JhZ2U6OmdldEZyb21QZXJzaXN0ZW50U3RvcmFnZShj
b25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKK3sKKyNpZiBFTkFCTEUoQkxB
Q0tCRVJSWV9DUkVERU5USUFMX1BFUlNJU1QpCisgICAgcmV0dXJuIENyZWRlbnRpYWxCYWNraW5n
U3RvcmU6Omluc3RhbmNlKCktPmdldExvZ2luKHByb3RlY3Rpb25TcGFjZSk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShwcm90ZWN0aW9uU3BhY2UpOworICAgIHJldHVybiBDcmVkZW50aWFsKCk7
CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>