<?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>134524</bug_id>
          
          <creation_ts>2014-07-01 16:48:19 -0700</creation_ts>
          <short_desc>[Cocoa] Ensure that the WebKit bundle version in the user agent string continues to match the current format</short_desc>
          <delta_ts>2014-07-02 16:04:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>134521</dependson>
    
    <dependson>134522</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Mark Rowe (bdash)">mrowe</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1019828</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-07-01 16:48:19 -0700</bug_when>
    <thetext>The WebKit version portion of the user agent string has historically had at most three components. There&apos;s no guarantee that the WebKit framework&apos;s bundle version will be limited in this fashion. We should ensure that the version inserted in to the user agent string continues to match the historical format.

&lt;rdar://problem/17447771&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019829</commentid>
    <comment_count>1</comment_count>
      <attachid>234217</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-07-01 16:50:48 -0700</bug_when>
    <thetext>Created attachment 234217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020000</commentid>
    <comment_count>2</comment_count>
      <attachid>234271</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-07-02 11:37:12 -0700</bug_when>
    <thetext>Created attachment 234271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020055</commentid>
    <comment_count>3</comment_count>
      <attachid>234271</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-02 14:53:13 -0700</bug_when>
    <thetext>Comment on attachment 234271
Patch

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

&gt; Source/WebCore/page/cocoa/UserAgent.mm:69
&gt; +    // We include at most three components of the bundle version in the user agent string.
&gt; +    NSString *bundleVersion = userVisibleWebKitBundleVersionFromFullVersion(fullWebKitVersion);
&gt; +    NSScanner *scanner = [NSScanner scannerWithString:bundleVersion];
&gt; +    NSInteger periodCount = 0;
&gt; +    while (true) {
&gt; +        if (![scanner scanUpToString:@&quot;.&quot; intoString:nullptr] || scanner.isAtEnd)
&gt; +            return bundleVersion;
&gt; +
&gt; +        if (++periodCount == 3)
&gt; +            return [bundleVersion substringToIndex:scanner.scanLocation];
&gt; +
&gt; +        ++scanner.scanLocation;
&gt; +    }
&gt; +
&gt; +    ASSERT_NOT_REACHED();

Can we do this in C++?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020058</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-07-02 14:57:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 234271 [details])
&gt; Can we do this in C++?

It seemed preferable for the code to match our other internal implementation rather than writing it twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020087</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-07-02 16:04:29 -0700</bug_when>
    <thetext>Landed in r170735.
&lt;https://trac.webkit.org/r170735&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234217</attachid>
            <date>2014-07-01 16:50:48 -0700</date>
            <delta_ts>2014-07-02 11:37:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134524-20140701165028.patch</filename>
            <type>text/plain</type>
            <size>5884</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM3YTNmMDI3MmRiNDkw
MDAyNGU1OTI2OWI3NzQ0YjYzMTQ4NmE5MC4uOTcyZGM5YmUxZGNjN2YzNmIxMDUwZjhlZjVmZmIy
MDI2ZjZlNmM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDE0LTA3LTAxICBNYXJr
IFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKKyAgICAgICAgRW5zdXJlIHRoYXQgdGhlIFdlYktp
dCBidW5kbGUgdmVyc2lvbiBpbiB0aGUgdXNlciBhZ2VudCBzdHJpbmcgY29udGludWVzIHRvIG1h
dGNoIHRoZSBjdXJyZW50IGZvcm1hdC4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEz
NDUyND4gLyA8cmRhcjovL3Byb2JsZW0vMTc0NDc3NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL2NvY29hL1VzZXJBZ2VudC5oOgorICAg
ICAgICAqIHBhZ2UvY29jb2EvVXNlckFnZW50Lm1tOgorICAgICAgICAoV2ViQ29yZTo6dXNlclZp
c2libGVXZWJLaXRCdW5kbGVWZXJzaW9uRnJvbUZ1bGxWZXJzaW9uKTogVXBkYXRlZCB0byB0YWtl
IGFuIE5TU3RyaW5nIG5vdyB0aGF0IGl0J3MgaW50ZXJuYWwKKyAgICAgICAgdG8gdGhlIGZpbGUu
CisgICAgICAgIChXZWJDb3JlOjp1c2VyQWdlbnRCdW5kbGVWZXJzaW9uRnJvbUZ1bGxWZXJzaW9u
U3RyaW5nKTogTGltaXQgdGhlIGJ1bmRsZSB2ZXJzaW9uIGluY2x1ZGVkIGluIHRoZSB1c2VyIGFn
ZW50CisgICAgICAgIHN0cmluZyB0byB0aHJlZSBjb21wb25lbnRzLgorICAgICAgICAqIHBhZ2Uv
aW9zL1VzZXJBZ2VudElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50
V2l0aEFwcGxpY2F0aW9uTmFtZSk6IFVwZGF0ZSB0byBjYWxsIHVzZXJBZ2VudEJ1bmRsZVZlcnNp
b25Gcm9tRnVsbFZlcnNpb25TdHJpbmcuCisgICAgICAgICogcGFnZS9tYWMvVXNlckFnZW50TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25O
YW1lKTogRGl0dG8uCisKKzIwMTQtMDctMDEgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4K
KwogICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM0NTIyPiBSZW1vdmUgZHVwbGljYXRp
b24gaW4gY29kZSB0aGF0IHByZXBhcmVzIHRoZSB1c2VyIGFnZW50IHN0cmluZyBvbiBNYWMgYW5k
IGlPUwogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9Vc2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvVXNlckFnZW50LmgKaW5kZXggMTA3ZGRlYzEwZTBiYThjN2EyZDRlOWYxYjc1ZDYx
M2FjNjk3MTFjYy4uMTcyZDIzYjE0N2E2NmUyNWE0OWEyMTBlNzVkZGZlMDUyYTBkZGZiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9Vc2VyQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5h
bWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgd2Via2l0VmVy
c2lvblN0cmluZyk7CiAKIFN0cmluZyBzeXN0ZW1NYXJrZXRpbmdWZXJzaW9uRm9yVXNlckFnZW50
U3RyaW5nKCk7Ci1TdHJpbmcgdXNlclZpc2libGVXZWJLaXRCdW5kbGVWZXJzaW9uRnJvbUZ1bGxW
ZXJzaW9uKGNvbnN0IFN0cmluZyYpOworU3RyaW5nIHVzZXJBZ2VudEJ1bmRsZVZlcnNpb25Gcm9t
RnVsbFZlcnNpb25TdHJpbmcoY29uc3QgU3RyaW5nJik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9Vc2VyQWdlbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2NvY29hL1VzZXJBZ2VudC5tbQppbmRleCBmMTFjODMxMzNhZGVmYTBiMDc0OTIxNjQ4ZTE4ZjFm
MTcwZTg0NmRiLi4zZjFhYjc5ZGJkYzg4YTVlODRkNDYyYzM3YTBlOTBmZmFmNDgzYmRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5tbQpAQCAtMzgsMTAgKzM4LDggQEAgU3Ry
aW5nIHN5c3RlbU1hcmtldGluZ1ZlcnNpb25Gb3JVc2VyQWdlbnRTdHJpbmcoKQogICAgIHJldHVy
biBbc3lzdGVtTWFya2V0aW5nVmVyc2lvbigpIHN0cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5jZXNP
ZlN0cmluZzpAIi4iIHdpdGhTdHJpbmc6QCJfIl07CiB9CiAKLVN0cmluZyB1c2VyVmlzaWJsZVdl
YktpdEJ1bmRsZVZlcnNpb25Gcm9tRnVsbFZlcnNpb24oY29uc3QgU3RyaW5nJiBmdWxsV2ViS2l0
VmVyc2lvblN0cmluZykKK3N0YXRpYyBOU1N0cmluZyAqdXNlclZpc2libGVXZWJLaXRCdW5kbGVW
ZXJzaW9uRnJvbUZ1bGxWZXJzaW9uKE5TU3RyaW5nICpmdWxsV2ViS2l0VmVyc2lvbikKIHsKLSAg
ICBOU1N0cmluZyAqZnVsbFdlYktpdFZlcnNpb24gPSBmdWxsV2ViS2l0VmVyc2lvblN0cmluZzsK
LQogICAgIC8vIElmIHRoZSB2ZXJzaW9uIGlzIGxvbmdlciB0aGFuIDMgZGlnaXRzIHRoZW4gdGhl
IGxlYWRpbmcgZGlnaXRzIHJlcHJlc2VudCB0aGUgdmVyc2lvbiBvZiB0aGUgT1MuIE91ciB1c2Vy
IGFnZW50CiAgICAgLy8gc3RyaW5nIHNob3VsZCBub3QgaW5jbHVkZSB0aGUgbGVhZGluZyBkaWdp
dHMsIHNvIHN0cmlwIHRoZW0gb2ZmIGFuZCByZXBvcnQgdGhlIHJlc3QgYXMgdGhlIHZlcnNpb24u
IDxyZGFyOi8vcHJvYmxlbS80OTk3NTQ3PgogICAgIE5TUmFuZ2Ugbm9uRGlnaXRSYW5nZSA9IFtm
dWxsV2ViS2l0VmVyc2lvbiByYW5nZU9mQ2hhcmFjdGVyRnJvbVNldDpbW05TQ2hhcmFjdGVyU2V0
IGRlY2ltYWxEaWdpdENoYXJhY3RlclNldF0gaW52ZXJ0ZWRTZXRdXTsKQEAgLTUyLDQgKzUwLDI2
IEBAIFN0cmluZyB1c2VyVmlzaWJsZVdlYktpdEJ1bmRsZVZlcnNpb25Gcm9tRnVsbFZlcnNpb24o
Y29uc3QgU3RyaW5nJiBmdWxsV2ViS2l0VmVyCiAgICAgcmV0dXJuIGZ1bGxXZWJLaXRWZXJzaW9u
OwogfQogCitTdHJpbmcgdXNlckFnZW50QnVuZGxlVmVyc2lvbkZyb21GdWxsVmVyc2lvblN0cmlu
Zyhjb25zdCBTdHJpbmcmIGZ1bGxXZWJLaXRWZXJzaW9uKQoreworICAgIC8vIFdlIGluY2x1ZGUg
YXQgbW9zdCB0aHJlZSBjb21wb25lbnRzIG9mIHRoZSBXZWJLaXQgdmVyc2lvbiBpbiB0aGUgdXNl
ciBhZ2VudCBzdHJpbmcuCisgICAgTlNTdHJpbmcgKndlYktpdFZlcnNpb24gPSB1c2VyVmlzaWJs
ZVdlYktpdEJ1bmRsZVZlcnNpb25Gcm9tRnVsbFZlcnNpb24oZnVsbFdlYktpdFZlcnNpb24pOwor
ICAgIE5TSW50ZWdlciB3ZWJLaXRWZXJzaW9uTGVuZ3RoID0gd2ViS2l0VmVyc2lvbi5sZW5ndGg7
CisgICAgTlNSYW5nZSBzZWFyY2hSYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHdlYktpdFZlcnNpb25M
ZW5ndGgpOworICAgIE5TSW50ZWdlciBwZXJpb2RDb3VudCA9IDA7CisgICAgd2hpbGUgKHRydWUp
IHsKKyAgICAgICAgTlNSYW5nZSBwZXJpb2QgPSBbd2ViS2l0VmVyc2lvbiByYW5nZU9mU3RyaW5n
OkAiLiIgb3B0aW9uczpOU0xpdGVyYWxTZWFyY2ggcmFuZ2U6c2VhcmNoUmFuZ2VdOworICAgICAg
ICBpZiAocGVyaW9kLmxvY2F0aW9uID09IE5TTm90Rm91bmQpCisgICAgICAgICAgICByZXR1cm4g
d2ViS2l0VmVyc2lvbjsKKworICAgICAgICBpZiAoKytwZXJpb2RDb3VudCA9PSAzKQorICAgICAg
ICAgICAgcmV0dXJuIFt3ZWJLaXRWZXJzaW9uIHN1YnN0cmluZ1dpdGhSYW5nZTpOU01ha2VSYW5n
ZSgwLCBwZXJpb2QubG9jYXRpb24pXTsKKworICAgICAgICBzZWFyY2hSYW5nZS5sb2NhdGlvbiA9
IHBlcmlvZC5sb2NhdGlvbiArIDE7CisgICAgICAgIHNlYXJjaFJhbmdlLmxlbmd0aCA9IHdlYktp
dFZlcnNpb25MZW5ndGggLSBzZWFyY2hSYW5nZS5sb2NhdGlvbjsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvVXNlckFnZW50SU9TLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9pb3MvVXNlckFnZW50SU9TLm1tCmluZGV4IDdmY2ZkYmI4N2ZhNGVkNmRmZWU0MDk0
OTkwNzQ3OWNmNjEyYjhiOTcuLjY4ZmJkZjJhNzIzNGM4MTM2YmI1Zjk0NzA5OTc5OGIxY2YzYTBk
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL1VzZXJBZ2VudElPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Vc2VyQWdlbnRJT1MubW0KQEAgLTQ0LDcgKzQ0
LDcgQEAgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZShjb25zdCBT
dHJpbmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QKICAgICAgICAgQ0ZSZWxlYXNlKG92ZXJyaWRl
KTsKICAgICB9CiAKLSAgICBOU1N0cmluZyAqd2ViS2l0VmVyc2lvbiA9IHVzZXJWaXNpYmxlV2Vi
S2l0QnVuZGxlVmVyc2lvbkZyb21GdWxsVmVyc2lvbihmdWxsV2ViS2l0VmVyc2lvblN0cmluZyk7
CisgICAgTlNTdHJpbmcgKndlYktpdFZlcnNpb24gPSB1c2VyQWdlbnRCdW5kbGVWZXJzaW9uRnJv
bUZ1bGxWZXJzaW9uU3RyaW5nKGZ1bGxXZWJLaXRWZXJzaW9uU3RyaW5nKTsKICAgICBDRlN0cmlu
Z1JlZiBkZXZpY2VOYW1lID0gd2tHZXREZXZpY2VOYW1lKCk7CiAgICAgQ0ZTdHJpbmdSZWYgb3NO
YW1lRm9yVXNlckFnZW50ID0gd2tHZXRPU05hbWVGb3JVc2VyQWdlbnQoKTsKICAgICBOU1N0cmlu
ZyAqb3NNYXJrZXRpbmdWZXJzaW9uU3RyaW5nID0gc3lzdGVtTWFya2V0aW5nVmVyc2lvbkZvclVz
ZXJBZ2VudFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVXNl
ckFnZW50TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVXNlckFnZW50TWFjLm1tCmlu
ZGV4IDZiNGVjNTZjNGNiZjJjMjdjNWU4YTFmNmZkMmFiMGQ4MmM4NGJhNTkuLjlkOTY1N2QyMjA4
ZmM5NDNmZTVjODFhOGFjMzU5NDRhZjY1ZTIyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL1VzZXJBZ2VudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9V
c2VyQWdlbnRNYWMubW0KQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU3Ry
aW5nIHN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFw
cGxpY2F0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiBmdWxsV2ViS2l0VmVyc2lvblN0cmluZykKIHsK
ICAgICBTdHJpbmcgb3NWZXJzaW9uID0gc3lzdGVtTWFya2V0aW5nVmVyc2lvbkZvclVzZXJBZ2Vu
dFN0cmluZygpOwotICAgIFN0cmluZyB3ZWJLaXRWZXJzaW9uU3RyaW5nID0gdXNlclZpc2libGVX
ZWJLaXRCdW5kbGVWZXJzaW9uRnJvbUZ1bGxWZXJzaW9uKGZ1bGxXZWJLaXRWZXJzaW9uU3RyaW5n
KTsKKyAgICBTdHJpbmcgd2ViS2l0VmVyc2lvblN0cmluZyA9IHVzZXJBZ2VudEJ1bmRsZVZlcnNp
b25Gcm9tRnVsbFZlcnNpb25TdHJpbmcoZnVsbFdlYktpdFZlcnNpb25TdHJpbmcpOwogCiAgICAg
aWYgKGFwcGxpY2F0aW9uTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtYWtlU3RyaW5n
KCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVy
c2lvbiwgIikgQXBwbGVXZWJLaXQvIiwgd2ViS2l0VmVyc2lvblN0cmluZywgIiAoS0hUTUwsIGxp
a2UgR2Vja28pIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234271</attachid>
            <date>2014-07-02 11:37:12 -0700</date>
            <delta_ts>2014-07-02 14:53:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134524-20140702113653.patch</filename>
            <type>text/plain</type>
            <size>5660</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMyNDYxOWZkYTBjMTYz
MmRhMWFlZWVlZjY5ODcwNTVhMDA1NTUzNC4uZTI4MDE0NDliNDcwYjdkMmI3NzQyNDA5MjllNWEy
OTMxZmQ0Y2U4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDE0LTA3LTAxICBNYXJr
IFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKKyAgICAgICAgRW5zdXJlIHRoYXQgdGhlIFdlYktp
dCBidW5kbGUgdmVyc2lvbiBpbiB0aGUgdXNlciBhZ2VudCBzdHJpbmcgY29udGludWVzIHRvIG1h
dGNoIHRoZSBjdXJyZW50IGZvcm1hdC4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEz
NDUyND4gLyA8cmRhcjovL3Byb2JsZW0vMTc0NDc3NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL2NvY29hL1VzZXJBZ2VudC5oOgorICAg
ICAgICAqIHBhZ2UvY29jb2EvVXNlckFnZW50Lm1tOgorICAgICAgICAoV2ViQ29yZTo6dXNlclZp
c2libGVXZWJLaXRCdW5kbGVWZXJzaW9uRnJvbUZ1bGxWZXJzaW9uKTogVXBkYXRlZCB0byB0YWtl
IGFuIE5TU3RyaW5nIG5vdyB0aGF0IGl0J3MgaW50ZXJuYWwKKyAgICAgICAgdG8gdGhlIGZpbGUu
CisgICAgICAgIChXZWJDb3JlOjp1c2VyQWdlbnRCdW5kbGVWZXJzaW9uRnJvbUZ1bGxWZXJzaW9u
U3RyaW5nKTogTGltaXQgdGhlIGJ1bmRsZSB2ZXJzaW9uIGluY2x1ZGVkIGluIHRoZSB1c2VyIGFn
ZW50CisgICAgICAgIHN0cmluZyB0byB0aHJlZSBjb21wb25lbnRzLgorICAgICAgICAqIHBhZ2Uv
aW9zL1VzZXJBZ2VudElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50
V2l0aEFwcGxpY2F0aW9uTmFtZSk6IFVwZGF0ZSB0byBjYWxsIHVzZXJBZ2VudEJ1bmRsZVZlcnNp
b25Gcm9tRnVsbFZlcnNpb25TdHJpbmcuCisgICAgICAgICogcGFnZS9tYWMvVXNlckFnZW50TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25O
YW1lKTogRGl0dG8uCisKKzIwMTQtMDctMDEgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4K
KwogICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM0NTIyPiBSZW1vdmUgZHVwbGljYXRp
b24gaW4gY29kZSB0aGF0IHByZXBhcmVzIHRoZSB1c2VyIGFnZW50IHN0cmluZyBvbiBNYWMgYW5k
IGlPUwogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9Vc2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvVXNlckFnZW50LmgKaW5kZXggMTA3ZGRlYzEwZTBiYThjN2EyZDRlOWYxYjc1ZDYx
M2FjNjk3MTFjYy4uMTcyZDIzYjE0N2E2NmUyNWE0OWEyMTBlNzVkZGZlMDUyYTBkZGZiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9Vc2VyQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5h
bWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgd2Via2l0VmVy
c2lvblN0cmluZyk7CiAKIFN0cmluZyBzeXN0ZW1NYXJrZXRpbmdWZXJzaW9uRm9yVXNlckFnZW50
U3RyaW5nKCk7Ci1TdHJpbmcgdXNlclZpc2libGVXZWJLaXRCdW5kbGVWZXJzaW9uRnJvbUZ1bGxW
ZXJzaW9uKGNvbnN0IFN0cmluZyYpOworU3RyaW5nIHVzZXJBZ2VudEJ1bmRsZVZlcnNpb25Gcm9t
RnVsbFZlcnNpb25TdHJpbmcoY29uc3QgU3RyaW5nJik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9Vc2VyQWdlbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2NvY29hL1VzZXJBZ2VudC5tbQppbmRleCBmMTFjODMxMzNhZGVmYTBiMDc0OTIxNjQ4ZTE4ZjFm
MTcwZTg0NmRiLi44MTczMjMzMWVmOWJmNjc5ODQ0ODBlZGVmYmI5MjdjOWQ1NGY0MGYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5tbQpAQCAtMzgsMTAgKzM4LDggQEAgU3Ry
aW5nIHN5c3RlbU1hcmtldGluZ1ZlcnNpb25Gb3JVc2VyQWdlbnRTdHJpbmcoKQogICAgIHJldHVy
biBbc3lzdGVtTWFya2V0aW5nVmVyc2lvbigpIHN0cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5jZXNP
ZlN0cmluZzpAIi4iIHdpdGhTdHJpbmc6QCJfIl07CiB9CiAKLVN0cmluZyB1c2VyVmlzaWJsZVdl
YktpdEJ1bmRsZVZlcnNpb25Gcm9tRnVsbFZlcnNpb24oY29uc3QgU3RyaW5nJiBmdWxsV2ViS2l0
VmVyc2lvblN0cmluZykKK3N0YXRpYyBOU1N0cmluZyAqdXNlclZpc2libGVXZWJLaXRCdW5kbGVW
ZXJzaW9uRnJvbUZ1bGxWZXJzaW9uKE5TU3RyaW5nICpmdWxsV2ViS2l0VmVyc2lvbikKIHsKLSAg
ICBOU1N0cmluZyAqZnVsbFdlYktpdFZlcnNpb24gPSBmdWxsV2ViS2l0VmVyc2lvblN0cmluZzsK
LQogICAgIC8vIElmIHRoZSB2ZXJzaW9uIGlzIGxvbmdlciB0aGFuIDMgZGlnaXRzIHRoZW4gdGhl
IGxlYWRpbmcgZGlnaXRzIHJlcHJlc2VudCB0aGUgdmVyc2lvbiBvZiB0aGUgT1MuIE91ciB1c2Vy
IGFnZW50CiAgICAgLy8gc3RyaW5nIHNob3VsZCBub3QgaW5jbHVkZSB0aGUgbGVhZGluZyBkaWdp
dHMsIHNvIHN0cmlwIHRoZW0gb2ZmIGFuZCByZXBvcnQgdGhlIHJlc3QgYXMgdGhlIHZlcnNpb24u
IDxyZGFyOi8vcHJvYmxlbS80OTk3NTQ3PgogICAgIE5TUmFuZ2Ugbm9uRGlnaXRSYW5nZSA9IFtm
dWxsV2ViS2l0VmVyc2lvbiByYW5nZU9mQ2hhcmFjdGVyRnJvbVNldDpbW05TQ2hhcmFjdGVyU2V0
IGRlY2ltYWxEaWdpdENoYXJhY3RlclNldF0gaW52ZXJ0ZWRTZXRdXTsKQEAgLTUyLDQgKzUwLDIz
IEBAIFN0cmluZyB1c2VyVmlzaWJsZVdlYktpdEJ1bmRsZVZlcnNpb25Gcm9tRnVsbFZlcnNpb24o
Y29uc3QgU3RyaW5nJiBmdWxsV2ViS2l0VmVyCiAgICAgcmV0dXJuIGZ1bGxXZWJLaXRWZXJzaW9u
OwogfQogCitTdHJpbmcgdXNlckFnZW50QnVuZGxlVmVyc2lvbkZyb21GdWxsVmVyc2lvblN0cmlu
Zyhjb25zdCBTdHJpbmcmIGZ1bGxXZWJLaXRWZXJzaW9uKQoreworICAgIC8vIFdlIGluY2x1ZGUg
YXQgbW9zdCB0aHJlZSBjb21wb25lbnRzIG9mIHRoZSBidW5kbGUgdmVyc2lvbiBpbiB0aGUgdXNl
ciBhZ2VudCBzdHJpbmcuCisgICAgTlNTdHJpbmcgKmJ1bmRsZVZlcnNpb24gPSB1c2VyVmlzaWJs
ZVdlYktpdEJ1bmRsZVZlcnNpb25Gcm9tRnVsbFZlcnNpb24oZnVsbFdlYktpdFZlcnNpb24pOwor
ICAgIE5TU2Nhbm5lciAqc2Nhbm5lciA9IFtOU1NjYW5uZXIgc2Nhbm5lcldpdGhTdHJpbmc6YnVu
ZGxlVmVyc2lvbl07CisgICAgTlNJbnRlZ2VyIHBlcmlvZENvdW50ID0gMDsKKyAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgICBpZiAoIVtzY2FubmVyIHNjYW5VcFRvU3RyaW5nOkAiLiIgaW50b1N0
cmluZzpudWxscHRyXSB8fCBzY2FubmVyLmlzQXRFbmQpCisgICAgICAgICAgICByZXR1cm4gYnVu
ZGxlVmVyc2lvbjsKKworICAgICAgICBpZiAoKytwZXJpb2RDb3VudCA9PSAzKQorICAgICAgICAg
ICAgcmV0dXJuIFtidW5kbGVWZXJzaW9uIHN1YnN0cmluZ1RvSW5kZXg6c2Nhbm5lci5zY2FuTG9j
YXRpb25dOworCisgICAgICAgICsrc2Nhbm5lci5zY2FuTG9jYXRpb247CisgICAgfQorCisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL1VzZXJBZ2VudElPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL1VzZXJBZ2VudElPUy5tbQppbmRleCA3ZmNmZGJiODdmYTRlZDZkZmVl
NDA5NDk5MDc0NzljZjYxMmI4Yjk3Li42OGZiZGYyYTcyMzRjODEzNmJiNWY5NDcwOTk3OThiMWNm
M2EwZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Vc2VyQWdlbnRJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvVXNlckFnZW50SU9TLm1tCkBAIC00NCw3
ICs0NCw3IEBAIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoY29u
c3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUsIGNvbnN0CiAgICAgICAgIENGUmVsZWFzZShvdmVy
cmlkZSk7CiAgICAgfQogCi0gICAgTlNTdHJpbmcgKndlYktpdFZlcnNpb24gPSB1c2VyVmlzaWJs
ZVdlYktpdEJ1bmRsZVZlcnNpb25Gcm9tRnVsbFZlcnNpb24oZnVsbFdlYktpdFZlcnNpb25TdHJp
bmcpOworICAgIE5TU3RyaW5nICp3ZWJLaXRWZXJzaW9uID0gdXNlckFnZW50QnVuZGxlVmVyc2lv
bkZyb21GdWxsVmVyc2lvblN0cmluZyhmdWxsV2ViS2l0VmVyc2lvblN0cmluZyk7CiAgICAgQ0ZT
dHJpbmdSZWYgZGV2aWNlTmFtZSA9IHdrR2V0RGV2aWNlTmFtZSgpOwogICAgIENGU3RyaW5nUmVm
IG9zTmFtZUZvclVzZXJBZ2VudCA9IHdrR2V0T1NOYW1lRm9yVXNlckFnZW50KCk7CiAgICAgTlNT
dHJpbmcgKm9zTWFya2V0aW5nVmVyc2lvblN0cmluZyA9IHN5c3RlbU1hcmtldGluZ1ZlcnNpb25G
b3JVc2VyQWdlbnRTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1VzZXJBZ2VudE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1VzZXJBZ2VudE1hYy5t
bQppbmRleCA2YjRlYzU2YzRjYmYyYzI3YzVlOGExZjZmZDJhYjBkODJjODRiYTU5Li45ZDk2NTdk
MjIwOGZjOTQzZmU1YzgxYThhYzM1OTQ0YWY2NWUyMmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9Vc2VyQWdlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvVXNlckFnZW50TWFjLm1tCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5n
JiBhcHBsaWNhdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgZnVsbFdlYktpdFZlcnNpb25TdHJpbmcp
CiB7CiAgICAgU3RyaW5nIG9zVmVyc2lvbiA9IHN5c3RlbU1hcmtldGluZ1ZlcnNpb25Gb3JVc2Vy
QWdlbnRTdHJpbmcoKTsKLSAgICBTdHJpbmcgd2ViS2l0VmVyc2lvblN0cmluZyA9IHVzZXJWaXNp
YmxlV2ViS2l0QnVuZGxlVmVyc2lvbkZyb21GdWxsVmVyc2lvbihmdWxsV2ViS2l0VmVyc2lvblN0
cmluZyk7CisgICAgU3RyaW5nIHdlYktpdFZlcnNpb25TdHJpbmcgPSB1c2VyQWdlbnRCdW5kbGVW
ZXJzaW9uRnJvbUZ1bGxWZXJzaW9uU3RyaW5nKGZ1bGxXZWJLaXRWZXJzaW9uU3RyaW5nKTsKIAog
ICAgIGlmIChhcHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbWFrZVN0
cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgIiBQUk9DRVNTT1IgIiBNYWMgT1MgWCAiLCBv
c1ZlcnNpb24sICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb25TdHJpbmcsICIgKEtIVE1M
LCBsaWtlIEdlY2tvKSIpOwo=
</data>
<flag name="review"
          id="258812"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>