<?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>119869</bug_id>
          
          <creation_ts>2013-08-15 15:20:28 -0700</creation_ts>
          <short_desc>[Windows] Consolidate WebKit Bundle handling</short_desc>
          <delta_ts>2013-08-15 15:43:57 -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>WebKit Misc.</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>galpeter</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>917734</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-15 15:20:28 -0700</bug_when>
    <thetext>The code to find and use the WebKit.resources bundle on Windows was replicated in a couple of places, and incompletely done in another.  This patch provides a single implementation of this logic, and updates the bundle referencing sites to use this one (correct) implementation.

This change also allows the WinLauncher executable to find and use the Inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917735</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-08-15 15:20:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/14751077&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917740</commentid>
    <comment_count>2</comment_count>
      <attachid>208863</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-15 15:28:41 -0700</bug_when>
    <thetext>Created attachment 208863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917749</commentid>
    <comment_count>3</comment_count>
      <attachid>208863</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-08-15 15:34:02 -0700</bug_when>
    <thetext>Comment on attachment 208863
Patch

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

&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters:7069
&gt; +    &lt;ClCompile Include=&quot;..\css\CSSFilterImageValue.cpp&quot; /&gt;

I think these are unrelated, but maybe expected automatic VS changes?

&gt; Source/WebCore/platform/win/WebCoreBundleWin.cpp:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

The license from the old file should carry over (so this should be &apos;2011, 2013&apos;).

&gt; Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp:161
&gt; +    RetainPtr&lt;CFURLRef&gt; htmlURLRef = adoptCF(CFBundleCopyResourceURL(WebCore::webKitBundle(), CFSTR(&quot;inspector&quot;), CFSTR(&quot;html&quot;), CFSTR(&quot;inspector&quot;)));

why do you need the explicit namespace? This file &apos;using namespace WebCore&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917753</commentid>
    <comment_count>4</comment_count>
      <attachid>208863</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-15 15:40:56 -0700</bug_when>
    <thetext>Comment on attachment 208863
Patch

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

&gt;&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters:7069
&gt;&gt; +    &lt;ClCompile Include=&quot;..\css\CSSFilterImageValue.cpp&quot; /&gt;
&gt; 
&gt; I think these are unrelated, but maybe expected automatic VS changes?

VS does annoying things when you add/remove files.  These may have been added to the vcxproj in an earlier change, but not added to the *filters file (*cough* krit *cough*) and are getting picked up with this commit.

&gt;&gt; Source/WebCore/platform/win/WebCoreBundleWin.cpp:2
&gt;&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.
&gt; 
&gt; The license from the old file should carry over (so this should be &apos;2011, 2013&apos;).

Will do.

&gt;&gt; Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp:161
&gt;&gt; +    RetainPtr&lt;CFURLRef&gt; htmlURLRef = adoptCF(CFBundleCopyResourceURL(WebCore::webKitBundle(), CFSTR(&quot;inspector&quot;), CFSTR(&quot;html&quot;), CFSTR(&quot;inspector&quot;)));
&gt; 
&gt; why do you need the explicit namespace? This file &apos;using namespace WebCore&apos;s.

Huh.  I&apos;ll correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917755</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-15 15:43:57 -0700</bug_when>
    <thetext>Committed r154146: &lt;http://trac.webkit.org/changeset/154146&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208863</attachid>
            <date>2013-08-15 15:28:41 -0700</date>
            <delta_ts>2013-08-15 15:40:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119869-20130815152824.patch</filename>
            <type>text/plain</type>
            <size>13709</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDE0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA4LTE1ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXSBDb25zb2xp
ZGF0ZSBXZWJLaXQgQnVuZGxlIEhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk4NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IEFk
ZCBuZXcgV2ViQ29yZUJ1bmRsZVdpbiBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2Vy
dGlmaWNhdGVQYXRoKTogVXNlIGNvcnJlY3QgYnVuZGxlIGhhbmRsaW5nIGxvZ2ljLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9Mb2NhbGl6ZWRTdHJpbmdzV2luLmNwcDogTW92ZSBidW5kbGUgaW1w
bGVtZW50YXRpb24gdG8KKyAgICAgICAgbmV3IFdlYkNvcmVCdW5kbGVXaW4uY3BwIGZpbGUuCisg
ICAgICAgICogcGxhdGZvcm0vd2luL1dlYkNvcmVCdW5kbGVXaW4uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVdlYktpdEJ1bmRsZSk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJL
aXRCdW5kbGUpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9XZWJDb3JlQnVuZGxlV2luLmg6IEFk
ZGVkLgorCiAyMDEzLTA4LTE1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAog
ICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTE5ODYzPiBbaU9TXSBVcHN0cmVhbSBXZWJD
b3JlL2VkaXRpbmcvaW9zCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE1NDEzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc1MjgsNiAr
NzUyOCw3IEBACiAgICAgICA8Rm9yY2VkSW5jbHVkZUZpbGVzIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPklDVVZlcnNpb24uaDwv
Rm9yY2VkSW5jbHVkZUZpbGVzPgogICAgICAgPEZvcmNlZEluY2x1ZGVGaWxlcyBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+SUNVVmVy
c2lvbi5oPC9Gb3JjZWRJbmNsdWRlRmlsZXM+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cV2ViQ29yZUJ1bmRsZVdpbi5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cV2ViQ29yZUluc3RhbmNlSGFu
ZGxlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xIaXRUZXN0
TG9jYXRpb24uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KQEAgLTE5Mjk4LDYgKzE5Mjk5LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXHdpblxTeXN0ZW1JbmZvLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xUZXh0UmVuZGVyaW5nTW9kZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFdDRGF0YU9iamVjdC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFdlYkNvcmVCdW5kbGVXaW4uaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxXZWJDb3JlSW5zdGFu
Y2VIYW5kbGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xIaXRU
ZXN0TG9jYXRpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0b3JhZ2VcU3Rv
cmFnZVN0cmF0ZWd5LmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxNTQxMzcpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJ
KHdvcmtpbmcgY29weSkKQEAgLTcwNjYsNiArNzA2NiwxMCBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cc3R5bGVcU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxzdHlsZVxTdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdHlsZVxTdHlsZVJlc29sdmVUcmVlLmNwcCIgLz4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xDU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxXZWJDb3JlQnVuZGxl
V2luLmNwcCI+CisgICAgICA8RmlsdGVyPnBsYXRmb3JtXHdpbjwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXE1vZHVsZXNcZmlsZXN5c3RlbVxBc3luY0ZpbGVXcml0ZXIuaCI+CkBAIC0xNDgx
NSw2ICsxNDgxOSwxMCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVG
b250U2l6ZUZ1bmN0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3R5bGVc
U3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHN0eWxlXFN0eWxlUmVzb2x2ZVRyZWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGNzc1xDU1NGaWx0ZXJJbWFnZVZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVx3aW5cV2ViQ29yZUJ1bmRsZVdpbi5oIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZv
cm1cd2luPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRl
bUdyb3VwPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXGNzc1xDU1NHcmFtbWFyLnkuaW4iPgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFu
YWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlzaW9uIDE1NDEzNikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oIgorI2luY2x1ZGUgIldlYkNvcmVCdW5kbGVXaW4uaCIKIAogI2luY2x1ZGUg
PGVycm5vLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTY5LDcgKzcwLDcgQEAgc3RhdGljIGNv
bnN0IGJvb2wgaWdub3JlU1NMRXJyb3JzID0gZ2V0ZQogc3RhdGljIENTdHJpbmcgY2VydGlmaWNh
dGVQYXRoKCkKIHsKICNpZiBVU0UoQ0YpCi0gICAgQ0ZCdW5kbGVSZWYgd2ViS2l0QnVuZGxlID0g
Q0ZCdW5kbGVHZXRCdW5kbGVXaXRoSWRlbnRpZmllcihDRlNUUigiY29tLmFwcGxlLldlYktpdCIp
KTsKKyAgICBDRkJ1bmRsZVJlZiB3ZWJLaXRCdW5kbGUgPSBXZWJDb3JlOjpnZXRXZWJLaXRCdW5k
bGUoKTsKICAgICBpZiAod2ViS2l0QnVuZGxlKSB7CiAgICAgICAgIFJldGFpblB0cjxDRlVSTFJl
Zj4gY2VydFVSTFJlZiA9IGFkb3B0Q0YoQ0ZCdW5kbGVDb3B5UmVzb3VyY2VVUkwod2ViS2l0QnVu
ZGxlLCBDRlNUUigiY2FjZXJ0IiksIENGU1RSKCJwZW0iKSwgQ0ZTVFIoImNlcnRpZmljYXRlcyIp
KSk7CiAgICAgICAgIGlmIChjZXJ0VVJMUmVmKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vTG9jYWxpemVkU3RyaW5nc1dpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0xvY2FsaXplZFN0cmluZ3NXaW4uY3BwCShyZXZpc2lvbiAxNTQx
MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTG9jYWxpemVkU3RyaW5nc1dpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDQzICszNCwxMyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENGKQorI2luY2x1ZGUgIldlYkNvcmVCdW5kbGVXaW4u
aCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJ1bmRsZS5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoQ0Yp
Ci0KLXN0YXRpYyBDRkJ1bmRsZVJlZiBjcmVhdGVXZWJLaXRCdW5kbGUoKQotewotICAgIGlmIChD
RkJ1bmRsZVJlZiBleGlzdGluZ0J1bmRsZSA9IENGQnVuZGxlR2V0QnVuZGxlV2l0aElkZW50aWZp
ZXIoQ0ZTVFIoImNvbS5hcHBsZS5XZWJLaXQiKSkpIHsKLSAgICAgICAgQ0ZSZXRhaW4oZXhpc3Rp
bmdCdW5kbGUpOwotICAgICAgICByZXR1cm4gZXhpc3RpbmdCdW5kbGU7Ci0gICAgfQotCi0gICAg
d2NoYXJfdCBkbGxQYXRoQnVmZmVyW01BWF9QQVRIXTsKLSAgICBEV09SRCBsZW5ndGggPSA6Okdl
dE1vZHVsZUZpbGVOYW1lVyhpbnN0YW5jZUhhbmRsZSgpLCBkbGxQYXRoQnVmZmVyLCBXVEZfQVJS
QVlfTEVOR1RIKGRsbFBhdGhCdWZmZXIpKTsKLSAgICBBU1NFUlQobGVuZ3RoKTsKLSAgICBBU1NF
UlQobGVuZ3RoIDwgV1RGX0FSUkFZX0xFTkdUSChkbGxQYXRoQnVmZmVyKSk7Ci0KLSAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGRsbFBhdGggPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aENo
YXJhY3RlcnNOb0NvcHkoMCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVbmlDaGFyKj4oZGxsUGF0
aEJ1ZmZlciksIGxlbmd0aCwga0NGQWxsb2NhdG9yTnVsbCkpOwotICAgIFJldGFpblB0cjxDRlVS
TFJlZj4gZGxsVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZVdpdGhGaWxlU3lzdGVtUGF0aCgwLCBk
bGxQYXRoLmdldCgpLCBrQ0ZVUkxXaW5kb3dzUGF0aFN0eWxlLCBmYWxzZSkpOwotICAgIFJldGFp
blB0cjxDRlVSTFJlZj4gZGxsRGlyZWN0b3J5VVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUNvcHlE
ZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50KDAsIGRsbFVSTC5nZXQoKSkpOwotICAgIFJldGFpblB0
cjxDRlVSTFJlZj4gcmVzb3VyY2VzRGlyZWN0b3J5VVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUNv
cHlBcHBlbmRpbmdQYXRoQ29tcG9uZW50KDAsIGRsbERpcmVjdG9yeVVSTC5nZXQoKSwgQ0ZTVFIo
IldlYktpdC5yZXNvdXJjZXMiKSwgdHJ1ZSkpOwotCi0gICAgcmV0dXJuIENGQnVuZGxlQ3JlYXRl
KDAsIHJlc291cmNlc0RpcmVjdG9yeVVSTC5nZXQoKSk7Ci19Ci0KLXN0YXRpYyBDRkJ1bmRsZVJl
ZiB3ZWJLaXRCdW5kbGUoKQotewotICAgIHN0YXRpYyBDRkJ1bmRsZVJlZiBidW5kbGUgPSBjcmVh
dGVXZWJLaXRCdW5kbGUoKTsKLSAgICBBU1NFUlQoYnVuZGxlKTsKLSAgICByZXR1cm4gYnVuZGxl
OwotfQotCi0jZW5kaWYgLy8gVVNFKENGKQotCiBTdHJpbmcgbG9jYWxpemVkU3RyaW5nKGNvbnN0
IGNoYXIqIGtleSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1dlYkNvcmVCdW5kbGVXaW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XZWJDb3JlQnVuZGxlV2luLmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XZWJDb3JlQnVuZGxlV2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvcmVCdW5kbGVXaW4uaCIKKworI2lmIFVTRShDRikK
KworI2luY2x1ZGUgIldlYkNvcmVJbnN0YW5jZUhhbmRsZS5oIgorI2luY2x1ZGUgPENvcmVGb3Vu
ZGF0aW9uL0NGQnVuZGxlLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0YXRpYyBDRkJ1bmRsZVJlZiBjcmVhdGVXZWJLaXRCdW5kbGUoKQor
eworICAgIGlmIChDRkJ1bmRsZVJlZiBleGlzdGluZ0J1bmRsZSA9IENGQnVuZGxlR2V0QnVuZGxl
V2l0aElkZW50aWZpZXIoQ0ZTVFIoImNvbS5hcHBsZS5XZWJLaXQiKSkpIHsKKyAgICAgICAgQ0ZS
ZXRhaW4oZXhpc3RpbmdCdW5kbGUpOworICAgICAgICByZXR1cm4gZXhpc3RpbmdCdW5kbGU7Cisg
ICAgfQorCisgICAgd2NoYXJfdCBkbGxQYXRoQnVmZmVyW01BWF9QQVRIXTsKKyAgICBEV09SRCBs
ZW5ndGggPSA6OkdldE1vZHVsZUZpbGVOYW1lVyhXZWJDb3JlOjppbnN0YW5jZUhhbmRsZSgpLCBk
bGxQYXRoQnVmZmVyLCBXVEZfQVJSQVlfTEVOR1RIKGRsbFBhdGhCdWZmZXIpKTsKKyAgICBBU1NF
UlQobGVuZ3RoKTsKKyAgICBBU1NFUlQobGVuZ3RoIDwgV1RGX0FSUkFZX0xFTkdUSChkbGxQYXRo
QnVmZmVyKSk7CisKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGRsbFBhdGggPSBhZG9wdENG
KENGU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNOb0NvcHkoMCwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBVbmlDaGFyKj4oZGxsUGF0aEJ1ZmZlciksIGxlbmd0aCwga0NGQWxsb2NhdG9yTnVsbCkp
OworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gZGxsVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZVdp
dGhGaWxlU3lzdGVtUGF0aCgwLCBkbGxQYXRoLmdldCgpLCBrQ0ZVUkxXaW5kb3dzUGF0aFN0eWxl
LCBmYWxzZSkpOworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gZGxsRGlyZWN0b3J5VVJMID0gYWRv
cHRDRihDRlVSTENyZWF0ZUNvcHlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50KDAsIGRsbFVSTC5n
ZXQoKSkpOworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gcmVzb3VyY2VzRGlyZWN0b3J5VVJMID0g
YWRvcHRDRihDRlVSTENyZWF0ZUNvcHlBcHBlbmRpbmdQYXRoQ29tcG9uZW50KDAsIGRsbERpcmVj
dG9yeVVSTC5nZXQoKSwgQ0ZTVFIoIldlYktpdC5yZXNvdXJjZXMiKSwgdHJ1ZSkpOworCisgICAg
cmV0dXJuIENGQnVuZGxlQ3JlYXRlKDAsIHJlc291cmNlc0RpcmVjdG9yeVVSTC5nZXQoKSk7Cit9
CisKK0NGQnVuZGxlUmVmIHdlYktpdEJ1bmRsZSgpCit7CisgICAgc3RhdGljIENGQnVuZGxlUmVm
IGJ1bmRsZSA9IGNyZWF0ZVdlYktpdEJ1bmRsZSgpOworICAgIEFTU0VSVChidW5kbGUpOworICAg
IHJldHVybiBidW5kbGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2ViQ29yZUJ1bmRsZVdpbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XZWJDb3JlQnVuZGxlV2luLmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2ViQ29yZUJ1bmRs
ZVdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYkNvcmVCdW5kbGVXaW5faAorI2RlZmluZSBXZWJDb3JlQnVuZGxlV2luX2gKKworI2lm
IFVTRShDRikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDRkJ1bmRsZVJlZiB3ZWJLaXRCdW5k
bGUoKTsKKworfQorCisjZW5kaWYKKworI2VuZGlmIC8vIFdlYkNvcmVCdW5kbGVXaW5faApJbmRl
eDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0MTQxKQorKysgU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDgtMTUgIEJy
ZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbmRvd3NdIENv
bnNvbGlkYXRlIFdlYktpdCBCdW5kbGUgaGFuZGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTg2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6b3Blbkluc3BlY3RvckZyb250
ZW5kKTogU3dpdGNoIHRvIG5ldworICAgICAgICBXZWJDb3JlOjp3ZWJraXRCdW5kbGUoKSBtZXRo
b2QuCisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6bG9jYWxpemVkU3RyaW5n
c1VSTCk6IERpdHRvLgorCiAyMDEzLTA4LTEyICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3JlIFdpbmRvd3MgYnVpbGQganVpY2UuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5jcHAJKHJldmlzaW9uIDE1NDEzNikKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcg
QEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJXZWJDb3JlQnVuZGxlV2lu
LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yRGVsZWdhdGUuaCIKICNpbmNsdWRlICJXZWJLaXQu
aCIKICNpbmNsdWRlICJXZWJNdXRhYmxlVVJMUmVxdWVzdC5oIgpAQCAtNjMsMTEgKzY0LDYgQEAg
c3RhdGljIGNvbnN0IEludFJlY3QmIGRlZmF1bHRXaW5kb3dSZWN0KAogICAgIHJldHVybiByZWN0
OwogfQogCi1zdGF0aWMgQ0ZCdW5kbGVSZWYgZ2V0V2ViS2l0QnVuZGxlKCkKLXsKLSAgICByZXR1
cm4gQ0ZCdW5kbGVHZXRCdW5kbGVXaXRoSWRlbnRpZmllcihDRlNUUigiY29tLmFwcGxlLldlYktp
dCIpKTsKLX0KLQogV2ViSW5zcGVjdG9yQ2xpZW50OjpXZWJJbnNwZWN0b3JDbGllbnQoV2ViVmll
dyogd2ViVmlldykKICAgICA6IG1faW5zcGVjdGVkV2ViVmlldyh3ZWJWaWV3KQogICAgICwgbV9m
cm9udGVuZFBhZ2UoMCkKQEAgLTE2Miw3ICsxNTgsNyBAQCBXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqIFdlYkluCiAKICAgICBDT01QdHI8V2ViTXV0YWJsZVVSTFJlcXVlc3Q+IHJl
cXVlc3QoQWRvcHRDT00sIFdlYk11dGFibGVVUkxSZXF1ZXN0OjpjcmVhdGVJbnN0YW5jZSgpKTsK
IAotICAgIFJldGFpblB0cjxDRlVSTFJlZj4gaHRtbFVSTFJlZiA9IGFkb3B0Q0YoQ0ZCdW5kbGVD
b3B5UmVzb3VyY2VVUkwoZ2V0V2ViS2l0QnVuZGxlKCksIENGU1RSKCJpbnNwZWN0b3IiKSwgQ0ZT
VFIoImh0bWwiKSwgQ0ZTVFIoImluc3BlY3RvciIpKSk7CisgICAgUmV0YWluUHRyPENGVVJMUmVm
PiBodG1sVVJMUmVmID0gYWRvcHRDRihDRkJ1bmRsZUNvcHlSZXNvdXJjZVVSTChXZWJDb3JlOjp3
ZWJLaXRCdW5kbGUoKSwgQ0ZTVFIoImluc3BlY3RvciIpLCBDRlNUUigiaHRtbCIpLCBDRlNUUigi
aW5zcGVjdG9yIikpKTsKICAgICBpZiAoIWh0bWxVUkxSZWYpCiAgICAgICAgIHJldHVybiAwOwog
CkBAIC0yNjIsNyArMjU4LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZnJv
bnRlbgogCiBTdHJpbmcgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmxvY2FsaXplZFN0cmlu
Z3NVUkwoKQogewotICAgIFJldGFpblB0cjxDRlVSTFJlZj4gdXJsID0gYWRvcHRDRihDRkJ1bmRs
ZUNvcHlSZXNvdXJjZVVSTChnZXRXZWJLaXRCdW5kbGUoKSwgQ0ZTVFIoImxvY2FsaXplZFN0cmlu
Z3MiKSwgQ0ZTVFIoImpzIiksIDApKTsKKyAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHVybCA9IGFk
b3B0Q0YoQ0ZCdW5kbGVDb3B5UmVzb3VyY2VVUkwoV2ViQ29yZTo6d2ViS2l0QnVuZGxlKCksIENG
U1RSKCJsb2NhbGl6ZWRTdHJpbmdzIiksIENGU1RSKCJqcyIpLCAwKSk7CiAgICAgaWYgKCF1cmwp
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAo=
</data>
<flag name="review"
          id="230823"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>