<?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>123632</bug_id>
          
          <creation_ts>2013-11-01 13:42:32 -0700</creation_ts>
          <short_desc>[Cocoa] Avoid some double-wrapping of strings and URLs</short_desc>
          <delta_ts>2013-11-01 14:25:11 -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>WebKit2</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946002</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-11-01 13:42:32 -0700</bug_when>
    <thetext>Avoid re-wrapping when creating a WKStringRef or WKURLRef from a WKNSString or WKNSURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946004</commentid>
    <comment_count>1</comment_count>
      <attachid>215755</attachid>
    <who name="">mitz</who>
    <bug_when>2013-11-01 13:43:16 -0700</bug_when>
    <thetext>Created attachment 215755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946032</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-11-01 14:25:11 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r158456&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215755</attachid>
            <date>2013-11-01 13:43:16 -0700</date>
            <delta_ts>2013-11-01 13:45:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123632-20131101134315.patch</filename>
            <type>text/plain</type>
            <size>21342</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODQ1MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTExLTAxICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBdm9pZCBzb21lIGRv
dWJsZS13cmFwcGluZyBvZiBzdHJpbmdzIGFuZCBVUkxzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM2MzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9jZi9XS1N0cmluZ0NGLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvY2YvV0tTdHJpbmdDRi5tbTogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2NmL1dLU3RyaW5nQ0YuY3BwLgor
ICAgICAgICAod2tOU1N0cmluZ0NsYXNzKTogQWRkZWQgdGhpcyBoZWxwZXIuCisgICAgICAgIChX
S1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyk6IElmIHRoZSBwYXNzZWQtaW4gQ0ZTdHJpbmcgaXMg
YWxyZWFkeSB3cmFwcGluZyBhIFdlYlN0cmluZywKKyAgICAgICAgdGhlbiByZXRhaW4gaXQgYW5k
IHJldHVybiBpdC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvY2YvV0tVUkxDRi5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogU2hhcmVkL0FQSS9jL2NmL1dLVVJMQ0YubW06IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZi9XS1VSTENGLmNwcC4KKyAgICAgICAgKHdrTlNV
UkxDbGFzcyk6IEFkZGVkIHRoaXMgaGVscGVyLgorICAgICAgICAoV0tVUkxDcmVhdGVXaXRoQ0ZV
UkwpOiBJZiB0aGUgcGFzc2VkLWluIENGVVJMIGlzIGFscmVhZHkgd3JhcHBpbmcgYSBXZWJVUkws
IHRoZW4gcmV0YWluIGl0CisgICAgICAgIGFuZCByZXR1cm4gaXQuCisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBVcGRhdGVkIGZvciByZW5hbWVzLgorCiAyMDEz
LTExLTAxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW90ZSBMYXllciBUcmVlOiBWZW5kIGxheWVyIGNvbnRlbnRzIHZpYSBJT1N1cmZhY2VzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tTdHJpbmdDRi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2NmL1dLU3RyaW5nQ0YuY3BwCShy
ZXZpc2lvbiAxNTg0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tTdHJp
bmdDRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS1N0cmluZ0NGLmgiCi0KLSNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1XS1N0cmluZ1JlZiBX
S1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhDRlN0cmluZ1JlZiBjZlN0cmluZykKLXsKLSAgICBT
dHJpbmcgc3RyaW5nKGNmU3RyaW5nKTsKLSAgICByZXR1cm4gdG9Db3BpZWRBUEkoc3RyaW5nKTsK
LX0KLQotQ0ZTdHJpbmdSZWYgV0tTdHJpbmdDb3B5Q0ZTdHJpbmcoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yUmVmLCBXS1N0cmluZ1JlZiBzdHJpbmdSZWYpCi17Ci0gICAgQVNTRVJUKCF0b0ltcGwo
c3RyaW5nUmVmKS0+c3RyaW5nKCkuaXNOdWxsKCkpOwotCi0gICAgLy8gTk9URTogVGhpcyBkb2Vz
IG5vdCB1c2UgU3RyaW5nSW1wbDo6Y3JlYXRlQ0ZTdHJpbmcoKSBzaW5jZSB0aGF0IGZ1bmN0aW9u
Ci0gICAgLy8gZXhwZWN0cyB0byBiZSBjYWxsZWQgb24gdGhlIHRocmVhZCBydW5uaW5nIFdlYkNv
cmUuCi0gICAgaWYgKHRvSW1wbChzdHJpbmdSZWYpLT5zdHJpbmcoKS5pczhCaXQoKSkKLSAgICAg
ICAgcmV0dXJuIENGU3RyaW5nQ3JlYXRlV2l0aEJ5dGVzKGFsbG9jYXRvclJlZiwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBVSW50OCo+KHRvSW1wbChzdHJpbmdSZWYpLT5zdHJpbmcoKS5jaGFyYWN0
ZXJzOCgpKSwgdG9JbXBsKHN0cmluZ1JlZiktPnN0cmluZygpLmxlbmd0aCgpLCBrQ0ZTdHJpbmdF
bmNvZGluZ0lTT0xhdGluMSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIENGU3RyaW5nQ3JlYXRlV2l0aENo
YXJhY3RlcnMoYWxsb2NhdG9yUmVmLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVuaUNoYXIqPih0
b0ltcGwoc3RyaW5nUmVmKS0+c3RyaW5nKCkuY2hhcmFjdGVyczE2KCkpLCB0b0ltcGwoc3RyaW5n
UmVmKS0+c3RyaW5nKCkubGVuZ3RoKCkpOwotfQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL2NmL1dLU3RyaW5nQ0YubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL2NmL1dLU3RyaW5nQ0YubW0JKHJldmlzaW9uIDE1ODMyMSkJKGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL2NmL1dLU3RyaW5nQ0YuY3BwOjE1ODMyMSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZi9XS1N0cmluZ0NGLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV0tTdHJpbmdDRi5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKworV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmco
Q0ZTdHJpbmdSZWYgY2ZTdHJpbmcpCit7CisgICAgU3RyaW5nIHN0cmluZyhjZlN0cmluZyk7Cisg
ICAgcmV0dXJuIHRvQ29waWVkQVBJKHN0cmluZyk7Cit9CisKK0NGU3RyaW5nUmVmIFdLU3RyaW5n
Q29weUNGU3RyaW5nKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvclJlZiwgV0tTdHJpbmdSZWYgc3Ry
aW5nUmVmKQoreworICAgIEFTU0VSVCghdG9JbXBsKHN0cmluZ1JlZiktPnN0cmluZygpLmlzTnVs
bCgpKTsKKworICAgIC8vIE5PVEU6IFRoaXMgZG9lcyBub3QgdXNlIFN0cmluZ0ltcGw6OmNyZWF0
ZUNGU3RyaW5nKCkgc2luY2UgdGhhdCBmdW5jdGlvbgorICAgIC8vIGV4cGVjdHMgdG8gYmUgY2Fs
bGVkIG9uIHRoZSB0aHJlYWQgcnVubmluZyBXZWJDb3JlLgorICAgIGlmICh0b0ltcGwoc3RyaW5n
UmVmKS0+c3RyaW5nKCkuaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBDRlN0cmluZ0NyZWF0ZVdp
dGhCeXRlcyhhbGxvY2F0b3JSZWYsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPih0b0lt
cGwoc3RyaW5nUmVmKS0+c3RyaW5nKCkuY2hhcmFjdGVyczgoKSksIHRvSW1wbChzdHJpbmdSZWYp
LT5zdHJpbmcoKS5sZW5ndGgoKSwga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEsIHRydWUpOwor
ICAgIHJldHVybiBDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKGFsbG9jYXRvclJlZiwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBVbmlDaGFyKj4odG9JbXBsKHN0cmluZ1JlZiktPnN0cmluZygp
LmNoYXJhY3RlcnMxNigpKSwgdG9JbXBsKHN0cmluZ1JlZiktPnN0cmluZygpLmxlbmd0aCgpKTsK
K30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZi9XS1N0cmluZ0NGLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZi9XS1N0cmluZ0NGLm1t
CSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tTdHJp
bmdDRi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjMsMTcgKzIzLDM3IEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldLU3RyaW5nQ0YuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTdHJpbmdD
Ri5oIgogCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKKyNpbXBvcnQgIldLTlNTdHJpbmcuaCIKKyNp
bXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2lm
IFdLX0FQSV9FTkFCTEVECitzdGF0aWMgaW5saW5lIENsYXNzIHdrTlNTdHJpbmdDbGFzcygpCit7
CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOworICAgIHN0YXRpYyBDbGFzcyB3a05T
U3RyaW5nQ2xhc3M7CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZSwgXnsKKyAgICAgICAgd2tOU1N0
cmluZ0NsYXNzID0gW1dLTlNTdHJpbmcgY2xhc3NdOworICAgIH0pOworICAgIHJldHVybiB3a05T
U3RyaW5nQ2xhc3M7Cit9CisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKKwogV0tTdHJpbmdSZWYg
V0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoQ0ZTdHJpbmdSZWYgY2ZTdHJpbmcpCiB7CisjaWYg
V0tfQVBJX0VOQUJMRUQKKyAgICAvLyBTaW5jZSBXS05TU3RyaW5nIGlzIGFuIGludGVybmFsIGNs
YXNzIHdpdGggbm8gc3ViY2xhc3Nlcywgd2UgY2FuIGRvIGEgc2ltcGxlIGVxdWFsaXR5IGNoZWNr
LgorICAgIGlmIChvYmplY3RfZ2V0Q2xhc3MoKE5TU3RyaW5nICopY2ZTdHJpbmcpID09IHdrTlNT
dHJpbmdDbGFzcygpKSB7CisgICAgICAgIHJldHVybiB0b0FQSShzdGF0aWNfY2FzdDxXZWJTdHJp
bmcqPigmWyhXS05TU3RyaW5nICopY2ZTdHJpbmcgcmV0YWluXS5fYXBpT2JqZWN0KSk7CisgICAg
fQorI2VuZGlmCiAgICAgU3RyaW5nIHN0cmluZyhjZlN0cmluZyk7CiAgICAgcmV0dXJuIHRvQ29w
aWVkQVBJKHN0cmluZyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2Yv
V0tVUkxDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2Nm
L1dLVVJMQ0YuY3BwCShyZXZpc2lvbiAxNTg0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvY2YvV0tVUkxDRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS1VSTENGLmgiCi0KLSNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NGVVJMRXh0cmFzLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0K
LVdLVVJMUmVmIFdLVVJMQ3JlYXRlV2l0aENGVVJMKENGVVJMUmVmIGNmVVJMKQotewotICAgIGlm
ICghY2ZVUkwpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQ1N0cmluZyB1cmxCeXRlczsKLSAg
ICBnZXRVUkxCeXRlcyhjZlVSTCwgdXJsQnl0ZXMpOwotCi0gICAgcmV0dXJuIHRvQ29waWVkVVJM
QVBJKHVybEJ5dGVzLmRhdGEoKSk7Ci19Ci0KLUNGVVJMUmVmIFdLVVJMQ29weUNGVVJMKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvclJlZiwgV0tVUkxSZWYgVVJMUmVmKQotewotICAgIEFTU0VSVCgh
dG9JbXBsKFVSTFJlZiktPnN0cmluZygpLmlzTnVsbCgpKTsKLQotICAgIC8vIFdlIGZpcnN0IGNy
ZWF0ZSBhIENTdHJpbmcgYW5kIHRoZW4gY3JlYXRlIHRoZSBDRlVSTCBmcm9tIGl0LiBUaGlzIHdp
bGwgZW5zdXJlIHRoYXQgdGhlIENGVVJMIGlzIHN0b3JlZCBpbiAKLSAgICAvLyBVVEYtOCB3aGlj
aCB1c2VzIGxlc3MgbWVtb3J5IGFuZCBpcyB3aGF0IFdlYktpdCBjbGllbnRzIG1pZ2h0IGV4cGVj
dC4KLQotICAgIC8vIFRoaXMgcGF0dGVybiBvZiB1c2luZyBVVEYtOCBhbmQgdGhlbiBmYWxsaW5n
IGJhY2sgdG8gTGF0aW4xIG9uIGZhaWx1cmUgbWF0Y2hlcyBVUkw6OmNyZWF0ZUNGU3RyaW5nIHdp
dGggdGhlCi0gICAgLy8gbWFqb3IgZGlmZmVybmNlIGJlaW5nIHRoYXQgVVJMIGRvZXMgbm90IGRv
IGEgVVRGLTggY29udmVyc2lvbiBhbmQgaW5zdGVhZCBjaG9wcyBvZmYgdGhlIGhpZ2ggYml0cyBv
ZiB0aGUgVVRGLTE2Ci0gICAgLy8gY2hhcmFjdGVyIHNlcXVlbmNlLgotCi0gICAgQ1N0cmluZyBi
dWZmZXIgPSB0b0ltcGwoVVJMUmVmKS0+c3RyaW5nKCkudXRmOCgpOwotICAgIENGVVJMUmVmIHJl
c3VsdCA9IENGVVJMQ3JlYXRlQWJzb2x1dGVVUkxXaXRoQnl0ZXMoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVSW50OCo+KGJ1ZmZlci5kYXRhKCkpLCBidWZmZXIu
bGVuZ3RoKCksIGtDRlN0cmluZ0VuY29kaW5nVVRGOCwgMCwgdHJ1ZSk7Ci0gICAgaWYgKCFyZXN1
bHQpCi0gICAgICAgIHJlc3VsdCA9IENGVVJMQ3JlYXRlQWJzb2x1dGVVUkxXaXRoQnl0ZXMoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVSW50OCo+KGJ1ZmZlci5k
YXRhKCkpLCBidWZmZXIubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xLCAwLCB0
cnVlKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL2NmL1dLVVJMQ0YubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL2NmL1dLVVJMQ0YubW0JKHJldmlzaW9uIDE1ODQzNikJKGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL2NmL1dLVVJMQ0YuY3BwOjE1ODQzNikKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9jZi9XS1VSTENGLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tVUkxDRi5o
IgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DRlVSTEV4dHJh
cy5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OworCitXS1VSTFJlZiBXS1VSTENyZWF0ZVdpdGhDRlVSTChDRlVSTFJlZiBjZlVSTCkKK3sK
KyAgICBpZiAoIWNmVVJMKQorICAgICAgICByZXR1cm4gMDsKKworICAgIENTdHJpbmcgdXJsQnl0
ZXM7CisgICAgZ2V0VVJMQnl0ZXMoY2ZVUkwsIHVybEJ5dGVzKTsKKworICAgIHJldHVybiB0b0Nv
cGllZFVSTEFQSSh1cmxCeXRlcy5kYXRhKCkpOworfQorCitDRlVSTFJlZiBXS1VSTENvcHlDRlVS
TChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3JSZWYsIFdLVVJMUmVmIFVSTFJlZikKK3sKKyAgICBB
U1NFUlQoIXRvSW1wbChVUkxSZWYpLT5zdHJpbmcoKS5pc051bGwoKSk7CisKKyAgICAvLyBXZSBm
aXJzdCBjcmVhdGUgYSBDU3RyaW5nIGFuZCB0aGVuIGNyZWF0ZSB0aGUgQ0ZVUkwgZnJvbSBpdC4g
VGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBDRlVSTCBpcyBzdG9yZWQgaW4gCisgICAgLy8gVVRG
LTggd2hpY2ggdXNlcyBsZXNzIG1lbW9yeSBhbmQgaXMgd2hhdCBXZWJLaXQgY2xpZW50cyBtaWdo
dCBleHBlY3QuCisKKyAgICAvLyBUaGlzIHBhdHRlcm4gb2YgdXNpbmcgVVRGLTggYW5kIHRoZW4g
ZmFsbGluZyBiYWNrIHRvIExhdGluMSBvbiBmYWlsdXJlIG1hdGNoZXMgVVJMOjpjcmVhdGVDRlN0
cmluZyB3aXRoIHRoZQorICAgIC8vIG1ham9yIGRpZmZlcm5jZSBiZWluZyB0aGF0IFVSTCBkb2Vz
IG5vdCBkbyBhIFVURi04IGNvbnZlcnNpb24gYW5kIGluc3RlYWQgY2hvcHMgb2ZmIHRoZSBoaWdo
IGJpdHMgb2YgdGhlIFVURi0xNgorICAgIC8vIGNoYXJhY3RlciBzZXF1ZW5jZS4KKworICAgIENT
dHJpbmcgYnVmZmVyID0gdG9JbXBsKFVSTFJlZiktPnN0cmluZygpLnV0ZjgoKTsKKyAgICBDRlVS
TFJlZiByZXN1bHQgPSBDRlVSTENyZWF0ZUFic29sdXRlVVJMV2l0aEJ5dGVzKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPihidWZmZXIuZGF0YSgpKSwg
YnVmZmVyLmxlbmd0aCgpLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgsIDAsIHRydWUpOworICAgIGlm
ICghcmVzdWx0KQorICAgICAgICByZXN1bHQgPSBDRlVSTENyZWF0ZUFic29sdXRlVVJMV2l0aEJ5
dGVzKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPihi
dWZmZXIuZGF0YSgpKSwgYnVmZmVyLmxlbmd0aCgpLCBrQ0ZTdHJpbmdFbmNvZGluZ0lTT0xhdGlu
MSwgMCwgdHJ1ZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9jZi9XS1VSTENGLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9jZi9XS1VSTENGLm1tCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tVUkxDRi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjMsMjQg
KzIzLDQ1IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldLVVJMQ0YuaCIKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiV0tVUkxDRi5oIgogCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9DRlVSTEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQgIldLQVBJQ2FzdC5oIgorI2lt
cG9ydCAiV0tOU1VSTC5oIgorI2ltcG9ydCA8V2ViQ29yZS9DRlVSTEV4dHJhcy5oPgorI2ltcG9y
dCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2ltcG9ydCA8
d3RmL1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2ltcG9ydCA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAorI2lmIFdLX0FQSV9FTkFCTEVECitzdGF0aWMgaW5saW5lIENsYXNz
IHdrTlNVUkxDbGFzcygpCit7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOworICAg
IHN0YXRpYyBDbGFzcyB3a05TVVJMQ2xhc3M7CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZSwgXnsK
KyAgICAgICAgd2tOU1VSTENsYXNzID0gW1dLTlNVUkwgY2xhc3NdOworICAgIH0pOworICAgIHJl
dHVybiB3a05TVVJMQ2xhc3M7Cit9CisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKKwogV0tVUkxS
ZWYgV0tVUkxDcmVhdGVXaXRoQ0ZVUkwoQ0ZVUkxSZWYgY2ZVUkwpCiB7CiAgICAgaWYgKCFjZlVS
TCkKICAgICAgICAgcmV0dXJuIDA7CiAKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIC8vIFNpbmNl
IFdLTlNVUkwgaXMgYW4gaW50ZXJuYWwgY2xhc3Mgd2l0aCBubyBzdWJjbGFzc2VzLCB3ZSBjYW4g
ZG8gYSBzaW1wbGUgZXF1YWxpdHkgY2hlY2suCisgICAgaWYgKG9iamVjdF9nZXRDbGFzcygoTlNV
UkwgKiljZlVSTCkgPT0gd2tOU1VSTENsYXNzKCkpIHsKKyAgICAgICAgcmV0dXJuIHRvQVBJKHN0
YXRpY19jYXN0PFdlYlVSTCo+KCZbKFdLTlNVUkwgKiljZlVSTCByZXRhaW5dLl9hcGlPYmplY3Qp
KTsKKyAgICB9CisjZW5kaWYKKwogICAgIENTdHJpbmcgdXJsQnl0ZXM7CiAgICAgZ2V0VVJMQnl0
ZXMoY2ZVUkwsIHVybEJ5dGVzKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU4NDM2KQorKysgU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC04NTAsOSArODUwLDkgQEAKIAkJQkM0MDc2MEMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJM
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0MDc1RjAxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNDA3NjBEMTI0RkYwMjcwMDY4
RjIwQSAvKiBXS1VSTFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNDA3NUYxMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNl
LmNwcCAqLzsgfTsKIAkJQkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NUYy
MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkM0MDc2MTkxMjRGRjAzNzAwNjhGMjBBIC8q
IFdLU3RyaW5nQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM0MDc2MTExMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuY3BwICovOyB9Owor
CQlCQzQwNzYxOTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NjExMTI0RkYwMzcwMDY4RjIw
QSAvKiBXS1N0cmluZ0NGLm1tICovOyB9OwogCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyog
V0tTdHJpbmdDRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM0MDc2MTIxMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzQwNzYxQjEyNEZGMDM3MDA2
OEYyMEEgLyogV0tVUkxDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzQwNzYxMzEyNEZGMDM3MDA2OEYyMEEgLyogV0tVUkxDRi5jcHAgKi87IH07
CisJCUJDNDA3NjFCMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1VSTENGLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc2MTMxMjRGRjAzNzAwNjhGMjBB
IC8qIFdLVVJMQ0YubW0gKi87IH07CiAJCUJDNDA3NjFDMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1VS
TENGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQw
NzYxNDEyNEZGMDM3MDA2OEYyMEEgLyogV0tVUkxDRi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNDA3NjI3MTI0RkYwNDAwMDY4RjIwQSAvKiBX
S0NlcnRpZmljYXRlSW5mb01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM0MDc2MjExMjRGRjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZv
TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkM0MDc2MjgxMjRGRjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc2MjIxMjRGRjA0
MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvTWFjLm1tICovOyB9OwpAQCAtMjM4OCw5ICsy
Mzg4LDkgQEAKIAkJQkM0MDc1RjAxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFJlcXVlc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0MDc1RjExMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVz
cG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVUkxSZXNw
b25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNDA3NUYyMTI0RkYwMjcw
MDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLVVJMUmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM0MDc2
MTExMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV0tTdHJpbmdDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDNDA3NjExMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTdHJpbmdDRi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0MDc2MTIxMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5n
Q0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTdHJpbmdDRi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzQwNzYxMzEyNEZGMDM3MDA2OEYyMEEgLyogV0tV
UkxDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VSTENGLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0MDc2MTMxMjRGRjAzNzAwNjhGMjBB
IC8qIFdLVVJMQ0YubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S1VSTENGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzQwNzYxNDEyNEZGMDM3
MDA2OEYyMEEgLyogV0tVUkxDRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1VSTENGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNDA3NjIxMTI0RkYwNDAw
MDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0NlcnRpZmljYXRlSW5mb01hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzQwNzYyMjEyNEZGMDQwMDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0NlcnRpZmljYXRl
SW5mb01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3NTksOSArNDc1OSw5
IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQ0ZENTQ4OTEzMkQ4MjY4MDA1NUQ4MTYgLyogV0tF
cnJvckNGLmNwcCAqLywKIAkJCQlCQ0ZENTQ4QTEzMkQ4MjY4MDA1NUQ4MTYgLyogV0tFcnJvckNG
LmggKi8sCi0JCQkJQkM0MDc2MTExMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuY3BwICov
LAorCQkJCUJDNDA3NjExMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLm1tICovLAogCQkJ
CUJDNDA3NjEyMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLmggKi8sCi0JCQkJQkM0MDc2
MTMxMjRGRjAzNzAwNjhGMjBBIC8qIFdLVVJMQ0YuY3BwICovLAorCQkJCUJDNDA3NjEzMTI0RkYw
MzcwMDY4RjIwQSAvKiBXS1VSTENGLm1tICovLAogCQkJCUJDNDA3NjE0MTI0RkYwMzcwMDY4RjIw
QSAvKiBXS1VSTENGLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNmOwpAQCAtNzI1MiwxMiArNzI1
MiwxMiBAQAogCQkJCUY2MzQ0NDVDMTJBODg1RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2lu
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjAzMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYwNTEyNEZG
MDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkM0MDc2MTkx
MjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM0
MDc2MTkxMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkxQTRBOUFBOTEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MDcxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0Q1RUJCRTE3NDZCMDRDMDAwQzFDNDUgLyogV0tU
eXBlUmVmV3JhcHBlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjA5MTI0RkYwMjcwMDY4
RjIwQSAvKiBXS1VSTC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQzQwNzYxQjEyNEZGMDM3MDA2
OEYyMEEgLyogV0tVUkxDRi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQwNzYxQjEyNEZGMDM3
MDA2OEYyMEEgLyogV0tVUkxDRi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjBCMTI0RkYw
MjcwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2
MkExMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTEyQTk3NjAxODBFMDMxRDAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="238565"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>