<?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>101139</bug_id>
          
          <creation_ts>2012-11-02 18:46:01 -0700</creation_ts>
          <short_desc>Expose security origin to BundleFrame</short_desc>
          <delta_ts>2012-11-04 14:26:24 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bweinstein</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>757840</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-02 18:46:01 -0700</bug_when>
    <thetext>Allow clients to get the origin for a given frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757845</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-02 18:52:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/12629900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757846</commentid>
    <comment_count>2</comment_count>
      <attachid>172192</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-02 19:00:47 -0700</bug_when>
    <thetext>Created attachment 172192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757904</commentid>
    <comment_count>3</comment_count>
      <attachid>172192</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-02 23:13:24 -0700</bug_when>
    <thetext>Comment on attachment 172192
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebFrame.cpp:809
&gt; +    return WebSecurityOrigin::createFromString(m_coreFrame-&gt;document()-&gt;securityOrigin()-&gt;toString());

Round-tripping through a string is lossy.  Are you sure that&apos;s what you want?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757905</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-02 23:21:59 -0700</bug_when>
    <thetext>The last time I dealt with this the origins were sent across the wire as a string, so the reconstruction of the origin was lossy, as you said. In this case, maybe we can share the webcore origin across WebSecurityOrigin instances. Let me think about this more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757912</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-11-03 00:04:50 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; The last time I dealt with this the origins were sent across the wire as a string, so the reconstruction of the origin was lossy, as you said. In this case, maybe we can share the webcore origin across WebSecurityOrigin instances. Let me think about this more.

We should definitely not be serializing to string only to reconstruct the origin.  Instead, you should add a new WebSecurityOrigin create function that takes a WebCore::SecurityOrigin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757913</commentid>
    <comment_count>6</comment_count>
      <attachid>172211</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-03 00:06:09 -0700</bug_when>
    <thetext>Created attachment 172211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757915</commentid>
    <comment_count>7</comment_count>
      <attachid>172211</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-11-03 00:22:40 -0700</bug_when>
    <thetext>Comment on attachment 172211
Patch

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

Please add an API test.

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:294
&gt; +WKSecurityOriginRef WKBundleFrameGetSecurityOrigin(WKBundleFrameRef frameRef)
&gt; +{
&gt; +    return toAPI(toImpl(frameRef)-&gt;securityOrigin().leakRef());
&gt; +}

This needs to be called WKBundleFrameCopySecurityOrigin and follow copy rules.

&gt; Source/WebKit2/WebProcess/WebPage/WebFrame.cpp:807
&gt; +    if (!m_coreFrame)
&gt; +        return WebSecurityOrigin::createFromString(String());

I don&apos;t understand why this makes sense.  Why not just return null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758030</commentid>
    <comment_count>8</comment_count>
      <attachid>172211</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-03 17:20:38 -0700</bug_when>
    <thetext>Comment on attachment 172211
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/WebPage/WebFrame.cpp:807
&gt;&gt; +        return WebSecurityOrigin::createFromString(String());
&gt; 
&gt; I don&apos;t understand why this makes sense.  Why not just return null?

Or, if for some reason you can&apos;t return null, you can create a unique origin via SecurityOrigin::createUnique().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758039</commentid>
    <comment_count>9</comment_count>
      <attachid>172235</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-03 18:07:36 -0700</bug_when>
    <thetext>Created attachment 172235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758132</commentid>
    <comment_count>10</comment_count>
      <attachid>172235</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-04 08:52:04 -0800</bug_when>
    <thetext>Comment on attachment 172235
Patch

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

&gt; Source/WebKit2/Shared/API/c/WKSharedAPICast.h:207
&gt; +    RefPtr&lt;WebSecurityOrigin&gt; webSecurityOrigin = WebSecurityOrigin::create(origin);
&gt; +    return toAPI(webSecurityOrigin.release().leakRef());

I think these two lines would read better as one, without the local variable.

&gt; Source/WebKit2/Shared/WebSecurityOrigin.h:63
&gt; +    static PassRefPtr&lt;WebSecurityOrigin&gt; create(WebCore::SecurityOrigin* securityOrigin)

This could use PassRefPtr instead of a raw pointer as the argument. It would compile down to the same code at call sites, since the function is inlined and the pointer ends up inside a PassRefPtr eventually. And it would make it possible to use this when the caller has a PassRefPtr. In fact, I think it would be slightly better. If this took a PassRefPtr, you could rewrite all the other create functions to call this one which would make them all into one-liners:

    return create(WebCore::SecurityOrigin::createFromString(string));

    return create(WebCore::SecurityOrigin::createFromDatabaseIdentifier(identifier));

    return create(WebCore::SecurityOrigin::create(protocol, host, port));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758136</commentid>
    <comment_count>11</comment_count>
      <attachid>172235</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-04 10:16:18 -0800</bug_when>
    <thetext>Comment on attachment 172235
Patch

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

&gt;&gt; Source/WebKit2/Shared/API/c/WKSharedAPICast.h:207
&gt;&gt; +    return toAPI(webSecurityOrigin.release().leakRef());
&gt; 
&gt; I think these two lines would read better as one, without the local variable.

Fixed.

&gt;&gt; Source/WebKit2/Shared/WebSecurityOrigin.h:63
&gt;&gt; +    static PassRefPtr&lt;WebSecurityOrigin&gt; create(WebCore::SecurityOrigin* securityOrigin)
&gt; 
&gt; This could use PassRefPtr instead of a raw pointer as the argument. It would compile down to the same code at call sites, since the function is inlined and the pointer ends up inside a PassRefPtr eventually. And it would make it possible to use this when the caller has a PassRefPtr. In fact, I think it would be slightly better. If this took a PassRefPtr, you could rewrite all the other create functions to call this one which would make them all into one-liners:
&gt; 
&gt;     return create(WebCore::SecurityOrigin::createFromString(string));
&gt; 
&gt;     return create(WebCore::SecurityOrigin::createFromDatabaseIdentifier(identifier));
&gt; 
&gt;     return create(WebCore::SecurityOrigin::create(protocol, host, port));

Done. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758148</commentid>
    <comment_count>12</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-04 14:26:24 -0800</bug_when>
    <thetext>Committed r133425: &lt;http://trac.webkit.org/changeset/133425&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172192</attachid>
            <date>2012-11-02 19:00:47 -0700</date>
            <delta_ts>2012-11-03 00:06:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101139-20121102185906.patch</filename>
            <type>text/plain</type>
            <size>4802</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWZjYzQxNDA2YzVmOTU0
NDY1YjZlZTU2OWUzYTJkZDAxYjI0ZmUwNS4uZjBmYTY2M2FkMDljZDc5NDI3YmRjYTkyNDBkOGMx
MDU3MjVkMjRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTExLTAyICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2Ugc2VjdXJpdHkgb3JpZ2lu
IHRvIEJ1bmRsZUZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDExMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5j
cHA6CisgICAgICAgIChXS0J1bmRsZUZyYW1lQ29weVNlY3VyaXR5T3JpZ2luKTogQWRkIGZ1bmN0
aW9uIHRvIGdldCB0aGUgc2VjdXJpdHkgb3JpZ2luLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpzZWN1cml0
eU9yaWdpbik6IFJldHVybiBhIGNvcHkgb2YgdGhlIG9yaWdpbiBmb3IgdGhlIGZyYW1lJ3MgZG9j
dW1lbnQsIGJhc2VkIG9uIHRoZSBvcmlnaW4ncyBzdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmg6CisKIDIwMTItMTAtMzEgIEplc3Nl
IHZhbiBkZW4gS2llYm9vbSAgPGplc3NldmRrQGdub21lLm9yZz4KIAogICAgICAgICBFbmFibGUg
d2Via2l0MiBpbnRyb3NwZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAppbmRl
eCAyNDE4OGZmZjI4YWUzNGZmOGU5MzVkOTAwYjFmNmZjNTc4MDU4MjA5Li40YmYzYmNhMWNhNTgz
ZmY3NmU3N2Y1MzRmYmNmZmY3NTY0OTA5NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFt
ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNp
bmNsdWRlICJXS0RhdGEuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWVWaWV3Lmg+CiAKQEAgLTI4NiwzICsyODcsOCBAQCBXS0J1bmRsZUhpdFRlc3RS
ZXN1bHRSZWYgV0tCdW5kbGVGcmFtZUNyZWF0ZUhpdFRlc3RSZXN1bHQoV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoZnJhbWVSZWYpLT5oaXRUZXN0KHRv
SW50UG9pbnQocG9pbnQpKS5sZWFrUmVmKCkpOwogfQorCitXS1NlY3VyaXR5T3JpZ2luUmVmIFdL
QnVuZGxlRnJhbWVDb3B5U2VjdXJpdHlPcmlnaW4oV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZikK
K3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGZyYW1lUmVmKS0+c2VjdXJpdHlPcmlnaW4oKS5s
ZWFrUmVmKCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaAppbmRleCAwMjFhZWMwZWRm
NjI2OWZhYzFlN2Y4OWU1NTMyZTZjOTRjMTc0NWE3Li44YzJiODc1ZjUwZjQwZmMzYWIzMWIyOWFi
ZTJhYmJlYTQwOGY1NDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaApAQCAtNDQsNiAr
NDQsNyBAQCBXS19FWFBPUlQgV0tBcnJheVJlZiBXS0J1bmRsZUZyYW1lQ29weUNoaWxkRnJhbWVz
KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxl
RnJhbWVDb3B5TmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKTsKIFdLX0VYUE9SVCBXS1VSTFJl
ZiBXS0J1bmRsZUZyYW1lQ29weVVSTChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKTsKIFdLX0VYUE9S
VCBXS1VSTFJlZiBXS0J1bmRsZUZyYW1lQ29weVByb3Zpc2lvbmFsVVJMKFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUpOworV0tfRVhQT1JUIFdLU2VjdXJpdHlPcmlnaW5SZWYgV0tCdW5kbGVGcmFtZUNv
cHlTZWN1cml0eU9yaWdpbihXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKTsKIAogV0tfRVhQT1JUIFdL
RnJhbWVMb2FkU3RhdGUgV0tCdW5kbGVGcmFtZUdldEZyYW1lTG9hZFN0YXRlKFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUpOyAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHAKaW5kZXggNjg0MDkxNGI0OTViZmJiZGJlOWQ3MWMxNmZjZDAxNzBkMGVjMGQ4
OS4uZTJjMzNjYjg2M2Q5ZDFmZTA4YzMyYzU3M2RmYjIyM2VlZWNjZTZhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9j
ay5oPgpAQCAtODAwLDYgKzgwMSwxNCBAQCB2b2lkIFdlYkZyYW1lOjpzZXRUZXh0RGlyZWN0aW9u
KGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uKQogICAgICAgICBtX2NvcmVGcmFtZS0+ZWRpdG9yKCkt
PnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbik7CiB9
CiAKK1Bhc3NSZWZQdHI8V2ViU2VjdXJpdHlPcmlnaW4+IFdlYkZyYW1lOjpzZWN1cml0eU9yaWdp
bigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIFdlYlNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKFN0cmluZygpKTsKKworICAgIHJldHVybiBX
ZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX2NvcmVGcmFtZS0+ZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSk7Cit9CisKICNpZiBQTEFURk9STShNQUMp
IHx8IFBMQVRGT1JNKFdJTikKIAogY2xhc3MgV2ViRnJhbWVGaWx0ZXIgOiBwdWJsaWMgRnJhbWVG
aWx0ZXIgewpAQCAtODQwLDUgKzg0OSw1IEBAIFJldGFpblB0cjxDRkRhdGFSZWY+IFdlYkZyYW1l
Ojp3ZWJBcmNoaXZlRGF0YShGcmFtZUZpbHRlckZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkCiAgICAg
cmV0dXJuIDA7CiB9CiAjZW5kaWYKLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IGE3MTllMjQ0
NzQ2NmY1MGQwYjA3YzYyOWE3Njk1YjQ3MDQwZTk1MjUuLjk2ZWMxNWFkNTljYjQ2YzE0MzNkNDU3
ZTBmMmQ3NTM5YjllZTc5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIEluamVjdGVkQnVuZGxlTm9kZUhh
bmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkOwogY2xhc3MgV2ViUGFnZTsKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2lu
OwogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQogc3RydWN0IEludGVudERhdGE7CkBAIC0xMTcs
NiArMTE4LDcgQEAgcHVibGljOgogICAgIGJvb2wgZ2V0RG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3Io
ZG91YmxlKiByZWQsIGRvdWJsZSogZ3JlZW4sIGRvdWJsZSogYmx1ZSwgZG91YmxlKiBhbHBoYSk7
CiAgICAgYm9vbCBjb250YWluc0FueUZvcm1FbGVtZW50cygpIGNvbnN0OwogICAgIHZvaWQgc3Rv
cExvYWRpbmcoKTsKKyAgICBQYXNzUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9y
aWdpbigpIGNvbnN0OwogCiAgICAgc3RhdGljIFdlYkZyYW1lKiBmcmFtZUZvckNvbnRleHQoSlND
b250ZXh0UmVmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172211</attachid>
            <date>2012-11-03 00:06:09 -0700</date>
            <delta_ts>2012-11-03 18:07:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101139-20121103000428.patch</filename>
            <type>text/plain</type>
            <size>6459</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2RjOGY3OGNiNTljNGI3
YWU2NTg1ZTIyMDE2MTY4ODJkYjAzZTc5YS4uNTgyNWNhODRkMWIyYjYyYThjZmQ0ZTY0Mzk5MTE2
ZTU5YzQzOTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTExLTAyICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2Ugc2VjdXJpdHkgb3JpZ2lu
IHRvIEJ1bmRsZUZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDExMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNjI5OTAwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBhIFdlYlNl
Y3VyaXR5T3JpZ2luIGluc3RhbmNlLCBzaGFyaW5nIHRoZSBzZWN1cml0eSBvcmlnaW4gaW5zdGFu
Y2UKKyAgICAgICAgdGhhdCBjb21lcyBkaXJlY3RseSBmcm9tIHRoZSBmcmFtZSdzIGRvY3VtZW50
LiBXZSBjYW4gZG8gdGhpcyBiZWNhdXNlIHRoZQorICAgICAgICBXSzIgQVBJIG9ubHkgcmV0cmll
dmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmlnaW4sIGFuZCBiZWNhdXNlIHRob3NlCisgICAg
ICAgIHJlc3VsdHMgYXJlIHJldHVybmVkIGFzIGNvcGllcy4gVGhlIHNlY3VyaXR5IG9yaWdpbiBo
b2xkcyBubyByZWZlcmVuY2VzCisgICAgICAgIHRoYXQgY291bGQgbGVhZCB0byBhIHJldGFpbiBj
eWNsZSwgYXZvaWRpbmcgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhlCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZSBhY2NpZGVudGFsbHkga2VlcHMgc29tZXRoaW5nIGFsaXZlLgorCisgICAgICAgICog
U2hhcmVkL1dlYlNlY3VyaXR5T3JpZ2luLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUpOiBBZGQgYSBuZXcgY3JlYXRlKCkgZnVuY3Rpb24gdGhhdAorICAgICAg
ICB0YWtlcyBhIHJhdyBwb2ludGVyLiBVc2VkIGJ5IEJ1bmRsZUZyYW1lLCB0aGlzIHdpbGwgYWRk
IGEgcmVmZXJlbmNlIGNvdW50CisgICAgICAgIHRvIHRoZSBzaGFyZWQgV2ViQ29yZSBzZWN1cml0
eSBvcmlnaW4gaW5zdGFuY2UgYmV0d2VlbiB0aGlzIHdyYXBwZXIgYW5kCisgICAgICAgIHRoZSBm
cmFtZSdzIGRvY3VtZW50LgorICAgICAgICAoV2ViU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHA6CisgICAg
ICAgIChXS0J1bmRsZUZyYW1lR2V0U2VjdXJpdHlPcmlnaW4pOiBBZGQgZnVuY3Rpb24gdG8gcmV0
cmlldmUgdGhlIHNlY3VyaXR5CisgICAgICAgIG9yaWdpbiBhcyBhIFdLMiBBUEkgb2JqZWN0Lgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lOjpzZWN1cml0eU9yaWdpbik6IFJldHVybiB0aGUgb3JpZ2luIGZvciB0
aGUgZnJhbWUncworICAgICAgICBkb2N1bWVudC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaDoKKwogMjAxMi0xMS0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFZlcnkgc3BlY3VsYXRpdmUgQXJndW1lbnREZWNvZGVyIGNy
YXNoIGZpeApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5T3Jp
Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAppbmRleCA2
NjA3NGM1NGE2ZjM4OTY5ZmI0OGI1YzBkMDE2OTYwMWUxYTAyNDY4Li4zMWE5NjJjNmNjOGIxODY5
ZGYyNDkwZGYyNjY2ODk1ZmUzYmYyOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2Vj
dXJpdHlPcmlnaW4uaApAQCAtNjAsNiArNjAsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luLnJlbGVhc2UoKSkp
OwogICAgIH0KIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBjcmVh
dGUoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKQorICAgIHsKKyAgICAg
ICAgaWYgKCFzZWN1cml0eU9yaWdpbikKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKSk7Cisg
ICAgfQorCiAgICAgY29uc3QgU3RyaW5nIHByb3RvY29sKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1
cml0eU9yaWdpbi0+cHJvdG9jb2woKTsgfQogICAgIGNvbnN0IFN0cmluZyBob3N0KCkgY29uc3Qg
eyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+aG9zdCgpOyB9CiAgICAgdW5zaWduZWQgc2hvcnQg
cG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPnBvcnQoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKaW5kZXggMjQxODhmZmYyOGFlMzRmZjhlOTM1ZDkwMGIx
ZjZmYzU3ODA1ODIwOS4uZjcyNjQwN2QyY2IzOTZkZTUwZjg0NDBjOWIzY2Y0NjY4YzBlYWUyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tEYXRhLmgiCiAjaW5jbHVkZSAi
V2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogCkBAIC0yODYs
MyArMjg3LDggQEAgV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIFdLQnVuZGxlRnJhbWVDcmVhdGVI
aXRUZXN0UmVzdWx0KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUKIHsKICAgICByZXR1cm4gdG9BUEko
dG9JbXBsKGZyYW1lUmVmKS0+aGl0VGVzdCh0b0ludFBvaW50KHBvaW50KSkubGVha1JlZigpKTsK
IH0KKworV0tTZWN1cml0eU9yaWdpblJlZiBXS0J1bmRsZUZyYW1lR2V0U2VjdXJpdHlPcmlnaW4o
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGZy
YW1lUmVmKS0+c2VjdXJpdHlPcmlnaW4oKS5sZWFrUmVmKCkpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1l
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlRnJhbWUuaAppbmRleCAwMjFhZWMwZWRmNjI2OWZhYzFlN2Y4OWU1NTMyZTZjOTRjMTc0NWE3
Li42OWEzYTBjZGRlYWI2ZGI3N2FlMTkzNjZkNWEyMTMxNTc4Y2NhNjMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJh
bWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlRnJhbWUuaApAQCAtNDQsNiArNDQsNyBAQCBXS19FWFBPUlQgV0tBcnJheVJlZiBX
S0J1bmRsZUZyYW1lQ29weUNoaWxkRnJhbWVzKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwogV0tf
RVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlRnJhbWVDb3B5TmFtZShXS0J1bmRsZUZyYW1lUmVm
IGZyYW1lKTsKIFdLX0VYUE9SVCBXS1VSTFJlZiBXS0J1bmRsZUZyYW1lQ29weVVSTChXS0J1bmRs
ZUZyYW1lUmVmIGZyYW1lKTsKIFdLX0VYUE9SVCBXS1VSTFJlZiBXS0J1bmRsZUZyYW1lQ29weVBy
b3Zpc2lvbmFsVVJMKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOworV0tfRVhQT1JUIFdLU2VjdXJp
dHlPcmlnaW5SZWYgV0tCdW5kbGVGcmFtZUdldFNlY3VyaXR5T3JpZ2luKFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUpOwogCiBXS19FWFBPUlQgV0tGcmFtZUxvYWRTdGF0ZSBXS0J1bmRsZUZyYW1lR2V0
RnJhbWVMb2FkU3RhdGUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7IAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCA2ODQwOTE0YjQ5NWJm
YmJkYmU5ZDcxYzE2ZmNkMDE3MGQwZWMwZDg5Li45ZWEwMTUyNzVjYzUyNWY4N2NhM2ZmNGQxNDEy
ZTZiNGQ3ZjhmZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9B
UElDYXN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0UmVmLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CkBAIC04MDAsNiArODAxLDE0IEBAIHZvaWQg
V2ViRnJhbWU6OnNldFRleHREaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24pCiAgICAg
ICAgIG1fY29yZUZyYW1lLT5lZGl0b3IoKS0+c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oUmlnaHRU
b0xlZnRXcml0aW5nRGlyZWN0aW9uKTsKIH0KIAorUGFzc1JlZlB0cjxXZWJTZWN1cml0eU9yaWdp
bj4gV2ViRnJhbWU6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY29yZUZy
YW1lKQorICAgICAgICByZXR1cm4gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmco
U3RyaW5nKCkpOworCisgICAgcmV0dXJuIFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV9jb3Jl
RnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOworfQorCiAjaWYgUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShXSU4pCiAKIGNsYXNzIFdlYkZyYW1lRmlsdGVyIDogcHVibGljIEZy
YW1lRmlsdGVyIHsKQEAgLTg0MCw1ICs4NDksNSBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBXZWJG
cmFtZTo6d2ViQXJjaGl2ZURhdGEoRnJhbWVGaWx0ZXJGdW5jdGlvbiBjYWxsYmFjaywgdm9pZAog
ICAgIHJldHVybiAwOwogfQogI2VuZGlmCi0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRleCBhNzE5
ZTI0NDc0NjZmNTBkMGIwN2M2MjlhNzY5NWI0NzA0MGU5NTI1Li45NmVjMTVhZDU5Y2I0NmMxNDMz
ZDQ1N2UwZjJkNzUzOWI5ZWU3OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuaApAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBJbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOwogY2xhc3MgSW5qZWN0
ZWRCdW5kbGVTY3JpcHRXb3JsZDsKIGNsYXNzIFdlYlBhZ2U7CitjbGFzcyBXZWJTZWN1cml0eU9y
aWdpbjsKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKIHN0cnVjdCBJbnRlbnREYXRhOwpAQCAt
MTE3LDYgKzExOCw3IEBAIHB1YmxpYzoKICAgICBib29sIGdldERvY3VtZW50QmFja2dyb3VuZENv
bG9yKGRvdWJsZSogcmVkLCBkb3VibGUqIGdyZWVuLCBkb3VibGUqIGJsdWUsIGRvdWJsZSogYWxw
aGEpOwogICAgIGJvb2wgY29udGFpbnNBbnlGb3JtRWxlbWVudHMoKSBjb25zdDsKICAgICB2b2lk
IHN0b3BMb2FkaW5nKCk7CisgICAgUGFzc1JlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gc2VjdXJp
dHlPcmlnaW4oKSBjb25zdDsKIAogICAgIHN0YXRpYyBXZWJGcmFtZSogZnJhbWVGb3JDb250ZXh0
KEpTQ29udGV4dFJlZik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172235</attachid>
            <date>2012-11-03 18:07:36 -0700</date>
            <delta_ts>2012-11-04 10:16:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101139-20121103180554.patch</filename>
            <type>text/plain</type>
            <size>5804</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2RjOGY3OGNiNTljNGI3
YWU2NTg1ZTIyMDE2MTY4ODJkYjAzZTc5YS4uZmI5MWMxZWU0MWE5MDJmOTBjOTY3MTg2OWU4NDkx
ODM2NjAyMjY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTAzICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2Ugc2VjdXJpdHkgb3JpZ2lu
IHRvIEJ1bmRsZUZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDExMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNjI5OTAwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBhIFdlYlNl
Y3VyaXR5T3JpZ2luIGluc3RhbmNlLCBzaGFyaW5nIHRoZSBzZWN1cml0eSBvcmlnaW4gaW5zdGFu
Y2UKKyAgICAgICAgdGhhdCBjb21lcyBkaXJlY3RseSBmcm9tIHRoZSBmcmFtZSdzIGRvY3VtZW50
LiBXZSBjYW4gZG8gdGhpcyBiZWNhdXNlIHRoZQorICAgICAgICBXSzIgQVBJIG9ubHkgcmV0cmll
dmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmlnaW4sIGFuZCBiZWNhdXNlIHRob3NlCisgICAg
ICAgIHJlc3VsdHMgYXJlIHJldHVybmVkIGFzIGNvcGllcy4gVGhlIHNlY3VyaXR5IG9yaWdpbiBo
b2xkcyBubyByZWZlcmVuY2VzCisgICAgICAgIHRoYXQgY291bGQgbGVhZCB0byBhIHJldGFpbiBj
eWNsZSwgYXZvaWRpbmcgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhlCisgICAgICAgIGluamVjdGVk
IGJ1bmRsZSBhY2NpZGVudGFsbHkga2VlcHMgc29tZXRoaW5nIGFsaXZlLgorCisgICAgICAgICog
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0NvcGll
ZEFQSSk6IENyZWF0ZSBjb3BpZWQgQVBJIGZvciBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbgorICAg
ICAgICBpbnN0YW5jZXMuCisgICAgICAgICogU2hhcmVkL1dlYlNlY3VyaXR5T3JpZ2luLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUpOiBBZGQgYSBuZXcgY3Jl
YXRlKCkgZnVuY3Rpb24gdGhhdAorICAgICAgICB0YWtlcyBhIHJhdyBwb2ludGVyLiBVc2VkIGJ5
IEJ1bmRsZUZyYW1lLCB0aGlzIHdpbGwgYWRkIGEgcmVmZXJlbmNlIGNvdW50CisgICAgICAgIHRv
IHRoZSBzaGFyZWQgV2ViQ29yZSBzZWN1cml0eSBvcmlnaW4gaW5zdGFuY2UgYmV0d2VlbiB0aGlz
IHdyYXBwZXIgYW5kCisgICAgICAgIHRoZSBmcmFtZSdzIGRvY3VtZW50LgorICAgICAgICAoV2Vi
U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVGcmFtZS5jcHA6CisgICAgICAgIChXS0J1bmRsZUZyYW1lQ29weVNlY3VyaXR5
T3JpZ2luKTogQWRkIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBzZWN1cml0eQorICAgICAgICBv
cmlnaW4gYXMgYSBXSzIgQVBJIG9iamVjdC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaDoKKwogMjAxMi0xMS0wMiAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFZlcnkgc3BlY3VsYXRpdmUgQXJn
dW1lbnREZWNvZGVyIGNyYXNoIGZpeApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oCmluZGV4IGZmOWE1MGZlMzRkN2E1MjI0ZGFlYTQzZTNiNThmZGYwMjY0
OTUyNWQuLmM1MWU2ZTNlYTNjZmIzNWNmNTZlZWU3ZDQyNmE2OTgwMDM4NjZjMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgi
CiAjaW5jbHVkZSAiV2ViTnVtYmVyLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJVUkwuaCIKICNpbmNsdWRlICJX
ZWJVUkxSZXF1ZXN0LmgiCkBAIC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9MYXlvdXRNaWxlc3RvbmVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckNvbnRlbnRUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlclNjcmlwdFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVUcmFpdHMuaD4K
QEAgLTE5Nyw2ICsxOTksMTQgQEAgaW5saW5lIFByb3h5aW5nUmVmUHRyPFdlYlVSTFJlc3BvbnNl
PiB0b0FQSShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXMKICAgICByZXR1cm4g
UHJveHlpbmdSZWZQdHI8V2ViVVJMUmVzcG9uc2U+KFdlYlVSTFJlc3BvbnNlOjpjcmVhdGUocmVz
cG9uc2UpKTsKIH0KIAoraW5saW5lIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9Db3BpZWRBUEkoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAoIW9yaWdpbikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiB3ZWJTZWN1cml0eU9y
aWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luKTsKKyAgICByZXR1cm4gdG9B
UEkod2ViU2VjdXJpdHlPcmlnaW4ucmVsZWFzZSgpLmxlYWtSZWYoKSk7Cit9CisKIC8qIEdlb21l
dHJ5IGNvbnZlcnNpb25zICovCiAKIGlubGluZSBXZWJDb3JlOjpGbG9hdFJlY3QgdG9GbG9hdFJl
Y3QoY29uc3QgV0tSZWN0JiB3a1JlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViU2VjdXJpdHlPcmlnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0
eU9yaWdpbi5oCmluZGV4IDY2MDc0YzU0YTZmMzg5NjlmYjQ4YjVjMGQwMTY5NjAxZTFhMDI0Njgu
LjMxYTk2MmM2Y2M4YjE4NjlkZjI0OTBkZjI2NjY4OTVmZTNiZjI5ZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oCkBAIC02MCw2ICs2MCwxMyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlP
cmlnaW4ucmVsZWFzZSgpKSk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU2Vj
dXJpdHlPcmlnaW4+IGNyZWF0ZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4pCisgICAgeworICAgICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2VjdXJpdHlPcmlnaW4oc2Vj
dXJpdHlPcmlnaW4pKTsKKyAgICB9CisKICAgICBjb25zdCBTdHJpbmcgcHJvdG9jb2woKSBjb25z
dCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5wcm90b2NvbCgpOyB9CiAgICAgY29uc3QgU3Ry
aW5nIGhvc3QoKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5ob3N0KCk7IH0KICAg
ICB1bnNpZ25lZCBzaG9ydCBwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+
cG9ydCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAppbmRleCAyNDE4OGZmZjI4
YWUzNGZmOGU5MzVkOTAwYjFmNmZjNTc4MDU4MjA5Li5mMDBlMDM1Mzk1ZmNlMjAwNzI0ZmJiZjRm
NjI3ODVlOTM1ZWU3NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXS0Rh
dGEuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVW
aWV3Lmg+CiAKQEAgLTI4NiwzICsyODcsMTIgQEAgV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIFdL
QnVuZGxlRnJhbWVDcmVhdGVIaXRUZXN0UmVzdWx0KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUKIHsK
ICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGZyYW1lUmVmKS0+aGl0VGVzdCh0b0ludFBvaW50KHBv
aW50KSkubGVha1JlZigpKTsKIH0KKworV0tTZWN1cml0eU9yaWdpblJlZiBXS0J1bmRsZUZyYW1l
Q29weVNlY3VyaXR5T3JpZ2luKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYpCit7CisgICAgRnJh
bWUqIGNvcmVGcmFtZSA9IHRvSW1wbChmcmFtZVJlZiktPmNvcmVGcmFtZSgpOworICAgIGlmICgh
Y29yZUZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiB0b0NvcGllZEFQSShj
b3JlRnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZy
YW1lLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuaAppbmRleCAwMjFhZWMwZWRmNjI2OWZhYzFlN2Y4OWU1NTMyZTZjOTRjMTc0
NWE3Li44YzJiODc1ZjUwZjQwZmMzYWIzMWIyOWFiZTJhYmJlYTQwOGY1NDRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlRnJhbWUuaApAQCAtNDQsNiArNDQsNyBAQCBXS19FWFBPUlQgV0tBcnJheVJl
ZiBXS0J1bmRsZUZyYW1lQ29weUNoaWxkRnJhbWVzKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwog
V0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlRnJhbWVDb3B5TmFtZShXS0J1bmRsZUZyYW1l
UmVmIGZyYW1lKTsKIFdLX0VYUE9SVCBXS1VSTFJlZiBXS0J1bmRsZUZyYW1lQ29weVVSTChXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lKTsKIFdLX0VYUE9SVCBXS1VSTFJlZiBXS0J1bmRsZUZyYW1lQ29w
eVByb3Zpc2lvbmFsVVJMKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOworV0tfRVhQT1JUIFdLU2Vj
dXJpdHlPcmlnaW5SZWYgV0tCdW5kbGVGcmFtZUNvcHlTZWN1cml0eU9yaWdpbihXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lKTsKIAogV0tfRVhQT1JUIFdLRnJhbWVMb2FkU3RhdGUgV0tCdW5kbGVGcmFt
ZUdldEZyYW1lTG9hZFN0YXRlKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOyAKIAo=
</data>
<flag name="review"
          id="186458"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>