<?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>234306</bug_id>
          
          <creation_ts>2021-12-14 12:38:57 -0800</creation_ts>
          <short_desc>Simplify accesses to SystemVersion.plist</short_desc>
          <delta_ts>2022-01-24 10:01:37 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Quesada">david_quesada</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824079</commentid>
    <comment_count>0</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2021-12-14 12:38:57 -0800</bug_when>
    <thetext>WebCore::createSystemMarketingVersion() and WebKit::systemVersionPlist() have convoluted logic to build the path to SystemVersion.plist and load its contents. Those call sites should be replaced with usage of SPI such as _CFCopySystemVersionDictionary() (which is already being used in PluginBlocklist and WebGLBlocklist)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824089</commentid>
    <comment_count>1</comment_count>
      <attachid>447149</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2021-12-14 13:09:35 -0800</bug_when>
    <thetext>Created attachment 447149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826087</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-21 12:39:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/86780674&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833374</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-24 09:45:25 -0800</bug_when>
    <thetext>Committed r288451 (246340@main): &lt;https://commits.webkit.org/246340@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447149.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833375</commentid>
    <comment_count>4</comment_count>
      <attachid>447149</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-24 10:01:37 -0800</bug_when>
    <thetext>Comment on attachment 447149
Patch

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

&gt; Source/WebCore/platform/cocoa/SystemVersion.mm:27
&gt;  #import &quot;SystemVersion.h&quot;
&gt; +#import &lt;pal/spi/cf/CFUtilitiesSPI.h&gt;

WebKit coding style says there should be a blank line after the file’s own header before the other includes.

&gt; Source/WebCore/platform/cocoa/SystemVersion.mm:35
&gt; +    CFStringRef productVersion = static_cast&lt;CFStringRef&gt;(CFDictionaryGetValue(systemVersionDictionary.get(), _kCFSystemVersionProductVersionKey));

Typically in newly-written WebKit code we would use auto for the type rather than repeating the same type in both on the left and in the static_cast, and either checked_cf_cast or dynamic_cf_cast instead of static_cast.

&gt; Source/WebCore/platform/cocoa/SystemVersion.mm:36
&gt; +    return adoptNS([(__bridge NSString *)productVersion copy]);

WebKit has bridge_cast for this:

    return adoptNS([bridge_cast(productVersion) copy]);

&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:793
&gt; +    NSDictionary *plist = adoptCF(_CFCopySystemVersionDictionary()).bridgingAutorelease();

We’d like to avoid introducing any autorelease, and there’s no need for it here, we can have a RetainPtr local variable.

    auto plistCF = adoptCF(_CFCopySystemVersionDictionary());
    auto plist = bridge_cast(plistCF.get());

&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:799
&gt; +    result.targetBuildVersion = plist[static_cast&lt;NSString *&gt;(_kCFSystemVersionBuildVersionKey)];
&gt; +    result.targetProductVersion = plist[static_cast&lt;NSString *&gt;(_kCFSystemVersionProductUserVisibleVersionKey)];

bridge_cast(_kCFSystemVersionBuildVersionKey)
bridge_cast(_kCFSystemVersionProductUserVisibleVersionKey)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447149</attachid>
            <date>2021-12-14 13:09:35 -0800</date>
            <delta_ts>2022-01-24 09:45:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>file_234306.txt</filename>
            <type>text/plain</type>
            <size>8161</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDRlM2Q0YjM4OTk5YTIyNjU0MmQ5YTljMTI4N2VlNjg2MWNiNmFlNWQNCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIFR1ZSBEZWMg
MTQgMTY6MDQ6MzIgMjAyMSAtMDUwMA0KDQogICAgU2ltcGxpZnkgYWNjZXNzZXMgdG8gU3lzdGVt
VmVyc2lvbi5wbGlzdA0KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzQzMDYNCiAgICANCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCiAgICANCiAg
ICBTb3VyY2UvV2ViQ29yZToNCiAgICANCiAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gYmVoYXZp
b3IgY2hhbmdlIGlzIGV4cGVjdGVkLg0KICAgIA0KICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVt
VmVyc2lvbi5tbToNCiAgICAoV2ViQ29yZTo6Y3JlYXRlU3lzdGVtTWFya2V0aW5nVmVyc2lvbik6
DQogICAgICAgIFJlYWQgdGhlIFN5c3RlbVZlcnNpb24ucGxpc3QgZmlsZSB1c2luZyBfQ0ZDb3B5
U3lzdGVtVmVyc2lvbkRpY3Rpb25hcnkoKQ0KICAgICAgICByYXRoZXIgdGhhbiBieSBtYW51YWxs
eSBjb25zdHJ1Y3RpbmcgdGhlIHBhdGggYW5kIGluaXRpYWxpemluZyB0aGUgZGljdGlvbmFyeS4N
CiAgICANCiAgICBTb3VyY2UvV2ViQ29yZS9QQUw6DQogICAgDQogICAgKiBwYWwvc3BpL2NmL0NG
VXRpbGl0aWVzU1BJLmg6DQogICAgICAgIEZvcndhcmQgZGVjbGFyZSBfa0NGU3lzdGVtVmVyc2lv
blByb2R1Y3RVc2VyVmlzaWJsZVZlcnNpb25LZXksIHVzZWQNCiAgICAgICAgYnkgV2ViQ29yZSdz
IFN5c3RlbVZlcnNpb24ubW0NCiAgICANCiAgICBTb3VyY2UvV2ViS2l0Og0KICAgIA0KICAgIE5v
IG5ldyB0ZXN0cyBzaW5jZSBubyBiZWhhdmlvciBjaGFuZ2UgaXMgZXhwZWN0ZWQuDQogICAgDQog
ICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tOg0K
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OmluZm9Gb3JMb2NhbERlYnVnZ2FibGUp
Og0KICAgICAgICBVc2UgX0NGQ29weVN5c3RlbVZlcnNpb25EaWN0aW9uYXJ5KCkgdG8gbG9jYXRl
IGFuZCBsb2FkIHRoZQ0KICAgICAgICBTeXN0ZW1WZXJzaW9uLnBsaXN0IGZpbGUgcmF0aGVyIHRo
YW4gZG9pbmcgdGhhdCBhbGwgbWFudWFsbHkuDQogICAgKFdlYktpdDo6c3lzdGVtVmVyc2lvblBs
aXN0KTogRGVsZXRlZC4NCg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KaW5kZXggMzcyN2FjZDkwNmI2Li45M2E0ZmUxZGM1
MmMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwxNyBAQA0KKzIwMjEtMTItMTQgIERhdmlkIFF1
ZXNhZGEgIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4NCisNCisgICAgICAgIFNpbXBsaWZ5IGFj
Y2Vzc2VzIHRvIFN5c3RlbVZlcnNpb24ucGxpc3QNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzMDYNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIG5vIGJlaGF2aW9y
IGNoYW5nZSBpcyBleHBlY3RlZC4NCisNCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVt
VmVyc2lvbi5tbToNCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTeXN0ZW1NYXJrZXRpbmdWZXJz
aW9uKToNCisgICAgICAgICAgICBSZWFkIHRoZSBTeXN0ZW1WZXJzaW9uLnBsaXN0IGZpbGUgdXNp
bmcgX0NGQ29weVN5c3RlbVZlcnNpb25EaWN0aW9uYXJ5KCkNCisgICAgICAgICAgICByYXRoZXIg
dGhhbiBieSBtYW51YWxseSBjb25zdHJ1Y3RpbmcgdGhlIHBhdGggYW5kIGluaXRpYWxpemluZyB0
aGUgZGljdGlvbmFyeS4NCisNCiAyMDIxLTEyLTExICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4NCiANCiAgICAgICAgIEFsbG93IG92ZXJyaWRlIG9mIHN5c3RlbSdzIHByZWZlcnJlZCBj
b2xvciBzY2hlbWUNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KaW5kZXggYzNmYTNhOTJmODUyLi4zM2QzNjAw
MDFkN2EgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDE0IEBADQorMjAyMS0xMi0x
NCAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPg0KKw0KKyAgICAgICAg
U2ltcGxpZnkgYWNjZXNzZXMgdG8gU3lzdGVtVmVyc2lvbi5wbGlzdA0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMwNg0KKw0KKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZVdGls
aXRpZXNTUEkuaDoNCisgICAgICAgICAgICBGb3J3YXJkIGRlY2xhcmUgX2tDRlN5c3RlbVZlcnNp
b25Qcm9kdWN0VXNlclZpc2libGVWZXJzaW9uS2V5LCB1c2VkDQorICAgICAgICAgICAgYnkgV2Vi
Q29yZSdzIFN5c3RlbVZlcnNpb24ubW0NCisNCiAyMDIxLTEyLTE0ICBBbmRyZXUgQm90ZWxsYSAg
PGFuZHJldUBhbmRyZXVib3RlbGxhLmNvbT4NCiANCiAgICAgICAgIFRleHREZWNvZGVyIGRvZXNu
J3QgZGV0ZWN0IGludmFsaWQgVVRGLTggc2VxdWVuY2VzIGVhcmx5IGVub3VnaA0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGVXRpbGl0aWVzU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oDQppbmRleCA0NTg4OGMz
N2M2NjUuLjI3YTBiZTY5MWVjMCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NmL0NGVXRpbGl0aWVzU1BJLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NmL0NGVXRpbGl0aWVzU1BJLmgNCkBAIC00OSw2ICs0OSw3IEBAIFdURl9FWFRFUk5fQ19CRUdJ
Tg0KIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZXZWJTZXJ2aWNlc1Byb3ZpZGVyRGVmYXVs
dERpc3BsYXlOYW1lS2V5Ow0KIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZXZWJTZXJ2aWNl
c1R5cGVXZWJTZWFyY2g7DQogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZTeXN0ZW1WZXJz
aW9uQnVpbGRWZXJzaW9uS2V5Ow0KK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lzdGVt
VmVyc2lvblByb2R1Y3RVc2VyVmlzaWJsZVZlcnNpb25LZXk7DQogZXh0ZXJuIGNvbnN0IENGU3Ry
aW5nUmVmIF9rQ0ZTeXN0ZW1WZXJzaW9uUHJvZHVjdFZlcnNpb25LZXk7DQogDQogQm9vbGVhbiBf
Q0ZBcHBWZXJzaW9uQ2hlY2tMZXNzVGhhbihDRlN0cmluZ1JlZiBidW5kbGVJRCwgaW50IGxpbmtl
ZE9uQW5PbGRlclN5c3RlbVRoYW4sIGRvdWJsZSB2ZXJzaW9uTnVtYmVyTGVzc1RoYW4pOw0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbVZlcnNpb24ubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1WZXJzaW9uLm1tDQppbmRleCA3
ZDNiZjhjZjI3YzQuLjEzYjdkMDk0YjhiNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1N5c3RlbVZlcnNpb24ubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1N5c3RlbVZlcnNpb24ubW0NCkBAIC0yNCwyMCArMjQsMTYgQEANCiANCiAjaW1w
b3J0ICJjb25maWcuaCINCiAjaW1wb3J0ICJTeXN0ZW1WZXJzaW9uLmgiDQorI2ltcG9ydCA8cGFs
L3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oPg0KIA0KIG5hbWVzcGFjZSBXZWJDb3JlIHsNCiANCiBz
dGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiBjcmVhdGVTeXN0ZW1NYXJrZXRpbmdWZXJzaW9uKCkN
CiB7DQogICAgIC8vIENhbid0IHVzZSAtW05TUHJvY2Vzc0luZm8gb3BlcmF0aW5nU3lzdGVtVmVy
c2lvblN0cmluZ10gYmVjYXVzZSBpdCBoYXMgdG9vIG11Y2ggc3R1ZmYgd2UgZG9uJ3Qgd2FudC4N
Ci0gICAgTlNTdHJpbmcgKnN5c3RlbUxpYnJhcnlQYXRoID0gW05TU2VhcmNoUGF0aEZvckRpcmVj
dG9yaWVzSW5Eb21haW5zKE5TTGlicmFyeURpcmVjdG9yeSwgTlNTeXN0ZW1Eb21haW5NYXNrLCBZ
RVMpIG9iamVjdEF0SW5kZXg6MF07DQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9S
KQ0KLSAgICBpZiAoY2hhciAqc2ltdWxhdG9yUm9vdCA9IGdldGVudigiU0lNVUxBVE9SX1JPT1Qi
KSkNCi0gICAgICAgIHN5c3RlbUxpYnJhcnlQYXRoID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCIlcy8lQCIsIHNpbXVsYXRvclJvb3QsIHN5c3RlbUxpYnJhcnlQYXRoXTsNCi0jZW5kaWYN
Ci0gICAgTlNTdHJpbmcgKnN5c3RlbVZlcnNpb25QbGlzdFBhdGggPSBbc3lzdGVtTGlicmFyeVBh
dGggc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiQ29yZVNlcnZpY2VzL1N5c3RlbVZl
cnNpb24ucGxpc3QiXTsNCi0gICAgTlNEaWN0aW9uYXJ5ICpzeXN0ZW1WZXJzaW9uSW5mbyA9IFtO
U0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDb250ZW50c09mRmlsZTpzeXN0ZW1WZXJzaW9uUGxp
c3RQYXRoXTsNCi0gICAgcmV0dXJuIGFkb3B0TlMoW1tzeXN0ZW1WZXJzaW9uSW5mbyBvYmplY3RG
b3JLZXk6QCJQcm9kdWN0VmVyc2lvbiJdIGNvcHldKTsNCisgICAgYXV0byBzeXN0ZW1WZXJzaW9u
RGljdGlvbmFyeSA9IGFkb3B0Q0YoX0NGQ29weVN5c3RlbVZlcnNpb25EaWN0aW9uYXJ5KCkpOw0K
KyAgICBDRlN0cmluZ1JlZiBwcm9kdWN0VmVyc2lvbiA9IHN0YXRpY19jYXN0PENGU3RyaW5nUmVm
PihDRkRpY3Rpb25hcnlHZXRWYWx1ZShzeXN0ZW1WZXJzaW9uRGljdGlvbmFyeS5nZXQoKSwgX2tD
RlN5c3RlbVZlcnNpb25Qcm9kdWN0VmVyc2lvbktleSkpOw0KKyAgICByZXR1cm4gYWRvcHROUyhb
KF9fYnJpZGdlIE5TU3RyaW5nICopcHJvZHVjdFZlcnNpb24gY29weV0pOw0KIH0NCiANCiBOU1N0
cmluZyAqc3lzdGVtTWFya2V0aW5nVmVyc2lvbigpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZw0KaW5kZXggMzE5ZTE1M2M1NGU1
Li4wOGJiY2U3NGZiYzggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZw0KKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTggQEANCisyMDIxLTEyLTE0
ICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQorDQorICAgICAgICBT
aW1wbGlmeSBhY2Nlc3NlcyB0byBTeXN0ZW1WZXJzaW9uLnBsaXN0DQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MzA2DQorDQorICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBu
byBiZWhhdmlvciBjaGFuZ2UgaXMgZXhwZWN0ZWQuDQorDQorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJUHJveHlNYWMubW06DQorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JVSVByb3h5OjppbmZvRm9yTG9jYWxEZWJ1Z2dhYmxlKToNCisgICAgICAg
ICAgICBVc2UgX0NGQ29weVN5c3RlbVZlcnNpb25EaWN0aW9uYXJ5KCkgdG8gbG9jYXRlIGFuZCBs
b2FkIHRoZQ0KKyAgICAgICAgICAgIFN5c3RlbVZlcnNpb24ucGxpc3QgZmlsZSByYXRoZXIgdGhh
biBkb2luZyB0aGF0IGFsbCBtYW51YWxseS4NCisgICAgICAgIChXZWJLaXQ6OnN5c3RlbVZlcnNp
b25QbGlzdCk6IERlbGV0ZWQuDQorDQogMjAyMS0xMi0xMSAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+DQogDQogICAgICAgICBBbGxvdyBvdmVycmlkZSBvZiBzeXN0ZW0ncyBwcmVmZXJy
ZWQgY29sb3Igc2NoZW1lDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tDQppbmRleCAyNWI0
NTc0MzVmN2IuLmM3NzNmYjUwYTlkOCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbQ0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1t
DQpAQCAtNDgsNiArNDgsNyBAQA0KICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+
DQogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg+DQogI2lt
cG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+DQorI2ltcG9ydCA8cGFsL3NwaS9jZi9D
RlV0aWxpdGllc1NQSS5oPg0KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPg0KIA0KIHN0YXRp
YyBjb25zdCBOU1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrVGl0
bGVkIHwgTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSB8IE5TV2luZG93U3R5bGVNYXNrTWluaWF0
dXJpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNr
RnVsbFNpemVDb250ZW50VmlldzsNCkBAIC03ODcsMjMgKzc4OCwxNSBAQCBTdHJpbmcgV2ViSW5z
cGVjdG9yVUlQcm94eTo6aW5zcGVjdG9yVGVzdFBhZ2VVUkwoKQ0KICAgICByZXR1cm4gW1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIgVVJMRm9ySW5zcGVjdG9yUmVzb3VyY2U6QCJUZXN0Lmh0bWwi
XS5hYnNvbHV0ZVN0cmluZzsNCiB9DQogDQotc3RhdGljIE5TRGljdGlvbmFyeSAqc3lzdGVtVmVy
c2lvblBsaXN0KCkNCi17DQotICAgIE5TU3RyaW5nICpzeXN0ZW1MaWJyYXJ5UGF0aCA9IFtOU1Nl
YXJjaFBhdGhGb3JEaXJlY3Rvcmllc0luRG9tYWlucyhOU0xpYnJhcnlEaXJlY3RvcnksIE5TU3lz
dGVtRG9tYWluTWFzaywgWUVTKSBvYmplY3RBdEluZGV4OjBdOw0KLSAgICBOU1N0cmluZyAqc3lz
dGVtVmVyc2lvblBsaXN0UGF0aCA9IFtzeXN0ZW1MaWJyYXJ5UGF0aCBzdHJpbmdCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJDb3JlU2VydmljZXMvU3lzdGVtVmVyc2lvbi5wbGlzdCJdOw0KLSAg
ICBOU0RpY3Rpb25hcnkgKnN5c3RlbVZlcnNpb25JbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9u
YXJ5V2l0aENvbnRlbnRzT2ZGaWxlOnN5c3RlbVZlcnNpb25QbGlzdFBhdGhdOw0KLSAgICByZXR1
cm4gc3lzdGVtVmVyc2lvbkluZm87DQotfQ0KLQ0KIERlYnVnZ2FibGVJbmZvRGF0YSBXZWJJbnNw
ZWN0b3JVSVByb3h5OjppbmZvRm9yTG9jYWxEZWJ1Z2dhYmxlKCkNCiB7DQotICAgIE5TRGljdGlv
bmFyeSAqcGxpc3QgPSBzeXN0ZW1WZXJzaW9uUGxpc3QoKTsNCisgICAgTlNEaWN0aW9uYXJ5ICpw
bGlzdCA9IGFkb3B0Q0YoX0NGQ29weVN5c3RlbVZlcnNpb25EaWN0aW9uYXJ5KCkpLmJyaWRnaW5n
QXV0b3JlbGVhc2UoKTsNCiANCiAgICAgRGVidWdnYWJsZUluZm9EYXRhIHJlc3VsdDsNCiAgICAg
cmVzdWx0LmRlYnVnZ2FibGVUeXBlID0gSW5zcGVjdG9yOjpEZWJ1Z2dhYmxlVHlwZTo6V2ViUGFn
ZTsNCiAgICAgcmVzdWx0LnRhcmdldFBsYXRmb3JtTmFtZSA9ICJtYWNPUyJfczsNCi0gICAgcmVz
dWx0LnRhcmdldEJ1aWxkVmVyc2lvbiA9IHBsaXN0W0AiUHJvZHVjdEJ1aWxkVmVyc2lvbiJdOw0K
LSAgICByZXN1bHQudGFyZ2V0UHJvZHVjdFZlcnNpb24gPSBwbGlzdFtAIlByb2R1Y3RVc2VyVmlz
aWJsZVZlcnNpb24iXTsNCisgICAgcmVzdWx0LnRhcmdldEJ1aWxkVmVyc2lvbiA9IHBsaXN0W3N0
YXRpY19jYXN0PE5TU3RyaW5nICo+KF9rQ0ZTeXN0ZW1WZXJzaW9uQnVpbGRWZXJzaW9uS2V5KV07
DQorICAgIHJlc3VsdC50YXJnZXRQcm9kdWN0VmVyc2lvbiA9IHBsaXN0W3N0YXRpY19jYXN0PE5T
U3RyaW5nICo+KF9rQ0ZTeXN0ZW1WZXJzaW9uUHJvZHVjdFVzZXJWaXNpYmxlVmVyc2lvbktleSld
Ow0KICAgICByZXN1bHQudGFyZ2V0SXNTaW11bGF0b3IgPSBmYWxzZTsNCiANCiAgICAgcmV0dXJu
IHJlc3VsdDsNCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>