<?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>5037</bug_id>
          
          <creation_ts>2005-09-18 03:47:12 -0700</creation_ts>
          <short_desc>WebCore should handled MIME types to allow SVG support</short_desc>
          <delta_ts>2005-09-20 02:54:27 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>19845</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-09-18 03:47:12 -0700</bug_when>
    <thetext>WebCore should handled MIME types to allow SVG support

Basically MIME type handling in WebKit should be cleaned up.  As part of that cleanup, the WebCore 
supported mime type list should be moved down into WebCore.

Patch attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19846</commentid>
    <comment_count>1</comment_count>
      <attachid>3931</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-09-18 03:48:44 -0700</bug_when>
    <thetext>Created attachment 3931
The webkit portion of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19847</commentid>
    <comment_count>2</comment_count>
      <attachid>3932</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-09-18 03:49:49 -0700</bug_when>
    <thetext>Created attachment 3932
The WebCore portion of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19997</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-09-19 00:24:27 -0700</bug_when>
    <thetext>1) I suggest using NSArray instead of NSSet for the lists of supported MIME types; the associative 
properties of a set are not required, and so an array is likely to be more efficient.

2) I would support putting the list of supported MIME types in WebCore if it were shared with or used by 
WebCore in any way - as it is, it just seems to be adding more levels of indirection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20070</commentid>
    <comment_count>4</comment_count>
      <attachid>3961</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-09-20 01:03:31 -0700</bug_when>
    <thetext>Created attachment 3961
Updated WebKit patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20071</commentid>
    <comment_count>5</comment_count>
      <attachid>3962</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-09-20 01:04:31 -0700</bug_when>
    <thetext>Created attachment 3962
Updated WebCore patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20073</commentid>
    <comment_count>6</comment_count>
      <attachid>3962</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-09-20 01:18:17 -0700</bug_when>
    <thetext>Comment on attachment 3962
Updated WebCore patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3931</attachid>
            <date>2005-09-18 03:48:44 -0700</date>
            <delta_ts>2005-09-20 01:03:31 -0700</delta_ts>
            <desc>The webkit portion of the patch.</desc>
            <filename>webkit-mime.patch</filename>
            <type>text/plain</type>
            <size>21934</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYlZpZXcuc3VicHJvai9XZWJEYXRhU291cmNlLm0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViRGF0YVNvdXJjZS5tLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjIxMQpkaWZmIC1wIC11IC1yMS4yMTEgV2ViVmlldy5zdWJwcm9q
L1dlYkRhdGFTb3VyY2UubQotLS0gV2ViVmlldy5zdWJwcm9qL1dlYkRhdGFTb3VyY2UubQkxNSBT
ZXAgMjAwNSAwMToyNjoxMiAtMDAwMAkxLjIxMQorKysgV2ViVmlldy5zdWJwcm9qL1dlYkRhdGFT
b3VyY2UubQkxOCBTZXAgMjAwNSAxMDo0ODoyMyAtMDAwMApAQCAtNjUxLDQzICs2NTEsMzYgQEAK
ICAgICBfcHJpdmF0ZS0+bWFpbkRvY3VtZW50RXJyb3IgPSBuaWw7CiB9CiAKK3N0YXRpYyBpbmxp
bmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywg
Q2xhc3MgY2xhc3MsIE5TU2V0ICpzdXBwb3J0VHlwZXMpCit7CisgICAgTlNFbnVtZXJhdG9yICpl
bnVtZXJhdG9yID0gW3N1cHBvcnRUeXBlcyBvYmplY3RFbnVtZXJhdG9yXTsKKyAgICBBU1NFUlQo
ZW51bWVyYXRvciAhPSBuaWwpOworICAgIE5TU3RyaW5nICptaW1lID0gbmlsOworICAgIHdoaWxl
ICgobWltZSA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKKyAgICAgICAgLy8g
RG9uJ3QgY2xvYmJlciBwcmV2aW91c2x5LXJlZ2lzdGVyZWQgY2xhc3Nlcy4KKyAgICAgICAgaWYg
KFthbGxUeXBlcyBvYmplY3RGb3JLZXk6bWltZV0gPT0gbmlsKQorICAgICAgICAgICAgW2FsbFR5
cGVzIHNldE9iamVjdDpjbGFzcyBmb3JLZXk6bWltZV07CisgICAgfQorfQorCiArIChOU011dGFi
bGVEaWN0aW9uYXJ5ICopX3JlcFR5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lvbjooQk9PTClhbGxv
d0ltYWdlVHlwZU9taXNzaW9uCiB7CiAgICAgc3RhdGljIE5TTXV0YWJsZURpY3Rpb25hcnkgKnJl
cFR5cGVzID0gbmlsOwotICAgIHN0YXRpYyBCT09MIGFkZGVkSW1hZ2VUeXBlczsKKyAgICBzdGF0
aWMgQk9PTCBhZGRlZEltYWdlVHlwZXMgPSBOTzsKICAgICAKICAgICBpZiAoIXJlcFR5cGVzKSB7
Ci0gICAgICAgIHJlcFR5cGVzID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0
aE9iamVjdHNBbmRLZXlzOgotICAgICAgICAgICAgW1dlYkhUTUxSZXByZXNlbnRhdGlvbiBjbGFz
c10sIEAidGV4dC9odG1sIiwKLQkgICAgW1dlYkhUTUxSZXByZXNlbnRhdGlvbiBjbGFzc10sIEAi
dGV4dC94bWwiLAotCSAgICBbV2ViSFRNTFJlcHJlc2VudGF0aW9uIGNsYXNzXSwgQCJ0ZXh0L3hz
bCIsCi0JICAgIFtXZWJIVE1MUmVwcmVzZW50YXRpb24gY2xhc3NdLCBAImFwcGxpY2F0aW9uL3ht
bCIsCi0JICAgIFtXZWJIVE1MUmVwcmVzZW50YXRpb24gY2xhc3NdLCBAImFwcGxpY2F0aW9uL3ho
dG1sK3htbCIsCi0gICAgICAgICAgICBbV2ViSFRNTFJlcHJlc2VudGF0aW9uIGNsYXNzXSwgQCJh
cHBsaWNhdGlvbi9yc3MreG1sIiwKLSAgICAgICAgICAgIFtXZWJIVE1MUmVwcmVzZW50YXRpb24g
Y2xhc3NdLCBAImFwcGxpY2F0aW9uL2F0b20reG1sIiwKLSAgICAgICAgICAgIFtXZWJIVE1MUmVw
cmVzZW50YXRpb24gY2xhc3NdLCBAImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2ZSIsCi0gICAgICAg
ICAgICBbV2ViSFRNTFJlcHJlc2VudGF0aW9uIGNsYXNzXSwgQCJtdWx0aXBhcnQveC1taXhlZC1y
ZXBsYWNlIiwKLSAgICAgICAgICAgIFtXZWJUZXh0UmVwcmVzZW50YXRpb24gY2xhc3NdLCBAInRl
eHQvIiwKLSAgICAgICAgICAgIFtXZWJUZXh0UmVwcmVzZW50YXRpb24gY2xhc3NdLCBAImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCIsCi0gICAgICAgICAgICBuaWxdOworICAgICAgICByZXBUeXBl
cyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07CisgICAgICAgIGFkZFR5cGVz
RnJvbUNsYXNzKHJlcFR5cGVzLCBbV2ViSFRNTFJlcHJlc2VudGF0aW9uIGNsYXNzXSwgW1dlYkhU
TUxSZXByZXNlbnRhdGlvbiBzdXBwb3J0ZWRNSU1FVHlwZXNdKTsKKyAgICAgICAgYWRkVHlwZXNG
cm9tQ2xhc3MocmVwVHlwZXMsIFtXZWJUZXh0UmVwcmVzZW50YXRpb24gY2xhc3NdLCBbV2ViVGV4
dFJlcHJlc2VudGF0aW9uIHN1cHBvcnRlZE1JTUVUeXBlc10pOwogCiAgICAgICAgIC8vIFNpbmNl
IHRoaXMgaXMgYSAic2VjcmV0IGRlZmF1bHQiIHdlIGRvbid0IGJvdGggcmVnaXN0ZXJpbmcgaXQu
Ci0gICAgICAgIEJPT0wgb21pdFBERlN1cHBvcnQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJk
VXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiV2ViS2l0T21pdFBERlN1cHBvcnQiXTsgIAotICAg
ICAgICBpZiAoIW9taXRQREZTdXBwb3J0KSB7Ci0gICAgICAgICAgICBbcmVwVHlwZXMgc2V0T2Jq
ZWN0OltXZWJQREZSZXByZXNlbnRhdGlvbiBjbGFzc10gZm9yS2V5OkAidGV4dC9wZGYiXTsKLSAg
ICAgICAgICAgIFtyZXBUeXBlcyBzZXRPYmplY3Q6W1dlYlBERlJlcHJlc2VudGF0aW9uIGNsYXNz
XSBmb3JLZXk6QCJhcHBsaWNhdGlvbi9wZGYiXTsKLSAgICAgICAgfQorICAgICAgICBCT09MIG9t
aXRQREZTdXBwb3J0ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9v
bEZvcktleTpAIldlYktpdE9taXRQREZTdXBwb3J0Il07CisgICAgICAgIGlmICghb21pdFBERlN1
cHBvcnQpCisgICAgICAgICAgICBhZGRUeXBlc0Zyb21DbGFzcyhyZXBUeXBlcywgW1dlYlBERlJl
cHJlc2VudGF0aW9uIGNsYXNzXSwgW1dlYlBERlJlcHJlc2VudGF0aW9uIHN1cHBvcnRlZE1JTUVU
eXBlc10pOwogICAgIH0KICAgICAKICAgICBpZiAoIWFkZGVkSW1hZ2VUeXBlcyAmJiAhYWxsb3dJ
bWFnZVR5cGVPbWlzc2lvbikgewotICAgICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBb
W1dlYkltYWdlVmlldyBzdXBwb3J0ZWRJbWFnZU1JTUVUeXBlc10gb2JqZWN0RW51bWVyYXRvcl07
Ci0gICAgICAgIE5TU3RyaW5nICptaW1lOwotICAgICAgICB3aGlsZSAoKG1pbWUgPSBbZW51bWVy
YXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAgICAgICAvLyBEb24ndCBjbG9iYmVy
IHByZXZpb3VzbHktcmVnaXN0ZXJlZCByZXAgY2xhc3Nlcy4KLSAgICAgICAgICAgIGlmIChbcmVw
VHlwZXMgb2JqZWN0Rm9yS2V5Om1pbWVdID09IG5pbCkgewotICAgICAgICAgICAgICAgIFtyZXBU
eXBlcyBzZXRPYmplY3Q6W1dlYkltYWdlUmVwcmVzZW50YXRpb24gY2xhc3NdIGZvcktleTptaW1l
XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBhZGRUeXBlc0Zyb21DbGFzcyhy
ZXBUeXBlcywgW1dlYkltYWdlUmVwcmVzZW50YXRpb24gY2xhc3NdLCBbV2ViSW1hZ2VSZXByZXNl
bnRhdGlvbiBzdXBwb3J0ZWRNSU1FVHlwZXNdKTsKICAgICAgICAgYWRkZWRJbWFnZVR5cGVzID0g
WUVTOwogICAgIH0KICAgICAKSW5kZXg6IFdlYlZpZXcuc3VicHJvai9XZWJGcmFtZVZpZXcubQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJG
cmFtZVZpZXcubSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xODcKZGlmZiAtcCAtdSAtcjEuMTg3
IFdlYlZpZXcuc3VicHJvai9XZWJGcmFtZVZpZXcubQotLS0gV2ViVmlldy5zdWJwcm9qL1dlYkZy
YW1lVmlldy5tCTggU2VwIDIwMDUgMjE6MzU6MDggLTAwMDAJMS4xODcKKysrIFdlYlZpZXcuc3Vi
cHJvai9XZWJGcmFtZVZpZXcubQkxOCBTZXAgMjAwNSAxMDo0ODoyMyAtMDAwMApAQCAtMjM4LDQ1
ICsyMzgsMzYgQEAgZW51bSB7CiAgICAgcmV0dXJuIChoZWlnaHQgPCBvdmVybGFwKSA/IGhlaWdo
dCAvIDIgOiBoZWlnaHQgLSBvdmVybGFwOwogfQogCi1zdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFy
eSAqdmlld1R5cGVzOworc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0
YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBjbGFzcywgTlNTZXQgKnN1cHBvcnRUeXBl
cykKK3sKKyAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbc3VwcG9ydFR5cGVzIG9iamVj
dEVudW1lcmF0b3JdOworICAgIEFTU0VSVChlbnVtZXJhdG9yICE9IG5pbCk7CisgICAgTlNTdHJp
bmcgKm1pbWUgPSBuaWw7CisgICAgd2hpbGUgKChtaW1lID0gW2VudW1lcmF0b3IgbmV4dE9iamVj
dF0pICE9IG5pbCkgeworICAgICAgICAvLyBEb24ndCBjbG9iYmVyIHByZXZpb3VzbHktcmVnaXN0
ZXJlZCBjbGFzc2VzLgorICAgICAgICBpZiAoW2FsbFR5cGVzIG9iamVjdEZvcktleTptaW1lXSA9
PSBuaWwpCisgICAgICAgICAgICBbYWxsVHlwZXMgc2V0T2JqZWN0OmNsYXNzIGZvcktleTptaW1l
XTsKKyAgICB9Cit9CiAKICsgKE5TTXV0YWJsZURpY3Rpb25hcnkgKilfdmlld1R5cGVzQWxsb3dJ
bWFnZVR5cGVPbWlzc2lvbjooQk9PTClhbGxvd0ltYWdlVHlwZU9taXNzaW9uCiB7Ci0gICAgc3Rh
dGljIEJPT0wgYWRkZWRJbWFnZVR5cGVzOwotCisgICAgc3RhdGljIE5TTXV0YWJsZURpY3Rpb25h
cnkgKnZpZXdUeXBlcyA9IG5pbDsKKyAgICBzdGF0aWMgQk9PTCBhZGRlZEltYWdlVHlwZXMgPSBO
TzsKKyAgICAKICAgICBpZiAoIXZpZXdUeXBlcykgewotICAgICAgICB2aWV3VHlwZXMgPSBbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0c0FuZEtleXM6Ci0gICAgICAg
ICAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAInRleHQvaHRtbCIsCi0JICAgIFtXZWJIVE1MVmll
dyBjbGFzc10sIEAidGV4dC94bWwiLAotCSAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAInRleHQv
eHNsIiwKLQkgICAgW1dlYkhUTUxWaWV3IGNsYXNzXSwgQCJhcHBsaWNhdGlvbi94bWwiLAotCSAg
ICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAImFwcGxpY2F0aW9uL3hodG1sK3htbCIsCi0gICAgICAg
ICAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAImFwcGxpY2F0aW9uL3Jzcyt4bWwiLAotICAgICAg
ICAgICAgW1dlYkhUTUxWaWV3IGNsYXNzXSwgQCJhcHBsaWNhdGlvbi9hdG9tK3htbCIsCi0gICAg
ICAgICAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2ZSIs
Ci0gICAgICAgICAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAIm11bHRpcGFydC94LW1peGVkLXJl
cGxhY2UiLAotICAgICAgICAgICAgW1dlYlRleHRWaWV3IGNsYXNzXSwgQCJ0ZXh0LyIsCi0gICAg
ICAgICAgICBbV2ViVGV4dFZpZXcgY2xhc3NdLCBAImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIs
Ci0gICAgICAgICAgICBuaWxdOworICAgICAgICB2aWV3VHlwZXMgPSBbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRdOworICAgICAgICBhZGRUeXBlc0Zyb21DbGFzcyh2aWV3VHlwZXMs
IFtXZWJIVE1MVmlldyBjbGFzc10sIFtXZWJIVE1MVmlldyBzdXBwb3J0ZWRNSU1FVHlwZXNdKTsK
KyAgICAgICAgYWRkVHlwZXNGcm9tQ2xhc3Modmlld1R5cGVzLCBbV2ViVGV4dFZpZXcgY2xhc3Nd
LCBbV2ViVGV4dFZpZXcgc3VwcG9ydGVkTUlNRVR5cGVzXSk7CiAKICAgICAgICAgLy8gU2luY2Ug
dGhpcyBpcyBhICJzZWNyZXQgZGVmYXVsdCIgd2UgZG9uJ3QgYm90aCByZWdpc3RlcmluZyBpdC4K
LSAgICAgICAgQk9PTCBvbWl0UERGU3VwcG9ydCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJXZWJLaXRPbWl0UERGU3VwcG9ydCJdOyAgCi0gICAg
ICAgIGlmICghb21pdFBERlN1cHBvcnQpIHsKLSAgICAgICAgICAgIFt2aWV3VHlwZXMgc2V0T2Jq
ZWN0OltXZWJQREZWaWV3IGNsYXNzXSBmb3JLZXk6QCJ0ZXh0L3BkZiJdOwotICAgICAgICAgICAg
W3ZpZXdUeXBlcyBzZXRPYmplY3Q6W1dlYlBERlZpZXcgY2xhc3NdIGZvcktleTpAImFwcGxpY2F0
aW9uL3BkZiJdOwotICAgICAgICB9CisgICAgICAgIEJPT0wgb21pdFBERlN1cHBvcnQgPSBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiV2ViS2l0T21p
dFBERlN1cHBvcnQiXTsKKyAgICAgICAgaWYgKCFvbWl0UERGU3VwcG9ydCkKKyAgICAgICAgICAg
IGFkZFR5cGVzRnJvbUNsYXNzKHZpZXdUeXBlcywgW1dlYlBERlZpZXcgY2xhc3NdLCBbV2ViUERG
VmlldyBzdXBwb3J0ZWRNSU1FVHlwZXNdKTsKICAgICB9Ci0KKyAgICAKICAgICBpZiAoIWFkZGVk
SW1hZ2VUeXBlcyAmJiAhYWxsb3dJbWFnZVR5cGVPbWlzc2lvbikgewotICAgICAgICBOU0VudW1l
cmF0b3IgKmVudW1lcmF0b3IgPSBbW1dlYkltYWdlVmlldyBzdXBwb3J0ZWRJbWFnZU1JTUVUeXBl
c10gb2JqZWN0RW51bWVyYXRvcl07Ci0gICAgICAgIEFTU0VSVChlbnVtZXJhdG9yICE9IG5pbCk7
Ci0gICAgICAgIE5TU3RyaW5nICptaW1lOwotICAgICAgICB3aGlsZSAoKG1pbWUgPSBbZW51bWVy
YXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAgICAgICAvLyBEb24ndCBjbG9iYmVy
IHByZXZpb3VzbHktcmVnaXN0ZXJlZCB2aWV3IGNsYXNzZXMuCi0gICAgICAgICAgICBpZiAoW3Zp
ZXdUeXBlcyBvYmplY3RGb3JLZXk6bWltZV0gPT0gbmlsKSB7Ci0gICAgICAgICAgICAgICAgW3Zp
ZXdUeXBlcyBzZXRPYmplY3Q6W1dlYkltYWdlVmlldyBjbGFzc10gZm9yS2V5Om1pbWVdOwotICAg
ICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGFkZFR5cGVzRnJvbUNsYXNzKHZpZXdUeXBl
cywgW1dlYkltYWdlVmlldyBjbGFzc10sIFtXZWJJbWFnZVZpZXcgc3VwcG9ydGVkTUlNRVR5cGVz
XSk7CiAgICAgICAgIGFkZGVkSW1hZ2VUeXBlcyA9IFlFUzsKICAgICB9CiAgICAgCkluZGV4OiBX
ZWJWaWV3LnN1YnByb2ovV2ViSFRNTFJlcHJlc2VudGF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViSFRNTFJlcHJlc2VudGF0aW9u
LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzAKZGlmZiAtcCAtdSAtcjEuMzAgV2ViVmlldy5z
dWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5oCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViSFRN
TFJlcHJlc2VudGF0aW9uLmgJMjkgSnVsIDIwMDUgMjE6MTY6NTYgLTAwMDAJMS4zMAorKysgV2Vi
Vmlldy5zdWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5oCTE4IFNlcCAyMDA1IDEwOjQ4OjIz
IC0wMDAwCkBAIC00OCw2ICs0OCw4IEBACiAgICAgV2ViSFRNTFJlcHJlc2VudGF0aW9uUHJpdmF0
ZSAqX3ByaXZhdGU7CiB9CiAKKysgKE5TU2V0ICopc3VwcG9ydGVkTUlNRVR5cGVzOworCiAtIChO
U0F0dHJpYnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVkU3RyaW5nRnJvbTooRE9NTm9kZSAqKXN0YXJ0
Tm9kZSBzdGFydE9mZnNldDooaW50KXN0YXJ0T2Zmc2V0IHRvOihET01Ob2RlICopZW5kTm9kZSBl
bmRPZmZzZXQ6KGludCllbmRPZmZzZXQ7CiAKIC0gKERPTUVsZW1lbnQgKillbGVtZW50V2l0aE5h
bWU6KE5TU3RyaW5nICopbmFtZSBpbkZvcm06KERPTUVsZW1lbnQgKilmb3JtOwpJbmRleDogV2Vi
Vmlldy5zdWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5t
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjU3CmRpZmYgLXAgLXUgLXIxLjU3IFdlYlZpZXcuc3Vi
cHJvai9XZWJIVE1MUmVwcmVzZW50YXRpb24ubQotLS0gV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxS
ZXByZXNlbnRhdGlvbi5tCTI5IEp1bCAyMDA1IDIxOjE2OjU2IC0wMDAwCTEuNTcKKysrIFdlYlZp
ZXcuc3VicHJvai9XZWJIVE1MUmVwcmVzZW50YXRpb24ubQkxOCBTZXAgMjAwNSAxMDo0ODoyNCAt
MDAwMApAQCAtNjQsNiArNjQsMTEgQEAKIAogQGltcGxlbWVudGF0aW9uIFdlYkhUTUxSZXByZXNl
bnRhdGlvbgogCisrIChOU1NldCAqKXN1cHBvcnRlZE1JTUVUeXBlcworeworICAgIHJldHVybiBb
V2ViQ29yZUJyaWRnZSBzdXBwb3J0ZWRNSU1FVHlwZXNdOworfQorCiAtIGluaXQKIHsKICAgICBz
ZWxmID0gW3N1cGVyIGluaXRdOwpJbmRleDogV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3Lm0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2Vi
SFRNTFZpZXcubSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NjcKZGlmZiAtcCAtdSAtcjEuNDY3
IFdlYlZpZXcuc3VicHJvai9XZWJIVE1MVmlldy5tCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViSFRN
TFZpZXcubQk1IFNlcCAyMDA1IDIyOjI2OjA1IC0wMDAwCTEuNDY3CisrKyBXZWJWaWV3LnN1YnBy
b2ovV2ViSFRNTFZpZXcubQkxOCBTZXAgMjAwNSAxMDo0ODoyOCAtMDAwMApAQCAtNjQ0LDYgKzY0
NCwxMSBAQCB2b2lkICpfTlNTb2Z0TGlua2luZ0dldEZyYW1ld29ya0Z1bmNQdHIoCiAgICAgW1dl
YkltYWdlUmVuZGVyZXIgc3RvcEFuaW1hdGlvbnNJblZpZXc6c2VsZl07CiB9CiAKKysgKE5TU2V0
ICopc3VwcG9ydGVkTUlNRVR5cGVzCit7CisgICAgcmV0dXJuIFtXZWJIVE1MUmVwcmVzZW50YXRp
b24gc3VwcG9ydGVkTUlNRVR5cGVzXTsKK30KKwogKyAodm9pZClfcG9zdEZsYWdzQ2hhbmdlZEV2
ZW50OihOU0V2ZW50ICopZmxhZ3NDaGFuZ2VkRXZlbnQKIHsKICAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCkluZGV4OiBXZWJW
aWV3LnN1YnByb2ovV2ViSFRNTFZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXdQcml2YXRlLmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuOTQKZGlmZiAtcCAtdSAtcjEuOTQgV2ViVmlldy5zdWJwcm9qL1dl
YkhUTUxWaWV3UHJpdmF0ZS5oCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXdQcml2YXRl
LmgJMTggSnVsIDIwMDUgMTg6MDI6MjEgLTAwMDAJMS45NAorKysgV2ViVmlldy5zdWJwcm9qL1dl
YkhUTUxWaWV3UHJpdmF0ZS5oCTE4IFNlcCAyMDA1IDEwOjQ4OjI5IC0wMDAwCkBAIC0zOSw2ICsz
OSw3IEBACiBAaW50ZXJmYWNlIFdlYkhUTUxWaWV3IChXZWJQcml2YXRlKQogCiAtICh2b2lkKV9y
ZXNldDsKKysgKE5TU2V0ICopc3VwcG9ydGVkTUlNRVR5cGVzOwogCiAvLyBNb2RpZmllciAoZmxh
Z3NDaGFuZ2VkKSB0cmFja2luZyBTUEkKICsgKHZvaWQpX3Bvc3RGbGFnc0NoYW5nZWRFdmVudDoo
TlNFdmVudCAqKWZsYWdzQ2hhbmdlZEV2ZW50OwpJbmRleDogV2ViVmlldy5zdWJwcm9qL1dlYklt
YWdlUmVwcmVzZW50YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0
L1dlYlZpZXcuc3VicHJvai9XZWJJbWFnZVJlcHJlc2VudGF0aW9uLmgsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMTIKZGlmZiAtcCAtdSAtcjEuMTIgV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlUmVw
cmVzZW50YXRpb24uaAotLS0gV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlUmVwcmVzZW50YXRpb24u
aAk1IEp1biAyMDA1IDE3OjU0OjQ3IC0wMDAwCTEuMTIKKysrIFdlYlZpZXcuc3VicHJvai9XZWJJ
bWFnZVJlcHJlc2VudGF0aW9uLmgJMTggU2VwIDIwMDUgMTA6NDg6MjkgLTAwMDAKQEAgLTQwLDYg
KzQwLDcgQEAKICAgICBXZWJJbWFnZVJlbmRlcmVyICppbWFnZTsKICAgICBCT09MIGRvbmVMb2Fk
aW5nOwogfQorKyAoTlNTZXQgKilzdXBwb3J0ZWRNSU1FVHlwZXM7CiAtIChXZWJJbWFnZVJlbmRl
cmVyICopaW1hZ2U7CiAtIChOU1N0cmluZyAqKWZpbGVuYW1lOwogLSAoV2ViQXJjaGl2ZSAqKWFy
Y2hpdmU7CkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VSZXByZXNlbnRhdGlvbi5tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYklt
YWdlUmVwcmVzZW50YXRpb24ubSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNQpkaWZmIC1wIC11
IC1yMS4yNSBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VSZXByZXNlbnRhdGlvbi5tCi0tLSBXZWJW
aWV3LnN1YnByb2ovV2ViSW1hZ2VSZXByZXNlbnRhdGlvbi5tCTUgSnVuIDIwMDUgMTc6NTQ6NDcg
LTAwMDAJMS4yNQorKysgV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlUmVwcmVzZW50YXRpb24ubQkx
OCBTZXAgMjAwNSAxMDo0ODoyOSAtMDAwMApAQCAtNDEsNiArNDEsMTcgQEAKIAogQGltcGxlbWVu
dGF0aW9uIFdlYkltYWdlUmVwcmVzZW50YXRpb24KIAorKyAoTlNTZXQgKilzdXBwb3J0ZWRNSU1F
VHlwZXMKK3sKKyAgICBzdGF0aWMgTlNNdXRhYmxlU2V0ICppbWFnZU1JTUVUeXBlcyA9IG5pbDsK
KyAgICBpZiAoaW1hZ2VNSU1FVHlwZXMgPT0gbmlsKSB7CisgICAgICAgIGltYWdlTUlNRVR5cGVz
ID0gW1tOU011dGFibGVTZXQgYWxsb2NdIGluaXRXaXRoQXJyYXk6W1tXZWJJbWFnZVJlbmRlcmVy
RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSBzdXBwb3J0ZWRNSU1FVHlwZXNdXTsKKyAgICAgICAgW2lt
YWdlTUlNRVR5cGVzIHJlbW92ZU9iamVjdDpAImFwcGxpY2F0aW9uL3BkZiJdOworICAgICAgICBb
aW1hZ2VNSU1FVHlwZXMgcmVtb3ZlT2JqZWN0OkAiYXBwbGljYXRpb24vcG9zdHNjcmlwdCJdOwor
ICAgIH0KKyAgICByZXR1cm4gaW1hZ2VNSU1FVHlwZXM7Cit9CisKIC0gKHZvaWQpZGVhbGxvYwog
ewogICAgIFtpbWFnZSByZWxlYXNlXTsKSW5kZXg6IFdlYlZpZXcuc3VicHJvai9XZWJJbWFnZVZp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L1dlYlZpZXcuc3VicHJv
ai9XZWJJbWFnZVZpZXcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNwpkaWZmIC1wIC11IC1y
MS4xNyBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VWaWV3LmgKLS0tIFdlYlZpZXcuc3VicHJvai9X
ZWJJbWFnZVZpZXcuaAk1IEp1biAyMDA1IDE3OjU0OjQ3IC0wMDAwCTEuMTcKKysrIFdlYlZpZXcu
c3VicHJvai9XZWJJbWFnZVZpZXcuaAkxOCBTZXAgMjAwNSAxMDo0ODoyOSAtMDAwMApAQCAtMzgs
NSArMzgsNSBAQAogICAgIE5TRXZlbnQgKm1vdXNlRG93bkV2ZW50OwogICAgIHVuc2lnbmVkIGlu
dCBkcmFnU291cmNlQWN0aW9uTWFzazsKIH0KLSsgKE5TQXJyYXkgKilzdXBwb3J0ZWRJbWFnZU1J
TUVUeXBlczsKKysgKE5TU2V0ICopc3VwcG9ydGVkTUlNRVR5cGVzOwogQGVuZApJbmRleDogV2Vi
Vmlldy5zdWJwcm9qL1dlYkltYWdlVmlldy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlVmlldy5tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjc0CmRpZmYgLXAgLXUgLXIxLjc0IFdlYlZpZXcuc3VicHJvai9XZWJJbWFnZVZpZXcu
bQotLS0gV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlVmlldy5tCTE3IFNlcCAyMDA1IDAwOjA5OjEz
IC0wMDAwCTEuNzQKKysrIFdlYlZpZXcuc3VicHJvai9XZWJJbWFnZVZpZXcubQkxOCBTZXAgMjAw
NSAxMDo0ODoyOSAtMDAwMApAQCAtNTEsMTUgKzUxLDkgQEAKICAgICBbTlNBcHAgcmVnaXN0ZXJT
ZXJ2aWNlc01lbnVTZW5kVHlwZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TVElGRlBib2Fy
ZFR5cGVdIHJldHVyblR5cGVzOm5pbF07CiB9CiAKLSsgKE5TQXJyYXkgKilzdXBwb3J0ZWRJbWFn
ZU1JTUVUeXBlcworKyAoTlNTZXQgKilzdXBwb3J0ZWRNSU1FVHlwZXMKIHsKLSAgICBzdGF0aWMg
TlNNdXRhYmxlQXJyYXkgKmltYWdlTUlNRVR5cGVzID0gbmlsOwotICAgIGlmIChpbWFnZU1JTUVU
eXBlcyA9PSBuaWwpIHsKLSAgICAgICAgaW1hZ2VNSU1FVHlwZXMgPSBbW1tXZWJJbWFnZVJlbmRl
cmVyRmFjdG9yeSBzaGFyZWRGYWN0b3J5XSBzdXBwb3J0ZWRNSU1FVHlwZXNdIG11dGFibGVDb3B5
XTsKLSAgICAgICAgW2ltYWdlTUlNRVR5cGVzIHJlbW92ZU9iamVjdDpAImFwcGxpY2F0aW9uL3Bk
ZiJdOwotICAgICAgICBbaW1hZ2VNSU1FVHlwZXMgcmVtb3ZlT2JqZWN0OkAiYXBwbGljYXRpb24v
cG9zdHNjcmlwdCJdOwotICAgIH0KLSAgICByZXR1cm4gaW1hZ2VNSU1FVHlwZXM7CisgICAgcmV0
dXJuIFtXZWJJbWFnZVJlcHJlc2VudGF0aW9uIHN1cHBvcnRlZE1JTUVUeXBlc107CiB9CiAKIC0g
KGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQpJbmRleDogV2ViVmlldy5zdWJwcm9qL1dl
YlBERlJlcHJlc2VudGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktp
dC9XZWJWaWV3LnN1YnByb2ovV2ViUERGUmVwcmVzZW50YXRpb24uaCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQgV2ViVmlldy5zdWJwcm9qL1dlYlBERlJlcHJlc2Vu
dGF0aW9uLmgKLS0tIFdlYlZpZXcuc3VicHJvai9XZWJQREZSZXByZXNlbnRhdGlvbi5oCTE2IEF1
ZyAyMDA1IDE5OjAzOjM1IC0wMDAwCTEuNAorKysgV2ViVmlldy5zdWJwcm9qL1dlYlBERlJlcHJl
c2VudGF0aW9uLmgJMTggU2VwIDIwMDUgMTA6NDg6MjkgLTAwMDAKQEAgLTMxLDQgKzMxLDUgQEAK
IEBwcm90b2NvbCBXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uOwogCiBAaW50ZXJmYWNlIFdlYlBE
RlJlcHJlc2VudGF0aW9uIDogTlNPYmplY3QgPFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+Cisr
IChOU1NldCAqKXN1cHBvcnRlZE1JTUVUeXBlczsKIEBlbmQKSW5kZXg6IFdlYlZpZXcuc3VicHJv
ai9XZWJQREZSZXByZXNlbnRhdGlvbi5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYlBERlJlcHJlc2VudGF0aW9uLm0sdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IFdlYlZpZXcuc3VicHJvai9XZWJQREZSZXBy
ZXNlbnRhdGlvbi5tCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViUERGUmVwcmVzZW50YXRpb24ubQkx
NiBBdWcgMjAwNSAxOTowMzozNSAtMDAwMAkxLjYKKysrIFdlYlZpZXcuc3VicHJvai9XZWJQREZS
ZXByZXNlbnRhdGlvbi5tCTE4IFNlcCAyMDA1IDEwOjQ4OjI5IC0wMDAwCkBAIC0zOCw2ICszOCwx
NCBAQAogCiBAaW1wbGVtZW50YXRpb24gV2ViUERGUmVwcmVzZW50YXRpb24KIAorKyAoTlNTZXQg
KilzdXBwb3J0ZWRNSU1FVHlwZXMKK3sKKyAgICByZXR1cm4gW05TU2V0IHNldFdpdGhPYmplY3Rz
OgorICAgICAgICAgICAgQCJ0ZXh0L3BkZiIsCisgICAgICAgICAgICBAImFwcGxpY2F0aW9uL3Bk
ZiIsCisgICAgICAgICAgICBuaWxdOworfQorCiArIChDbGFzcylQREZEb2N1bWVudENsYXNzCiB7
CiAgICAgc3RhdGljIENsYXNzIFBERkRvY3VtZW50Q2xhc3MgPSBuaWw7CkluZGV4OiBXZWJWaWV3
LnN1YnByb2ovV2ViUERGVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJL
aXQvV2ViVmlldy5zdWJwcm9qL1dlYlBERlZpZXcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4x
MwpkaWZmIC1wIC11IC1yMS4xMyBXZWJWaWV3LnN1YnByb2ovV2ViUERGVmlldy5oCi0tLSBXZWJW
aWV3LnN1YnByb2ovV2ViUERGVmlldy5oCTE2IEF1ZyAyMDA1IDE5OjAzOjM1IC0wMDAwCTEuMTMK
KysrIFdlYlZpZXcuc3VicHJvai9XZWJQREZWaWV3LmgJMTggU2VwIDIwMDUgMTA6NDg6MjkgLTAw
MDAKQEAgLTQ1LDYgKzQ1LDcgQEAKICAgICBQREZWaWV3ICpQREZTdWJ2aWV3UHJveHk7CiB9CiAK
KysgKE5TU2V0ICopc3VwcG9ydGVkTUlNRVR5cGVzOwogKyAoTlNCdW5kbGUgKilQREZLaXRCdW5k
bGU7CiAtIChQREZWaWV3ICopUERGU3VidmlldzsKIApJbmRleDogV2ViVmlldy5zdWJwcm9qL1dl
YlBERlZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L1dlYlZpZXcu
c3VicHJvai9XZWJQREZWaWV3Lm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjUKZGlmZiAtcCAt
dSAtcjEuMjUgV2ViVmlldy5zdWJwcm9qL1dlYlBERlZpZXcubQotLS0gV2ViVmlldy5zdWJwcm9q
L1dlYlBERlZpZXcubQkxNiBBdWcgMjAwNSAxOTowMzozNSAtMDAwMAkxLjI1CisrKyBXZWJWaWV3
LnN1YnByb2ovV2ViUERGVmlldy5tCTE4IFNlcCAyMDA1IDEwOjQ4OjMwIC0wMDAwCkBAIC00Miw2
ICs0Miw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dl
YlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg+
CisjaW1wb3J0IDxXZWJLaXQvV2ViUERGUmVwcmVzZW50YXRpb24uaD4KIAogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxQREZLaXQvUERGS2l0Lmg+CkBAIC05NCw2
ICs5NSwxMSBAQCBOU1N0cmluZyAqX05TUGF0aEZvclN5c3RlbUZyYW1ld29yayhOU1N0CiAgICAg
cmV0dXJuIFBERlZpZXdDbGFzczsKIH0KIAorKyAoTlNTZXQgKilzdXBwb3J0ZWRNSU1FVHlwZXMK
K3sKKyAgICByZXR1cm4gW1dlYlBERlJlcHJlc2VudGF0aW9uIHN1cHBvcnRlZE1JTUVUeXBlc107
Cit9CisKIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQogewogICAgIHNlbGYgPSBb
c3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZV07CkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViVGV4
dFJlcHJlc2VudGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9X
ZWJWaWV3LnN1YnByb2ovV2ViVGV4dFJlcHJlc2VudGF0aW9uLmgsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IFdlYlZpZXcuc3VicHJvai9XZWJUZXh0UmVwcmVzZW50
YXRpb24uaAotLS0gV2ViVmlldy5zdWJwcm9qL1dlYlRleHRSZXByZXNlbnRhdGlvbi5oCTUgSnVu
IDIwMDUgMTc6NTQ6NDggLTAwMDAJMS42CisrKyBXZWJWaWV3LnN1YnByb2ovV2ViVGV4dFJlcHJl
c2VudGF0aW9uLmgJMTggU2VwIDIwMDUgMTA6NDg6MzAgLTAwMDAKQEAgLTM1LDQgKzM1LDUgQEAK
ICAgICBOU1N0cmluZyAqUlRGU291cmNlOwogICAgIEJPT0wgaGFzUlRGU291cmNlOwogfQorKyAo
TlNTZXQgKilzdXBwb3J0ZWRNSU1FVHlwZXM7CiBAZW5kCkluZGV4OiBXZWJWaWV3LnN1YnByb2ov
V2ViVGV4dFJlcHJlc2VudGF0aW9uLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YktpdC9XZWJWaWV3LnN1YnByb2ovV2ViVGV4dFJlcHJlc2VudGF0aW9uLm0sdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMTgKZGlmZiAtcCAtdSAtcjEuMTggV2ViVmlldy5zdWJwcm9qL1dlYlRleHRS
ZXByZXNlbnRhdGlvbi5tCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViVGV4dFJlcHJlc2VudGF0aW9u
Lm0JNSBKdW4gMjAwNSAxNzo1NDo0OCAtMDAwMAkxLjE4CisrKyBXZWJWaWV3LnN1YnByb2ovV2Vi
VGV4dFJlcHJlc2VudGF0aW9uLm0JMTggU2VwIDIwMDUgMTA6NDg6MzAgLTAwMDAKQEAgLTM4LDYg
KzM4LDE0IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJUZXh0UmVwcmVzZW50YXRpb24KIAorKyAo
TlNTZXQgKilzdXBwb3J0ZWRNSU1FVHlwZXMKK3sKKyAgICByZXR1cm4gW05TU2V0IHNldFdpdGhP
YmplY3RzOgorICAgICAgICAgICAgQCJ0ZXh0LyIsCisgICAgICAgICAgICBAImFwcGxpY2F0aW9u
L3gtamF2YXNjcmlwdCIsCisgICAgICAgICAgICBuaWxdOworfQorCiAtICh2b2lkKWRlYWxsb2MK
IHsKICAgICBbUlRGU291cmNlIHJlbGVhc2VdOwpJbmRleDogV2ViVmlldy5zdWJwcm9qL1dlYlRl
eHRWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1
YnByb2ovV2ViVGV4dFZpZXcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOQpkaWZmIC1wIC11
IC1yMS4xOSBXZWJWaWV3LnN1YnByb2ovV2ViVGV4dFZpZXcuaAotLS0gV2ViVmlldy5zdWJwcm9q
L1dlYlRleHRWaWV3LmgJMTggSnVsIDIwMDUgMTg6MDI6MjEgLTAwMDAJMS4xOQorKysgV2ViVmll
dy5zdWJwcm9qL1dlYlRleHRWaWV3LmgJMTggU2VwIDIwMDUgMTA6NDg6MzAgLTAwMDAKQEAgLTM2
LDYgKzM2LDcgQEAKICAgICBmbG9hdCBfdGV4dFNpemVNdWx0aXBsaWVyOwogfQogCisrIChOU1Nl
dCAqKXN1cHBvcnRlZE1JTUVUeXBlczsKICsgKE5TQXJyYXkgKil1bnN1cHBvcnRlZFRleHRNSU1F
VHlwZXM7CiAtICh2b2lkKXNldEZpeGVkV2lkdGhGb250OwogCkluZGV4OiBXZWJWaWV3LnN1YnBy
b2ovV2ViVGV4dFZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L1dl
YlZpZXcuc3VicHJvai9XZWJUZXh0Vmlldy5tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYwCmRp
ZmYgLXAgLXUgLXIxLjYwIFdlYlZpZXcuc3VicHJvai9XZWJUZXh0Vmlldy5tCi0tLSBXZWJWaWV3
LnN1YnByb2ovV2ViVGV4dFZpZXcubQkyNyBKdWwgMjAwNSAyMTozNjo0NCAtMDAwMAkxLjYwCisr
KyBXZWJWaWV3LnN1YnByb2ovV2ViVGV4dFZpZXcubQkxOCBTZXAgMjAwNSAxMDo0ODozMCAtMDAw
MApAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYlByZWZlcmVuY2VzLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViVGV4dFJlbmRlcmVyRmFjdG9yeS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViVGV4dFJlcHJlc2VudGF0aW9u
Lmg+CiAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxSZXNwb25zZS5oPgogCkBAIC01OCw2ICs1
OSwxMSBAQAogCiBAaW1wbGVtZW50YXRpb24gV2ViVGV4dFZpZXcKIAorKyAoTlNTZXQgKilzdXBw
b3J0ZWRNSU1FVHlwZXMKK3sKKyAgICByZXR1cm4gW1dlYlRleHRSZXByZXNlbnRhdGlvbiBzdXBw
b3J0ZWRNSU1FVHlwZXNdOworfQorCiArIChOU0FycmF5ICopdW5zdXBwb3J0ZWRUZXh0TUlNRVR5
cGVzCiB7CiAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6CkluZGV4OiBXZWJW
aWV3LnN1YnByb2ovV2ViVmlldy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJL
aXQvV2ViVmlldy5zdWJwcm9qL1dlYlZpZXcubSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMDUK
ZGlmZiAtcCAtdSAtcjEuMzA1IFdlYlZpZXcuc3VicHJvai9XZWJWaWV3Lm0KLS0tIFdlYlZpZXcu
c3VicHJvai9XZWJWaWV3Lm0JMTEgU2VwIDIwMDUgMTc6MDQ6MTcgLTAwMDAJMS4zMDUKKysrIFdl
YlZpZXcuc3VicHJvai9XZWJWaWV3Lm0JMTggU2VwIDIwMDUgMTA6NDg6MzMgLTAwMDAKQEAgLTM2
OSwzMCArMzY5LDE5IEBAIHN0YXRpYyBib29sIGRlYnVnV2lkZ2V0ID0gdHJ1ZTsKICsgKEJPT0wp
X3ZpZXdDbGFzczooQ2xhc3MgKil2Q2xhc3MgYW5kUmVwcmVzZW50YXRpb25DbGFzczooQ2xhc3Mg
KilyQ2xhc3MgZm9yTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGU7CiB7CiAgICAgTUlNRVR5
cGUgPSBbTUlNRVR5cGUgbG93ZXJjYXNlU3RyaW5nXTsKLSAgICBDbGFzcyB2aWV3Q2xhc3M7Ci0g
ICAgQ2xhc3MgcmVwQ2xhc3M7CisgICAgQ2xhc3Mgdmlld0NsYXNzID0gW1tXZWJGcmFtZVZpZXcg
X3ZpZXdUeXBlc0FsbG93SW1hZ2VUeXBlT21pc3Npb246WUVTXSBfd2Via2l0X29iamVjdEZvck1J
TUVUeXBlOk1JTUVUeXBlXTsKKyAgICBDbGFzcyByZXBDbGFzcyA9IFtbV2ViRGF0YVNvdXJjZSBf
cmVwVHlwZXNBbGxvd0ltYWdlVHlwZU9taXNzaW9uOllFU10gX3dlYmtpdF9vYmplY3RGb3JNSU1F
VHlwZTpNSU1FVHlwZV07CiAgICAgCi0gICAgLy8gU2ltcGxlIG9wdGltaXphdGlvbiB0aGF0IGF2
b2lkcyBsb2FkaW5nIHRoZSBwbHVnLWluIERCIGFuZCBpbWFnZSB0eXBlcyBmb3IgdGhlIEhUTUwg
Y2FzZS4KLSAgICBpZiAoW3NlbGYgY2FuU2hvd01JTUVUeXBlQXNIVE1MOk1JTUVUeXBlXSkgewot
ICAgICAgICB2aWV3Q2xhc3MgPSBbW1dlYkZyYW1lVmlldyBfdmlld1R5cGVzQWxsb3dJbWFnZVR5
cGVPbWlzc2lvbjpZRVNdIF93ZWJraXRfb2JqZWN0Rm9yTUlNRVR5cGU6TUlNRVR5cGVdOwotICAg
ICAgICByZXBDbGFzcyA9IFtbV2ViRGF0YVNvdXJjZSBfcmVwVHlwZXNBbGxvd0ltYWdlVHlwZU9t
aXNzaW9uOllFU10gX3dlYmtpdF9vYmplY3RGb3JNSU1FVHlwZTpNSU1FVHlwZV07Ci0gICAgICAg
IGlmICh2aWV3Q2xhc3MgJiYgcmVwQ2xhc3MpIHsKLSAgICAgICAgICAgIGlmICh2Q2xhc3MpIHsK
LSAgICAgICAgICAgICAgICAqdkNsYXNzID0gdmlld0NsYXNzOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKHJDbGFzcykgewotICAgICAgICAgICAgICAgICpyQ2xhc3MgPSByZXBDbGFz
czsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBZRVM7Ci0gICAgICAgIH0KKyAg
ICBpZiAoIXZpZXdDbGFzcyB8fCAhcmVwQ2xhc3MpIHsKKyAgICAgICAgLy8gT3VyIG9wdGltaXph
dGlvbiB0byBhdm9pZCBsb2FkaW5nIHRoZSBwbHVnLWluIERCIGFuZCBpbWFnZSB0eXBlcyBmb3Ig
dGhlIEhUTUwgY2FzZSBmYWlsZWQuCisgICAgICAgIC8vIExvYWQgdGhlIHBsdWctaW4gREIgYWxs
b3dpbmcgcGx1Zy1pbnMgdG8gaW5zdGFsbCB0eXBlcy4KKyAgICAgICAgW1dlYlBsdWdpbkRhdGFi
YXNlIGluc3RhbGxlZFBsdWdpbnNdOworICAgICAgICAgICAgCisgICAgICAgIC8vIExvYWQgdGhl
IGltYWdlIHR5cGVzIGFuZCBnZXQgdGhlIHZpZXcgY2xhc3MgYW5kIHJlcCBjbGFzcy4gVGhpcyBz
aG91bGQgYmUgdGhlIGZ1bGxlc3QgcGljdHVyZSBvZiBhbGwgaGFuZGxlZCB0eXBlcy4KKyAgICAg
ICAgdmlld0NsYXNzID0gW1tXZWJGcmFtZVZpZXcgX3ZpZXdUeXBlc0FsbG93SW1hZ2VUeXBlT21p
c3Npb246Tk9dIF93ZWJraXRfb2JqZWN0Rm9yTUlNRVR5cGU6TUlNRVR5cGVdOworICAgICAgICBy
ZXBDbGFzcyA9IFtbV2ViRGF0YVNvdXJjZSBfcmVwVHlwZXNBbGxvd0ltYWdlVHlwZU9taXNzaW9u
Ok5PXSBfd2Via2l0X29iamVjdEZvck1JTUVUeXBlOk1JTUVUeXBlXTsKICAgICB9CiAgICAgCi0g
ICAgLy8gTG9hZCB0aGUgcGx1Zy1pbiBEQiBhbGxvd2luZyBwbHVnLWlucyB0byBpbnN0YWxsIHR5
cGVzLgotICAgIFtXZWJQbHVnaW5EYXRhYmFzZSBpbnN0YWxsZWRQbHVnaW5zXTsKLSAgICAgICAg
Ci0gICAgLy8gTG9hZCB0aGUgaW1hZ2UgdHlwZXMgYW5kIGdldCB0aGUgdmlldyBjbGFzcyBhbmQg
cmVwIGNsYXNzLiBUaGlzIHNob3VsZCBiZSB0aGUgZnVsbGVzdCBwaWN0dXJlIG9mIGFsbCBoYW5k
bGVkIHR5cGVzLgotICAgIHZpZXdDbGFzcyA9IFtbV2ViRnJhbWVWaWV3IF92aWV3VHlwZXNBbGxv
d0ltYWdlVHlwZU9taXNzaW9uOk5PXSBfd2Via2l0X29iamVjdEZvck1JTUVUeXBlOk1JTUVUeXBl
XTsKLSAgICByZXBDbGFzcyA9IFtbV2ViRGF0YVNvdXJjZSBfcmVwVHlwZXNBbGxvd0ltYWdlVHlw
ZU9taXNzaW9uOk5PXSBfd2Via2l0X29iamVjdEZvck1JTUVUeXBlOk1JTUVUeXBlXTsKICAgICBp
ZiAodmlld0NsYXNzICYmIHJlcENsYXNzKSB7CiAgICAgICAgIC8vIFNwZWNpYWwtY2FzZSBXZWJU
ZXh0VmlldyBmb3IgdGV4dCB0eXBlcyB0aGF0IHNob3VsZG4ndCBiZSBzaG93bi4KICAgICAgICAg
aWYgKHZpZXdDbGFzcyA9PSBbV2ViVGV4dFZpZXcgY2xhc3NdICYmCkBAIC00MDAsMTIgKzM4OSwx
MCBAQCBzdGF0aWMgYm9vbCBkZWJ1Z1dpZGdldCA9IHRydWU7CiAgICAgICAgICAgICBbW1dlYlRl
eHRWaWV3IHVuc3VwcG9ydGVkVGV4dE1JTUVUeXBlc10gY29udGFpbnNPYmplY3Q6TUlNRVR5cGVd
KSB7CiAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHZDbGFz
cykgeworICAgICAgICBpZiAodkNsYXNzKQogICAgICAgICAgICAgKnZDbGFzcyA9IHZpZXdDbGFz
czsKLSAgICAgICAgfQotICAgICAgICBpZiAockNsYXNzKSB7CisgICAgICAgIGlmIChyQ2xhc3Mp
CiAgICAgICAgICAgICAqckNsYXNzID0gcmVwQ2xhc3M7Ci0gICAgICAgIH0KICAgICAgICAgcmV0
dXJuIFlFUzsKICAgICB9CiAgICAgCkBAIC0xNDg4LDkgKzE0NzUsOCBAQCBOU011dGFibGVEaWN0
aW9uYXJ5ICpjb3VudEludm9jYXRpb25zOwogICAgIE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CiAgICAgCiAgICAgd2hp
bGUgKChrZXkgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkpIHsKLSAgICAgICAgaWYgKFt2aWV3
VHlwZXMgb2JqZWN0Rm9yS2V5OmtleV0gPT0gW1dlYkhUTUxWaWV3IGNsYXNzXSkgeworICAgICAg
ICBpZiAoW3ZpZXdUeXBlcyBvYmplY3RGb3JLZXk6a2V5XSA9PSBbV2ViSFRNTFZpZXcgY2xhc3Nd
KQogICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDprZXldOwotICAgICAgICB9CiAgICAgfQog
ICAgIAogICAgIHJldHVybiBhcnJheTsKQEAgLTE0OTgsMTUgKzE0ODQsMTIgQEAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqY291bnRJbnZvY2F0aW9uczsKIAogKyAodm9pZClzZXRNSU1FVHlwZXNTaG93
bkFzSFRNTDooTlNBcnJheSAqKU1JTUVUeXBlcwogewotICAgIE5TRW51bWVyYXRvciAqZW51bWVy
YXRvcjsKLSAgICBpZCBrZXk7Ci0gICAgCiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdmlld1R5
cGVzID0gW1dlYkZyYW1lVmlldyBfdmlld1R5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lvbjpZRVNd
OwotICAgIGVudW1lcmF0b3IgPSBbdmlld1R5cGVzIGtleUVudW1lcmF0b3JdOworICAgIE5TRW51
bWVyYXRvciAqZW51bWVyYXRvciA9IFt2aWV3VHlwZXMga2V5RW51bWVyYXRvcl07CisgICAgaWQg
a2V5OwogICAgIHdoaWxlICgoa2V5ID0gW2VudW1lcmF0b3IgbmV4dE9iamVjdF0pKSB7Ci0gICAg
ICAgIGlmIChbdmlld1R5cGVzIG9iamVjdEZvcktleTprZXldID09IFtXZWJIVE1MVmlldyBjbGFz
c10pIHsKKyAgICAgICAgaWYgKFt2aWV3VHlwZXMgb2JqZWN0Rm9yS2V5OmtleV0gPT0gW1dlYkhU
TUxWaWV3IGNsYXNzXSkKICAgICAgICAgICAgIFtXZWJWaWV3IF91bnJlZ2lzdGVyVmlld0NsYXNz
QW5kUmVwcmVzZW50YXRpb25DbGFzc0Zvck1JTUVUeXBlOmtleV07Ci0gICAgICAgIH0KICAgICB9
CiAgICAgCiAgICAgaW50IGksIGNvdW50ID0gW01JTUVUeXBlcyBjb3VudF07Cg==
</data>
<flag name="review"
          id="580"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3932</attachid>
            <date>2005-09-18 03:49:49 -0700</date>
            <delta_ts>2005-09-20 01:04:31 -0700</delta_ts>
            <desc>The WebCore portion of the patch.</desc>
            <filename>webcore-mime.patch</filename>
            <type>text/plain</type>
            <size>1567</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmVCcmlkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvV2ViQ29yZUJyaWRnZS5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM0NgpkaWZm
IC1wIC11IC1yMS4zNDYgV2ViQ29yZUJyaWRnZS5oCi0tLSBXZWJDb3JlQnJpZGdlLmgJMTUgU2Vw
IDIwMDUgMDE6MjU6NTQgLTAwMDAJMS4zNDYKKysrIFdlYkNvcmVCcmlkZ2UuaAkxOCBTZXAgMjAw
NSAxMDo1Mjo0NCAtMDAwMApAQCAtMTkzLDYgKzE5Myw4IEBAIHR5cGVkZWYgZW51bQogCiArIChX
ZWJDb3JlQnJpZGdlICopYnJpZGdlRm9yRE9NRG9jdW1lbnQ6KERPTURvY3VtZW50ICopZG9jdW1l
bnQ7CiAKKysgKE5TU2V0ICopc3VwcG9ydGVkTUlNRVR5cGVzOworCiAtICh2b2lkKWluaXRpYWxp
emVTZXR0aW5nczooV2ViQ29yZVNldHRpbmdzICopc2V0dGluZ3M7CiAKIC0gKHZvaWQpc2V0UmVu
ZGVyUGFydDooS0hUTUxSZW5kZXJQYXJ0ICopcmVuZGVyUGFydDsKSW5kZXg6IFdlYkNvcmVCcmlk
Z2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL1dlYkNvcmVC
cmlkZ2UubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDE0CmRpZmYgLXAgLXUgLXIxLjQxNCBX
ZWJDb3JlQnJpZGdlLm1tCi0tLSBXZWJDb3JlQnJpZGdlLm1tCTE2IFNlcCAyMDA1IDIyOjQyOjI0
IC0wMDAwCTEuNDE0CisrKyBXZWJDb3JlQnJpZGdlLm1tCTE4IFNlcCAyMDA1IDEwOjUyOjQ2IC0w
MDAwCkBAIC0yMjAsNiArMjIwLDI0IEBAIHN0YXRpYyBCT09MIGhhc0Nhc2VJbnNlbnNpdGl2ZVBy
ZWZpeChOU1MKIHN0YXRpYyBib29sIGluaXRpYWxpemVkT2JqZWN0Q2FjaGVTaXplID0gRkFMU0U7
CiBzdGF0aWMgYm9vbCBpbml0aWFsaXplZEtKUyA9IEZBTFNFOwogCisrIChOU1NldCAqKXN1cHBv
cnRlZE1JTUVUeXBlcworeworICAgIHJldHVybiBbTlNTZXQgc2V0V2l0aE9iamVjdHM6CisgICAg
ICAgIEAidGV4dC9odG1sIiwKKyAgICAgICAgQCJ0ZXh0L3htbCIsCisgICAgICAgIEAidGV4dC94
c2wiLAorICAgICAgICBAImFwcGxpY2F0aW9uL3htbCIsCisgICAgICAgIEAiYXBwbGljYXRpb24v
eGh0bWwreG1sIiwKKyAgICAgICAgQCJhcHBsaWNhdGlvbi9yc3MreG1sIiwKKyAgICAgICAgQCJh
cHBsaWNhdGlvbi9hdG9tK3htbCIsCisgICAgICAgIEAiYXBwbGljYXRpb24veC13ZWJhcmNoaXZl
IiwKKyAgICAgICAgQCJtdWx0aXBhcnQveC1taXhlZC1yZXBsYWNlIiwKKyNpZiBTVkdfU1VQUE9S
VAorICAgICAgICBAImltYWdlL3N2Zyt4bWwiLAorI2VuZGlmCisgICAgICAgIG5pbF07Cit9CisK
ICsgKFdlYkNvcmVCcmlkZ2UgKilicmlkZ2VGb3JET01Eb2N1bWVudDooRE9NRG9jdW1lbnQgKilk
b2N1bWVudAogewogICAgIHJldHVybiAoKEtXUUtIVE1MUGFydCAqKVtkb2N1bWVudCBfZG9jdW1l
bnRJbXBsXS0+cGFydCgpKS0+YnJpZGdlKCk7Cg==
</data>
<flag name="review"
          id="581"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3961</attachid>
            <date>2005-09-20 01:03:31 -0700</date>
            <delta_ts>2005-09-20 01:14:52 -0700</delta_ts>
            <desc>Updated WebKit patch</desc>
            <filename>webkit.patch</filename>
            <type>text/plain</type>
            <size>24368</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L0No
YW5nZUxvZyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMzI1CmRpZmYgLXAgLXUgLXIxLjMzMjUg
Q2hhbmdlTG9nCi0tLSBDaGFuZ2VMb2cJMTcgU2VwIDIwMDUgMDA6MDk6MTAgLTAwMDAJMS4zMzI1
CisrKyBDaGFuZ2VMb2cJMjAgU2VwIDIwMDUgMDg6MDY6MTIgLTAwMDAKQEAgLTEsMyArMSw0NyBA
QAorMjAwNS0wOS0yMCAgRXJpYyBTZWlkZWwgIDxlc2VpZGVsQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBtanMuCisKKwlNb3ZlZCBNSU1FIHR5cGUgc3VwcG9ydCBmcm9tIGEgaGFy
ZCBjb2RlZCBsaXN0CisgICAgICAgIChpbiB0d28gcGxhY2VzKSB0byBzaW5nbGUgbGlzdHMgaW4g
dGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgKlJlcHJlc2VudGF0aW9uIGNsYXNzZXMuICBBbHNv
IG1vdmVkIHRoZSBsaXN0IG9mIHR5cGVzCisgICAgICAgIHN1cHBvcnRlZCBieSBXZWJDb3JlIChX
ZWJIVE1MUmVwcmVzZW50YXRpb24pIGludG8gV2ViQ29yZS4KKworICAgICAgICAqIFdlYlZpZXcu
c3VicHJvai9XZWJEYXRhU291cmNlLm06CisgICAgICAgIChhZGRUeXBlc0Zyb21DbGFzcyk6IG5l
dyBpbmxpbmUgZnVuY3Rpb24KKyAgICAgICAgKCtbV2ViRGF0YVNvdXJjZSBfcmVwVHlwZXNBbGxv
d0ltYWdlVHlwZU9taXNzaW9uOl0pOgorICAgICAgICAqIFdlYlZpZXcuc3VicHJvai9XZWJGcmFt
ZVZpZXcubToKKyAgICAgICAgKGFkZFR5cGVzRnJvbUNsYXNzKTogbmV3IGlubGluZSBmdW5jdGlv
bgorICAgICAgICAoK1tXZWJGcmFtZVZpZXcgX3ZpZXdUeXBlc0FsbG93SW1hZ2VUeXBlT21pc3Np
b246XSk6CisgICAgICAgICogV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5o
OgorICAgICAgICAqIFdlYlZpZXcuc3VicHJvai9XZWJIVE1MUmVwcmVzZW50YXRpb24ubToKKyAg
ICAgICAgKCtbV2ViSFRNTFJlcHJlc2VudGF0aW9uIHN1cHBvcnRlZE1JTUVUeXBlc10pOgorICAg
ICAgICAqIFdlYlZpZXcuc3VicHJvai9XZWJIVE1MVmlldy5tOgorICAgICAgICAoK1tXZWJIVE1M
VmlldyBzdXBwb3J0ZWRNSU1FVHlwZXNdKToKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ovV2Vi
SFRNTFZpZXdQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlUmVw
cmVzZW50YXRpb24uaDoKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VSZXByZXNl
bnRhdGlvbi5tOgorICAgICAgICAoK1tXZWJJbWFnZVJlcHJlc2VudGF0aW9uIHN1cHBvcnRlZE1J
TUVUeXBlc10pOgorICAgICAgICAqIFdlYlZpZXcuc3VicHJvai9XZWJJbWFnZVZpZXcuaDoKKyAg
ICAgICAgKiBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VWaWV3Lm06CisgICAgICAgICgrW1dlYklt
YWdlVmlldyBzdXBwb3J0ZWRNSU1FVHlwZXNdKToKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ov
V2ViUERGUmVwcmVzZW50YXRpb24uaDoKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ovV2ViUERG
UmVwcmVzZW50YXRpb24ubToKKyAgICAgICAgKCtbV2ViUERGUmVwcmVzZW50YXRpb24gc3VwcG9y
dGVkTUlNRVR5cGVzXSk6CisgICAgICAgICogV2ViVmlldy5zdWJwcm9qL1dlYlBERlZpZXcuaDoK
KyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ovV2ViUERGVmlldy5tOgorICAgICAgICAoK1tXZWJQ
REZWaWV3IHN1cHBvcnRlZE1JTUVUeXBlc10pOgorICAgICAgICAqIFdlYlZpZXcuc3VicHJvai9X
ZWJUZXh0UmVwcmVzZW50YXRpb24uaDoKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ovV2ViVGV4
dFJlcHJlc2VudGF0aW9uLm06CisgICAgICAgICgrW1dlYlRleHRSZXByZXNlbnRhdGlvbiBzdXBw
b3J0ZWRNSU1FVHlwZXNdKToKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ovV2ViVGV4dFZpZXcu
aDoKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ovV2ViVGV4dFZpZXcubToKKyAgICAgICAgKCtb
V2ViVGV4dFZpZXcgc3VwcG9ydGVkTUlNRVR5cGVzXSk6CisgICAgICAgICogV2ViVmlldy5zdWJw
cm9qL1dlYlZpZXcubToKKyAgICAgICAgKCtbV2ViVmlldyBfdmlld0NsYXNzOmFuZFJlcHJlc2Vu
dGF0aW9uQ2xhc3M6Zm9yTUlNRVR5cGU6XSk6CisgICAgICAgICgrW1dlYlZpZXcgTUlNRVR5cGVz
U2hvd25Bc0hUTUxdKTogdXBkYXRlZCB0byBtYXRjaCBzdHlsZQorICAgICAgICAoK1tXZWJWaWV3
IHNldE1JTUVUeXBlc1Nob3duQXNIVE1MOl0pOiBkaXR0bworCiAyMDA1LTA5LTE2ICBKb2huIFN1
bGxpdmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAgICAgICogV2ViVmlldy5zdWJwcm9q
L1dlYkltYWdlVmlldy5tOgpJbmRleDogV2ViVmlldy5zdWJwcm9qL1dlYkRhdGFTb3VyY2UubQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJE
YXRhU291cmNlLm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjExCmRpZmYgLXAgLXUgLXIxLjIx
MSBXZWJWaWV3LnN1YnByb2ovV2ViRGF0YVNvdXJjZS5tCi0tLSBXZWJWaWV3LnN1YnByb2ovV2Vi
RGF0YVNvdXJjZS5tCTE1IFNlcCAyMDA1IDAxOjI2OjEyIC0wMDAwCTEuMjExCisrKyBXZWJWaWV3
LnN1YnByb2ovV2ViRGF0YVNvdXJjZS5tCTIwIFNlcCAyMDA1IDA4OjA2OjE3IC0wMDAwCkBAIC02
NTEsNDMgKzY1MSwzNiBAQAogICAgIF9wcml2YXRlLT5tYWluRG9jdW1lbnRFcnJvciA9IG5pbDsK
IH0KIAorc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rp
b25hcnkgKmFsbFR5cGVzLCBDbGFzcyBjbGFzcywgTlNBcnJheSAqc3VwcG9ydFR5cGVzKQorewor
ICAgIE5TRW51bWVyYXRvciAqZW51bWVyYXRvciA9IFtzdXBwb3J0VHlwZXMgb2JqZWN0RW51bWVy
YXRvcl07CisgICAgQVNTRVJUKGVudW1lcmF0b3IgIT0gbmlsKTsKKyAgICBOU1N0cmluZyAqbWlt
ZSA9IG5pbDsKKyAgICB3aGlsZSAoKG1pbWUgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0g
bmlsKSB7CisgICAgICAgIC8vIERvbid0IGNsb2JiZXIgcHJldmlvdXNseS1yZWdpc3RlcmVkIGNs
YXNzZXMuCisgICAgICAgIGlmIChbYWxsVHlwZXMgb2JqZWN0Rm9yS2V5Om1pbWVdID09IG5pbCkK
KyAgICAgICAgICAgIFthbGxUeXBlcyBzZXRPYmplY3Q6Y2xhc3MgZm9yS2V5Om1pbWVdOworICAg
IH0KK30KKwogKyAoTlNNdXRhYmxlRGljdGlvbmFyeSAqKV9yZXBUeXBlc0FsbG93SW1hZ2VUeXBl
T21pc3Npb246KEJPT0wpYWxsb3dJbWFnZVR5cGVPbWlzc2lvbgogewogICAgIHN0YXRpYyBOU011
dGFibGVEaWN0aW9uYXJ5ICpyZXBUeXBlcyA9IG5pbDsKLSAgICBzdGF0aWMgQk9PTCBhZGRlZElt
YWdlVHlwZXM7CisgICAgc3RhdGljIEJPT0wgYWRkZWRJbWFnZVR5cGVzID0gTk87CiAgICAgCiAg
ICAgaWYgKCFyZXBUeXBlcykgewotICAgICAgICByZXBUeXBlcyA9IFtbTlNNdXRhYmxlRGljdGlv
bmFyeSBhbGxvY10gaW5pdFdpdGhPYmplY3RzQW5kS2V5czoKLSAgICAgICAgICAgIFtXZWJIVE1M
UmVwcmVzZW50YXRpb24gY2xhc3NdLCBAInRleHQvaHRtbCIsCi0JICAgIFtXZWJIVE1MUmVwcmVz
ZW50YXRpb24gY2xhc3NdLCBAInRleHQveG1sIiwKLQkgICAgW1dlYkhUTUxSZXByZXNlbnRhdGlv
biBjbGFzc10sIEAidGV4dC94c2wiLAotCSAgICBbV2ViSFRNTFJlcHJlc2VudGF0aW9uIGNsYXNz
XSwgQCJhcHBsaWNhdGlvbi94bWwiLAotCSAgICBbV2ViSFRNTFJlcHJlc2VudGF0aW9uIGNsYXNz
XSwgQCJhcHBsaWNhdGlvbi94aHRtbCt4bWwiLAotICAgICAgICAgICAgW1dlYkhUTUxSZXByZXNl
bnRhdGlvbiBjbGFzc10sIEAiYXBwbGljYXRpb24vcnNzK3htbCIsCi0gICAgICAgICAgICBbV2Vi
SFRNTFJlcHJlc2VudGF0aW9uIGNsYXNzXSwgQCJhcHBsaWNhdGlvbi9hdG9tK3htbCIsCi0gICAg
ICAgICAgICBbV2ViSFRNTFJlcHJlc2VudGF0aW9uIGNsYXNzXSwgQCJhcHBsaWNhdGlvbi94LXdl
YmFyY2hpdmUiLAotICAgICAgICAgICAgW1dlYkhUTUxSZXByZXNlbnRhdGlvbiBjbGFzc10sIEAi
bXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZSIsCi0gICAgICAgICAgICBbV2ViVGV4dFJlcHJlc2Vu
dGF0aW9uIGNsYXNzXSwgQCJ0ZXh0LyIsCi0gICAgICAgICAgICBbV2ViVGV4dFJlcHJlc2VudGF0
aW9uIGNsYXNzXSwgQCJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiLAotICAgICAgICAgICAgbmls
XTsKKyAgICAgICAgcmVwVHlwZXMgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRd
OworICAgICAgICBhZGRUeXBlc0Zyb21DbGFzcyhyZXBUeXBlcywgW1dlYkhUTUxSZXByZXNlbnRh
dGlvbiBjbGFzc10sIFtXZWJIVE1MUmVwcmVzZW50YXRpb24gc3VwcG9ydGVkTUlNRVR5cGVzXSk7
CisgICAgICAgIGFkZFR5cGVzRnJvbUNsYXNzKHJlcFR5cGVzLCBbV2ViVGV4dFJlcHJlc2VudGF0
aW9uIGNsYXNzXSwgW1dlYlRleHRSZXByZXNlbnRhdGlvbiBzdXBwb3J0ZWRNSU1FVHlwZXNdKTsK
IAogICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIGEgInNlY3JldCBkZWZhdWx0IiB3ZSBkb24ndCBi
b3RoIHJlZ2lzdGVyaW5nIGl0LgotICAgICAgICBCT09MIG9taXRQREZTdXBwb3J0ID0gW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpAIldlYktpdE9taXRQ
REZTdXBwb3J0Il07ICAKLSAgICAgICAgaWYgKCFvbWl0UERGU3VwcG9ydCkgewotICAgICAgICAg
ICAgW3JlcFR5cGVzIHNldE9iamVjdDpbV2ViUERGUmVwcmVzZW50YXRpb24gY2xhc3NdIGZvcktl
eTpAInRleHQvcGRmIl07Ci0gICAgICAgICAgICBbcmVwVHlwZXMgc2V0T2JqZWN0OltXZWJQREZS
ZXByZXNlbnRhdGlvbiBjbGFzc10gZm9yS2V5OkAiYXBwbGljYXRpb24vcGRmIl07Ci0gICAgICAg
IH0KKyAgICAgICAgQk9PTCBvbWl0UERGU3VwcG9ydCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRh
cmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJXZWJLaXRPbWl0UERGU3VwcG9ydCJdOworICAg
ICAgICBpZiAoIW9taXRQREZTdXBwb3J0KQorICAgICAgICAgICAgYWRkVHlwZXNGcm9tQ2xhc3Mo
cmVwVHlwZXMsIFtXZWJQREZSZXByZXNlbnRhdGlvbiBjbGFzc10sIFtXZWJQREZSZXByZXNlbnRh
dGlvbiBzdXBwb3J0ZWRNSU1FVHlwZXNdKTsKICAgICB9CiAgICAgCiAgICAgaWYgKCFhZGRlZElt
YWdlVHlwZXMgJiYgIWFsbG93SW1hZ2VUeXBlT21pc3Npb24pIHsKLSAgICAgICAgTlNFbnVtZXJh
dG9yICplbnVtZXJhdG9yID0gW1tXZWJJbWFnZVZpZXcgc3VwcG9ydGVkSW1hZ2VNSU1FVHlwZXNd
IG9iamVjdEVudW1lcmF0b3JdOwotICAgICAgICBOU1N0cmluZyAqbWltZTsKLSAgICAgICAgd2hp
bGUgKChtaW1lID0gW2VudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgewotICAgICAgICAg
ICAgLy8gRG9uJ3QgY2xvYmJlciBwcmV2aW91c2x5LXJlZ2lzdGVyZWQgcmVwIGNsYXNzZXMuCi0g
ICAgICAgICAgICBpZiAoW3JlcFR5cGVzIG9iamVjdEZvcktleTptaW1lXSA9PSBuaWwpIHsKLSAg
ICAgICAgICAgICAgICBbcmVwVHlwZXMgc2V0T2JqZWN0OltXZWJJbWFnZVJlcHJlc2VudGF0aW9u
IGNsYXNzXSBmb3JLZXk6bWltZV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAg
YWRkVHlwZXNGcm9tQ2xhc3MocmVwVHlwZXMsIFtXZWJJbWFnZVJlcHJlc2VudGF0aW9uIGNsYXNz
XSwgW1dlYkltYWdlUmVwcmVzZW50YXRpb24gc3VwcG9ydGVkTUlNRVR5cGVzXSk7CiAgICAgICAg
IGFkZGVkSW1hZ2VUeXBlcyA9IFlFUzsKICAgICB9CiAgICAgCkluZGV4OiBXZWJWaWV3LnN1YnBy
b2ovV2ViRnJhbWVWaWV3Lm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9X
ZWJWaWV3LnN1YnByb2ovV2ViRnJhbWVWaWV3Lm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTg3
CmRpZmYgLXAgLXUgLXIxLjE4NyBXZWJWaWV3LnN1YnByb2ovV2ViRnJhbWVWaWV3Lm0KLS0tIFdl
YlZpZXcuc3VicHJvai9XZWJGcmFtZVZpZXcubQk4IFNlcCAyMDA1IDIxOjM1OjA4IC0wMDAwCTEu
MTg3CisrKyBXZWJWaWV3LnN1YnByb2ovV2ViRnJhbWVWaWV3Lm0JMjAgU2VwIDIwMDUgMDg6MDY6
MTggLTAwMDAKQEAgLTIzOCw0NSArMjM4LDM2IEBAIGVudW0gewogICAgIHJldHVybiAoaGVpZ2h0
IDwgb3ZlcmxhcCkgPyBoZWlnaHQgLyAyIDogaGVpZ2h0IC0gb3ZlcmxhcDsKIH0KIAotc3RhdGlj
IE5TTXV0YWJsZURpY3Rpb25hcnkgKnZpZXdUeXBlczsKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRU
eXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3MgY2xhc3Ms
IE5TQXJyYXkgKnN1cHBvcnRUeXBlcykKK3sKKyAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3Ig
PSBbc3VwcG9ydFR5cGVzIG9iamVjdEVudW1lcmF0b3JdOworICAgIEFTU0VSVChlbnVtZXJhdG9y
ICE9IG5pbCk7CisgICAgTlNTdHJpbmcgKm1pbWUgPSBuaWw7CisgICAgd2hpbGUgKChtaW1lID0g
W2VudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgeworICAgICAgICAvLyBEb24ndCBjbG9i
YmVyIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBjbGFzc2VzLgorICAgICAgICBpZiAoW2FsbFR5cGVz
IG9iamVjdEZvcktleTptaW1lXSA9PSBuaWwpCisgICAgICAgICAgICBbYWxsVHlwZXMgc2V0T2Jq
ZWN0OmNsYXNzIGZvcktleTptaW1lXTsKKyAgICB9Cit9CiAKICsgKE5TTXV0YWJsZURpY3Rpb25h
cnkgKilfdmlld1R5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lvbjooQk9PTClhbGxvd0ltYWdlVHlw
ZU9taXNzaW9uCiB7Ci0gICAgc3RhdGljIEJPT0wgYWRkZWRJbWFnZVR5cGVzOwotCisgICAgc3Rh
dGljIE5TTXV0YWJsZURpY3Rpb25hcnkgKnZpZXdUeXBlcyA9IG5pbDsKKyAgICBzdGF0aWMgQk9P
TCBhZGRlZEltYWdlVHlwZXMgPSBOTzsKKyAgICAKICAgICBpZiAoIXZpZXdUeXBlcykgewotICAg
ICAgICB2aWV3VHlwZXMgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0c0FuZEtleXM6Ci0gICAgICAgICAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAInRleHQvaHRt
bCIsCi0JICAgIFtXZWJIVE1MVmlldyBjbGFzc10sIEAidGV4dC94bWwiLAotCSAgICBbV2ViSFRN
TFZpZXcgY2xhc3NdLCBAInRleHQveHNsIiwKLQkgICAgW1dlYkhUTUxWaWV3IGNsYXNzXSwgQCJh
cHBsaWNhdGlvbi94bWwiLAotCSAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAImFwcGxpY2F0aW9u
L3hodG1sK3htbCIsCi0gICAgICAgICAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAImFwcGxpY2F0
aW9uL3Jzcyt4bWwiLAotICAgICAgICAgICAgW1dlYkhUTUxWaWV3IGNsYXNzXSwgQCJhcHBsaWNh
dGlvbi9hdG9tK3htbCIsCi0gICAgICAgICAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBAImFwcGxp
Y2F0aW9uL3gtd2ViYXJjaGl2ZSIsCi0gICAgICAgICAgICBbV2ViSFRNTFZpZXcgY2xhc3NdLCBA
Im11bHRpcGFydC94LW1peGVkLXJlcGxhY2UiLAotICAgICAgICAgICAgW1dlYlRleHRWaWV3IGNs
YXNzXSwgQCJ0ZXh0LyIsCi0gICAgICAgICAgICBbV2ViVGV4dFZpZXcgY2xhc3NdLCBAImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCIsCi0gICAgICAgICAgICBuaWxdOworICAgICAgICB2aWV3VHlw
ZXMgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdOworICAgICAgICBhZGRUeXBl
c0Zyb21DbGFzcyh2aWV3VHlwZXMsIFtXZWJIVE1MVmlldyBjbGFzc10sIFtXZWJIVE1MVmlldyBz
dXBwb3J0ZWRNSU1FVHlwZXNdKTsKKyAgICAgICAgYWRkVHlwZXNGcm9tQ2xhc3Modmlld1R5cGVz
LCBbV2ViVGV4dFZpZXcgY2xhc3NdLCBbV2ViVGV4dFZpZXcgc3VwcG9ydGVkTUlNRVR5cGVzXSk7
CiAKICAgICAgICAgLy8gU2luY2UgdGhpcyBpcyBhICJzZWNyZXQgZGVmYXVsdCIgd2UgZG9uJ3Qg
Ym90aCByZWdpc3RlcmluZyBpdC4KLSAgICAgICAgQk9PTCBvbWl0UERGU3VwcG9ydCA9IFtbTlNV
c2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJXZWJLaXRPbWl0
UERGU3VwcG9ydCJdOyAgCi0gICAgICAgIGlmICghb21pdFBERlN1cHBvcnQpIHsKLSAgICAgICAg
ICAgIFt2aWV3VHlwZXMgc2V0T2JqZWN0OltXZWJQREZWaWV3IGNsYXNzXSBmb3JLZXk6QCJ0ZXh0
L3BkZiJdOwotICAgICAgICAgICAgW3ZpZXdUeXBlcyBzZXRPYmplY3Q6W1dlYlBERlZpZXcgY2xh
c3NdIGZvcktleTpAImFwcGxpY2F0aW9uL3BkZiJdOwotICAgICAgICB9CisgICAgICAgIEJPT0wg
b21pdFBERlN1cHBvcnQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBi
b29sRm9yS2V5OkAiV2ViS2l0T21pdFBERlN1cHBvcnQiXTsKKyAgICAgICAgaWYgKCFvbWl0UERG
U3VwcG9ydCkKKyAgICAgICAgICAgIGFkZFR5cGVzRnJvbUNsYXNzKHZpZXdUeXBlcywgW1dlYlBE
RlZpZXcgY2xhc3NdLCBbV2ViUERGVmlldyBzdXBwb3J0ZWRNSU1FVHlwZXNdKTsKICAgICB9Ci0K
KyAgICAKICAgICBpZiAoIWFkZGVkSW1hZ2VUeXBlcyAmJiAhYWxsb3dJbWFnZVR5cGVPbWlzc2lv
bikgewotICAgICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbW1dlYkltYWdlVmlldyBz
dXBwb3J0ZWRJbWFnZU1JTUVUeXBlc10gb2JqZWN0RW51bWVyYXRvcl07Ci0gICAgICAgIEFTU0VS
VChlbnVtZXJhdG9yICE9IG5pbCk7Ci0gICAgICAgIE5TU3RyaW5nICptaW1lOwotICAgICAgICB3
aGlsZSAoKG1pbWUgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAg
ICAgICAvLyBEb24ndCBjbG9iYmVyIHByZXZpb3VzbHktcmVnaXN0ZXJlZCB2aWV3IGNsYXNzZXMu
Ci0gICAgICAgICAgICBpZiAoW3ZpZXdUeXBlcyBvYmplY3RGb3JLZXk6bWltZV0gPT0gbmlsKSB7
Ci0gICAgICAgICAgICAgICAgW3ZpZXdUeXBlcyBzZXRPYmplY3Q6W1dlYkltYWdlVmlldyBjbGFz
c10gZm9yS2V5Om1pbWVdOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGFkZFR5
cGVzRnJvbUNsYXNzKHZpZXdUeXBlcywgW1dlYkltYWdlVmlldyBjbGFzc10sIFtXZWJJbWFnZVZp
ZXcgc3VwcG9ydGVkTUlNRVR5cGVzXSk7CiAgICAgICAgIGFkZGVkSW1hZ2VUeXBlcyA9IFlFUzsK
ICAgICB9CiAgICAgCkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViSFRNTFJlcHJlc2VudGF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ov
V2ViSFRNTFJlcHJlc2VudGF0aW9uLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzAKZGlmZiAt
cCAtdSAtcjEuMzAgV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5oCi0tLSBX
ZWJWaWV3LnN1YnByb2ovV2ViSFRNTFJlcHJlc2VudGF0aW9uLmgJMjkgSnVsIDIwMDUgMjE6MTY6
NTYgLTAwMDAJMS4zMAorKysgV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5o
CTIwIFNlcCAyMDA1IDA4OjA2OjE4IC0wMDAwCkBAIC00OCw2ICs0OCw4IEBACiAgICAgV2ViSFRN
TFJlcHJlc2VudGF0aW9uUHJpdmF0ZSAqX3ByaXZhdGU7CiB9CiAKKysgKE5TQXJyYXkgKilzdXBw
b3J0ZWRNSU1FVHlwZXM7CisKIC0gKE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJpYnV0ZWRTdHJp
bmdGcm9tOihET01Ob2RlICopc3RhcnROb2RlIHN0YXJ0T2Zmc2V0OihpbnQpc3RhcnRPZmZzZXQg
dG86KERPTU5vZGUgKillbmROb2RlIGVuZE9mZnNldDooaW50KWVuZE9mZnNldDsKIAogLSAoRE9N
RWxlbWVudCAqKWVsZW1lbnRXaXRoTmFtZTooTlNTdHJpbmcgKiluYW1lIGluRm9ybTooRE9NRWxl
bWVudCAqKWZvcm07CkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViSFRNTFJlcHJlc2VudGF0aW9u
Lm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ov
V2ViSFRNTFJlcHJlc2VudGF0aW9uLm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTcKZGlmZiAt
cCAtdSAtcjEuNTcgV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tCi0tLSBX
ZWJWaWV3LnN1YnByb2ovV2ViSFRNTFJlcHJlc2VudGF0aW9uLm0JMjkgSnVsIDIwMDUgMjE6MTY6
NTYgLTAwMDAJMS41NworKysgV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxSZXByZXNlbnRhdGlvbi5t
CTIwIFNlcCAyMDA1IDA4OjA2OjE4IC0wMDAwCkBAIC02NCw2ICs2NCwxMSBAQAogCiBAaW1wbGVt
ZW50YXRpb24gV2ViSFRNTFJlcHJlc2VudGF0aW9uCiAKKysgKE5TQXJyYXkgKilzdXBwb3J0ZWRN
SU1FVHlwZXMKK3sKKyAgICByZXR1cm4gW1dlYkNvcmVCcmlkZ2Ugc3VwcG9ydGVkTUlNRVR5cGVz
XTsKK30KKwogLSBpbml0CiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKSW5kZXg6IFdlYlZp
ZXcuc3VicHJvai9XZWJIVE1MVmlldy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3Lm0sdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNDY3CmRpZmYgLXAgLXUgLXIxLjQ2NyBXZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXcubQot
LS0gV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3Lm0JNSBTZXAgMjAwNSAyMjoyNjowNSAtMDAw
MAkxLjQ2NworKysgV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3Lm0JMjAgU2VwIDIwMDUgMDg6
MDY6MjMgLTAwMDAKQEAgLTY0NCw2ICs2NDQsMTEgQEAgdm9pZCAqX05TU29mdExpbmtpbmdHZXRG
cmFtZXdvcmtGdW5jUHRyKAogICAgIFtXZWJJbWFnZVJlbmRlcmVyIHN0b3BBbmltYXRpb25zSW5W
aWV3OnNlbGZdOwogfQogCisrIChOU0FycmF5ICopc3VwcG9ydGVkTUlNRVR5cGVzCit7CisgICAg
cmV0dXJuIFtXZWJIVE1MUmVwcmVzZW50YXRpb24gc3VwcG9ydGVkTUlNRVR5cGVzXTsKK30KKwog
KyAodm9pZClfcG9zdEZsYWdzQ2hhbmdlZEV2ZW50OihOU0V2ZW50ICopZmxhZ3NDaGFuZ2VkRXZl
bnQKIHsKICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNNb3VzZU1vdmVkCkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViSFRNTFZpZXdQcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ov
V2ViSFRNTFZpZXdQcml2YXRlLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTQKZGlmZiAtcCAt
dSAtcjEuOTQgV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3UHJpdmF0ZS5oCi0tLSBXZWJWaWV3
LnN1YnByb2ovV2ViSFRNTFZpZXdQcml2YXRlLmgJMTggSnVsIDIwMDUgMTg6MDI6MjEgLTAwMDAJ
MS45NAorKysgV2ViVmlldy5zdWJwcm9qL1dlYkhUTUxWaWV3UHJpdmF0ZS5oCTIwIFNlcCAyMDA1
IDA4OjA2OjIzIC0wMDAwCkBAIC0zOSw2ICszOSw3IEBACiBAaW50ZXJmYWNlIFdlYkhUTUxWaWV3
IChXZWJQcml2YXRlKQogCiAtICh2b2lkKV9yZXNldDsKKysgKE5TQXJyYXkgKilzdXBwb3J0ZWRN
SU1FVHlwZXM7CiAKIC8vIE1vZGlmaWVyIChmbGFnc0NoYW5nZWQpIHRyYWNraW5nIFNQSQogKyAo
dm9pZClfcG9zdEZsYWdzQ2hhbmdlZEV2ZW50OihOU0V2ZW50ICopZmxhZ3NDaGFuZ2VkRXZlbnQ7
CkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VSZXByZXNlbnRhdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlUmVw
cmVzZW50YXRpb24uaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMgpkaWZmIC1wIC11IC1yMS4x
MiBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VSZXByZXNlbnRhdGlvbi5oCi0tLSBXZWJWaWV3LnN1
YnByb2ovV2ViSW1hZ2VSZXByZXNlbnRhdGlvbi5oCTUgSnVuIDIwMDUgMTc6NTQ6NDcgLTAwMDAJ
MS4xMgorKysgV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlUmVwcmVzZW50YXRpb24uaAkyMCBTZXAg
MjAwNSAwODowNjoyMyAtMDAwMApAQCAtNDAsNiArNDAsNyBAQAogICAgIFdlYkltYWdlUmVuZGVy
ZXIgKmltYWdlOwogICAgIEJPT0wgZG9uZUxvYWRpbmc7CiB9CisrIChOU0FycmF5ICopc3VwcG9y
dGVkTUlNRVR5cGVzOwogLSAoV2ViSW1hZ2VSZW5kZXJlciAqKWltYWdlOwogLSAoTlNTdHJpbmcg
KilmaWxlbmFtZTsKIC0gKFdlYkFyY2hpdmUgKilhcmNoaXZlOwpJbmRleDogV2ViVmlldy5zdWJw
cm9qL1dlYkltYWdlUmVwcmVzZW50YXRpb24ubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViS2l0L1dlYlZpZXcuc3VicHJvai9XZWJJbWFnZVJlcHJlc2VudGF0aW9uLm0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMjUKZGlmZiAtcCAtdSAtcjEuMjUgV2ViVmlldy5zdWJwcm9qL1dl
YkltYWdlUmVwcmVzZW50YXRpb24ubQotLS0gV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlUmVwcmVz
ZW50YXRpb24ubQk1IEp1biAyMDA1IDE3OjU0OjQ3IC0wMDAwCTEuMjUKKysrIFdlYlZpZXcuc3Vi
cHJvai9XZWJJbWFnZVJlcHJlc2VudGF0aW9uLm0JMjAgU2VwIDIwMDUgMDg6MDY6MjMgLTAwMDAK
QEAgLTQxLDYgKzQxLDE3IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJJbWFnZVJlcHJlc2VudGF0
aW9uCiAKKysgKE5TQXJyYXkgKilzdXBwb3J0ZWRNSU1FVHlwZXMKK3sKKyAgICBzdGF0aWMgTlNN
dXRhYmxlQXJyYXkgKmltYWdlTUlNRVR5cGVzID0gbmlsOworICAgIGlmIChpbWFnZU1JTUVUeXBl
cyA9PSBuaWwpIHsKKyAgICAgICAgaW1hZ2VNSU1FVHlwZXMgPSBbW1tXZWJJbWFnZVJlbmRlcmVy
RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSBzdXBwb3J0ZWRNSU1FVHlwZXNdIG11dGFibGVDb3B5XTsK
KyAgICAgICAgW2ltYWdlTUlNRVR5cGVzIHJlbW92ZU9iamVjdDpAImFwcGxpY2F0aW9uL3BkZiJd
OworICAgICAgICBbaW1hZ2VNSU1FVHlwZXMgcmVtb3ZlT2JqZWN0OkAiYXBwbGljYXRpb24vcG9z
dHNjcmlwdCJdOworICAgIH0KKyAgICByZXR1cm4gaW1hZ2VNSU1FVHlwZXM7Cit9CisKIC0gKHZv
aWQpZGVhbGxvYwogewogICAgIFtpbWFnZSByZWxlYXNlXTsKSW5kZXg6IFdlYlZpZXcuc3VicHJv
ai9XZWJJbWFnZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L1dl
YlZpZXcuc3VicHJvai9XZWJJbWFnZVZpZXcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNwpk
aWZmIC1wIC11IC1yMS4xNyBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VWaWV3LmgKLS0tIFdlYlZp
ZXcuc3VicHJvai9XZWJJbWFnZVZpZXcuaAk1IEp1biAyMDA1IDE3OjU0OjQ3IC0wMDAwCTEuMTcK
KysrIFdlYlZpZXcuc3VicHJvai9XZWJJbWFnZVZpZXcuaAkyMCBTZXAgMjAwNSAwODowNjoyMyAt
MDAwMApAQCAtMzgsNSArMzgsNSBAQAogICAgIE5TRXZlbnQgKm1vdXNlRG93bkV2ZW50OwogICAg
IHVuc2lnbmVkIGludCBkcmFnU291cmNlQWN0aW9uTWFzazsKIH0KLSsgKE5TQXJyYXkgKilzdXBw
b3J0ZWRJbWFnZU1JTUVUeXBlczsKKysgKE5TQXJyYXkgKilzdXBwb3J0ZWRNSU1FVHlwZXM7CiBA
ZW5kCkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VWaWV3Lm0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VWaWV3Lm0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuNzQKZGlmZiAtcCAtdSAtcjEuNzQgV2ViVmlldy5zdWJwcm9q
L1dlYkltYWdlVmlldy5tCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViSW1hZ2VWaWV3Lm0JMTcgU2Vw
IDIwMDUgMDA6MDk6MTMgLTAwMDAJMS43NAorKysgV2ViVmlldy5zdWJwcm9qL1dlYkltYWdlVmll
dy5tCTIwIFNlcCAyMDA1IDA4OjA2OjI0IC0wMDAwCkBAIC01MSwxNSArNTEsOSBAQAogICAgIFtO
U0FwcCByZWdpc3RlclNlcnZpY2VzTWVudVNlbmRUeXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmpl
Y3Q6TlNUSUZGUGJvYXJkVHlwZV0gcmV0dXJuVHlwZXM6bmlsXTsKIH0KIAotKyAoTlNBcnJheSAq
KXN1cHBvcnRlZEltYWdlTUlNRVR5cGVzCisrIChOU0FycmF5ICopc3VwcG9ydGVkTUlNRVR5cGVz
CiB7Ci0gICAgc3RhdGljIE5TTXV0YWJsZUFycmF5ICppbWFnZU1JTUVUeXBlcyA9IG5pbDsKLSAg
ICBpZiAoaW1hZ2VNSU1FVHlwZXMgPT0gbmlsKSB7Ci0gICAgICAgIGltYWdlTUlNRVR5cGVzID0g
W1tbV2ViSW1hZ2VSZW5kZXJlckZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gc3VwcG9ydGVkTUlNRVR5
cGVzXSBtdXRhYmxlQ29weV07Ci0gICAgICAgIFtpbWFnZU1JTUVUeXBlcyByZW1vdmVPYmplY3Q6
QCJhcHBsaWNhdGlvbi9wZGYiXTsKLSAgICAgICAgW2ltYWdlTUlNRVR5cGVzIHJlbW92ZU9iamVj
dDpAImFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQiXTsKLSAgICB9Ci0gICAgcmV0dXJuIGltYWdlTUlN
RVR5cGVzOworICAgIHJldHVybiBbV2ViSW1hZ2VSZXByZXNlbnRhdGlvbiBzdXBwb3J0ZWRNSU1F
VHlwZXNdOwogfQogCiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUKSW5kZXg6IFdl
YlZpZXcuc3VicHJvai9XZWJQREZSZXByZXNlbnRhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYlBERlJlcHJlc2VudGF0aW9uLmgs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IFdlYlZpZXcuc3VicHJv
ai9XZWJQREZSZXByZXNlbnRhdGlvbi5oCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViUERGUmVwcmVz
ZW50YXRpb24uaAkxNiBBdWcgMjAwNSAxOTowMzozNSAtMDAwMAkxLjQKKysrIFdlYlZpZXcuc3Vi
cHJvai9XZWJQREZSZXByZXNlbnRhdGlvbi5oCTIwIFNlcCAyMDA1IDA4OjA2OjI0IC0wMDAwCkBA
IC0zMSw0ICszMSw1IEBACiBAcHJvdG9jb2wgV2ViRG9jdW1lbnRSZXByZXNlbnRhdGlvbjsKIAog
QGludGVyZmFjZSBXZWJQREZSZXByZXNlbnRhdGlvbiA6IE5TT2JqZWN0IDxXZWJEb2N1bWVudFJl
cHJlc2VudGF0aW9uPgorKyAoTlNBcnJheSAqKXN1cHBvcnRlZE1JTUVUeXBlczsKIEBlbmQKSW5k
ZXg6IFdlYlZpZXcuc3VicHJvai9XZWJQREZSZXByZXNlbnRhdGlvbi5tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYlBERlJlcHJlc2VudGF0
aW9uLm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IFdlYlZpZXcu
c3VicHJvai9XZWJQREZSZXByZXNlbnRhdGlvbi5tCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViUERG
UmVwcmVzZW50YXRpb24ubQkxNiBBdWcgMjAwNSAxOTowMzozNSAtMDAwMAkxLjYKKysrIFdlYlZp
ZXcuc3VicHJvai9XZWJQREZSZXByZXNlbnRhdGlvbi5tCTIwIFNlcCAyMDA1IDA4OjA2OjI0IC0w
MDAwCkBAIC0zOCw2ICszOCwxNCBAQAogCiBAaW1wbGVtZW50YXRpb24gV2ViUERGUmVwcmVzZW50
YXRpb24KIAorKyAoTlNBcnJheSAqKXN1cHBvcnRlZE1JTUVUeXBlcworeworICAgIHJldHVybiBb
TlNBcnJheSBhcnJheVdpdGhPYmplY3RzOgorICAgICAgICAgICAgQCJ0ZXh0L3BkZiIsCisgICAg
ICAgICAgICBAImFwcGxpY2F0aW9uL3BkZiIsCisgICAgICAgICAgICBuaWxdOworfQorCiArIChD
bGFzcylQREZEb2N1bWVudENsYXNzCiB7CiAgICAgc3RhdGljIENsYXNzIFBERkRvY3VtZW50Q2xh
c3MgPSBuaWw7CkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViUERGVmlldy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYlBERlZpZXcuaCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMwpkaWZmIC1wIC11IC1yMS4xMyBXZWJWaWV3LnN1YnBy
b2ovV2ViUERGVmlldy5oCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViUERGVmlldy5oCTE2IEF1ZyAy
MDA1IDE5OjAzOjM1IC0wMDAwCTEuMTMKKysrIFdlYlZpZXcuc3VicHJvai9XZWJQREZWaWV3LmgJ
MjAgU2VwIDIwMDUgMDg6MDY6MjQgLTAwMDAKQEAgLTQ1LDYgKzQ1LDcgQEAKICAgICBQREZWaWV3
ICpQREZTdWJ2aWV3UHJveHk7CiB9CiAKKysgKE5TQXJyYXkgKilzdXBwb3J0ZWRNSU1FVHlwZXM7
CiArIChOU0J1bmRsZSAqKVBERktpdEJ1bmRsZTsKIC0gKFBERlZpZXcgKilQREZTdWJ2aWV3Owog
CkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViUERGVmlldy5tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYlBERlZpZXcubSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4yNQpkaWZmIC1wIC11IC1yMS4yNSBXZWJWaWV3LnN1YnByb2ovV2ViUERG
Vmlldy5tCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViUERGVmlldy5tCTE2IEF1ZyAyMDA1IDE5OjAz
OjM1IC0wMDAwCTEuMjUKKysrIFdlYlZpZXcuc3VicHJvai9XZWJQREZWaWV3Lm0JMjAgU2VwIDIw
MDUgMDg6MDY6MjUgLTAwMDAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJW
aWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJQREZSZXByZXNl
bnRhdGlvbi5oPgogCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQg
PFBERktpdC9QREZLaXQuaD4KQEAgLTk0LDYgKzk1LDExIEBAIE5TU3RyaW5nICpfTlNQYXRoRm9y
U3lzdGVtRnJhbWV3b3JrKE5TU3QKICAgICByZXR1cm4gUERGVmlld0NsYXNzOwogfQogCisrIChO
U0FycmF5ICopc3VwcG9ydGVkTUlNRVR5cGVzCit7CisgICAgcmV0dXJuIFtXZWJQREZSZXByZXNl
bnRhdGlvbiBzdXBwb3J0ZWRNSU1FVHlwZXNdOworfQorCiAtIChpZClpbml0V2l0aEZyYW1lOihO
U1JlY3QpZnJhbWUKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwpJ
bmRleDogV2ViVmlldy5zdWJwcm9qL1dlYlRleHRSZXByZXNlbnRhdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYlRleHRSZXByZXNl
bnRhdGlvbi5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtcCAtdSAtcjEuNiBXZWJW
aWV3LnN1YnByb2ovV2ViVGV4dFJlcHJlc2VudGF0aW9uLmgKLS0tIFdlYlZpZXcuc3VicHJvai9X
ZWJUZXh0UmVwcmVzZW50YXRpb24uaAk1IEp1biAyMDA1IDE3OjU0OjQ4IC0wMDAwCTEuNgorKysg
V2ViVmlldy5zdWJwcm9qL1dlYlRleHRSZXByZXNlbnRhdGlvbi5oCTIwIFNlcCAyMDA1IDA4OjA2
OjI1IC0wMDAwCkBAIC0zNSw0ICszNSw1IEBACiAgICAgTlNTdHJpbmcgKlJURlNvdXJjZTsKICAg
ICBCT09MIGhhc1JURlNvdXJjZTsKIH0KKysgKE5TQXJyYXkgKilzdXBwb3J0ZWRNSU1FVHlwZXM7
CiBAZW5kCkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViVGV4dFJlcHJlc2VudGF0aW9uLm0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViVGV4
dFJlcHJlc2VudGF0aW9uLm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTgKZGlmZiAtcCAtdSAt
cjEuMTggV2ViVmlldy5zdWJwcm9qL1dlYlRleHRSZXByZXNlbnRhdGlvbi5tCi0tLSBXZWJWaWV3
LnN1YnByb2ovV2ViVGV4dFJlcHJlc2VudGF0aW9uLm0JNSBKdW4gMjAwNSAxNzo1NDo0OCAtMDAw
MAkxLjE4CisrKyBXZWJWaWV3LnN1YnByb2ovV2ViVGV4dFJlcHJlc2VudGF0aW9uLm0JMjAgU2Vw
IDIwMDUgMDg6MDY6MjUgLTAwMDAKQEAgLTM4LDYgKzM4LDE0IEBACiAKIEBpbXBsZW1lbnRhdGlv
biBXZWJUZXh0UmVwcmVzZW50YXRpb24KIAorKyAoTlNBcnJheSAqKXN1cHBvcnRlZE1JTUVUeXBl
cworeworICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOgorICAgICAgICAgICAg
QCJ0ZXh0LyIsCisgICAgICAgICAgICBAImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIsCisgICAg
ICAgICAgICBuaWxdOworfQorCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbUlRGU291cmNlIHJl
bGVhc2VdOwpJbmRleDogV2ViVmlldy5zdWJwcm9qL1dlYlRleHRWaWV3LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYktpdC9XZWJWaWV3LnN1YnByb2ovV2ViVGV4dFZpZXcuaCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOQpkaWZmIC1wIC11IC1yMS4xOSBXZWJWaWV3LnN1YnBy
b2ovV2ViVGV4dFZpZXcuaAotLS0gV2ViVmlldy5zdWJwcm9qL1dlYlRleHRWaWV3LmgJMTggSnVs
IDIwMDUgMTg6MDI6MjEgLTAwMDAJMS4xOQorKysgV2ViVmlldy5zdWJwcm9qL1dlYlRleHRWaWV3
LmgJMjAgU2VwIDIwMDUgMDg6MDY6MjUgLTAwMDAKQEAgLTM2LDYgKzM2LDcgQEAKICAgICBmbG9h
dCBfdGV4dFNpemVNdWx0aXBsaWVyOwogfQogCisrIChOU0FycmF5ICopc3VwcG9ydGVkTUlNRVR5
cGVzOwogKyAoTlNBcnJheSAqKXVuc3VwcG9ydGVkVGV4dE1JTUVUeXBlczsKIC0gKHZvaWQpc2V0
Rml4ZWRXaWR0aEZvbnQ7CiAKSW5kZXg6IFdlYlZpZXcuc3VicHJvai9XZWJUZXh0Vmlldy5tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJLaXQvV2ViVmlldy5zdWJwcm9qL1dlYlRl
eHRWaWV3Lm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjAKZGlmZiAtcCAtdSAtcjEuNjAgV2Vi
Vmlldy5zdWJwcm9qL1dlYlRleHRWaWV3Lm0KLS0tIFdlYlZpZXcuc3VicHJvai9XZWJUZXh0Vmll
dy5tCTI3IEp1bCAyMDA1IDIxOjM2OjQ0IC0wMDAwCTEuNjAKKysrIFdlYlZpZXcuc3VicHJvai9X
ZWJUZXh0Vmlldy5tCTIwIFNlcCAyMDA1IDA4OjA2OjI1IC0wMDAwCkBAIC00Miw2ICs0Miw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV2ViUHJlZmVyZW5jZXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJU
ZXh0UmVuZGVyZXJGYWN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4K
KyNpbXBvcnQgPFdlYktpdC9XZWJUZXh0UmVwcmVzZW50YXRpb24uaD4KIAogI2ltcG9ydCA8Rm91
bmRhdGlvbi9OU1VSTFJlc3BvbnNlLmg+CiAKQEAgLTU4LDYgKzU5LDExIEBACiAKIEBpbXBsZW1l
bnRhdGlvbiBXZWJUZXh0VmlldwogCisrIChOU0FycmF5ICopc3VwcG9ydGVkTUlNRVR5cGVzCit7
CisgICAgcmV0dXJuIFtXZWJUZXh0UmVwcmVzZW50YXRpb24gc3VwcG9ydGVkTUlNRVR5cGVzXTsK
K30KKwogKyAoTlNBcnJheSAqKXVuc3VwcG9ydGVkVGV4dE1JTUVUeXBlcwogewogICAgIHJldHVy
biBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOgpJbmRleDogV2ViVmlldy5zdWJwcm9qL1dlYlZp
ZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViS2l0L1dlYlZpZXcuc3VicHJv
ai9XZWJWaWV3Lm0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzA1CmRpZmYgLXAgLXUgLXIxLjMw
NSBXZWJWaWV3LnN1YnByb2ovV2ViVmlldy5tCi0tLSBXZWJWaWV3LnN1YnByb2ovV2ViVmlldy5t
CTExIFNlcCAyMDA1IDE3OjA0OjE3IC0wMDAwCTEuMzA1CisrKyBXZWJWaWV3LnN1YnByb2ovV2Vi
Vmlldy5tCTIwIFNlcCAyMDA1IDA4OjA2OjI4IC0wMDAwCkBAIC0zNjksMzAgKzM2OSwxOSBAQCBz
dGF0aWMgYm9vbCBkZWJ1Z1dpZGdldCA9IHRydWU7CiArIChCT09MKV92aWV3Q2xhc3M6KENsYXNz
ICopdkNsYXNzIGFuZFJlcHJlc2VudGF0aW9uQ2xhc3M6KENsYXNzICopckNsYXNzIGZvck1JTUVU
eXBlOihOU1N0cmluZyAqKU1JTUVUeXBlOwogewogICAgIE1JTUVUeXBlID0gW01JTUVUeXBlIGxv
d2VyY2FzZVN0cmluZ107Ci0gICAgQ2xhc3Mgdmlld0NsYXNzOwotICAgIENsYXNzIHJlcENsYXNz
OworICAgIENsYXNzIHZpZXdDbGFzcyA9IFtbV2ViRnJhbWVWaWV3IF92aWV3VHlwZXNBbGxvd0lt
YWdlVHlwZU9taXNzaW9uOllFU10gX3dlYmtpdF9vYmplY3RGb3JNSU1FVHlwZTpNSU1FVHlwZV07
CisgICAgQ2xhc3MgcmVwQ2xhc3MgPSBbW1dlYkRhdGFTb3VyY2UgX3JlcFR5cGVzQWxsb3dJbWFn
ZVR5cGVPbWlzc2lvbjpZRVNdIF93ZWJraXRfb2JqZWN0Rm9yTUlNRVR5cGU6TUlNRVR5cGVdOwog
ICAgIAotICAgIC8vIFNpbXBsZSBvcHRpbWl6YXRpb24gdGhhdCBhdm9pZHMgbG9hZGluZyB0aGUg
cGx1Zy1pbiBEQiBhbmQgaW1hZ2UgdHlwZXMgZm9yIHRoZSBIVE1MIGNhc2UuCi0gICAgaWYgKFtz
ZWxmIGNhblNob3dNSU1FVHlwZUFzSFRNTDpNSU1FVHlwZV0pIHsKLSAgICAgICAgdmlld0NsYXNz
ID0gW1tXZWJGcmFtZVZpZXcgX3ZpZXdUeXBlc0FsbG93SW1hZ2VUeXBlT21pc3Npb246WUVTXSBf
d2Via2l0X29iamVjdEZvck1JTUVUeXBlOk1JTUVUeXBlXTsKLSAgICAgICAgcmVwQ2xhc3MgPSBb
W1dlYkRhdGFTb3VyY2UgX3JlcFR5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lvbjpZRVNdIF93ZWJr
aXRfb2JqZWN0Rm9yTUlNRVR5cGU6TUlNRVR5cGVdOwotICAgICAgICBpZiAodmlld0NsYXNzICYm
IHJlcENsYXNzKSB7Ci0gICAgICAgICAgICBpZiAodkNsYXNzKSB7Ci0gICAgICAgICAgICAgICAg
KnZDbGFzcyA9IHZpZXdDbGFzczsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyQ2xh
c3MpIHsKLSAgICAgICAgICAgICAgICAqckNsYXNzID0gcmVwQ2xhc3M7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICByZXR1cm4gWUVTOwotICAgICAgICB9CisgICAgaWYgKCF2aWV3Q2xhc3Mg
fHwgIXJlcENsYXNzKSB7CisgICAgICAgIC8vIE91ciBvcHRpbWl6YXRpb24gdG8gYXZvaWQgbG9h
ZGluZyB0aGUgcGx1Zy1pbiBEQiBhbmQgaW1hZ2UgdHlwZXMgZm9yIHRoZSBIVE1MIGNhc2UgZmFp
bGVkLgorICAgICAgICAvLyBMb2FkIHRoZSBwbHVnLWluIERCIGFsbG93aW5nIHBsdWctaW5zIHRv
IGluc3RhbGwgdHlwZXMuCisgICAgICAgIFtXZWJQbHVnaW5EYXRhYmFzZSBpbnN0YWxsZWRQbHVn
aW5zXTsKKyAgICAgICAgICAgIAorICAgICAgICAvLyBMb2FkIHRoZSBpbWFnZSB0eXBlcyBhbmQg
Z2V0IHRoZSB2aWV3IGNsYXNzIGFuZCByZXAgY2xhc3MuIFRoaXMgc2hvdWxkIGJlIHRoZSBmdWxs
ZXN0IHBpY3R1cmUgb2YgYWxsIGhhbmRsZWQgdHlwZXMuCisgICAgICAgIHZpZXdDbGFzcyA9IFtb
V2ViRnJhbWVWaWV3IF92aWV3VHlwZXNBbGxvd0ltYWdlVHlwZU9taXNzaW9uOk5PXSBfd2Via2l0
X29iamVjdEZvck1JTUVUeXBlOk1JTUVUeXBlXTsKKyAgICAgICAgcmVwQ2xhc3MgPSBbW1dlYkRh
dGFTb3VyY2UgX3JlcFR5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lvbjpOT10gX3dlYmtpdF9vYmpl
Y3RGb3JNSU1FVHlwZTpNSU1FVHlwZV07CiAgICAgfQogICAgIAotICAgIC8vIExvYWQgdGhlIHBs
dWctaW4gREIgYWxsb3dpbmcgcGx1Zy1pbnMgdG8gaW5zdGFsbCB0eXBlcy4KLSAgICBbV2ViUGx1
Z2luRGF0YWJhc2UgaW5zdGFsbGVkUGx1Z2luc107Ci0gICAgICAgIAotICAgIC8vIExvYWQgdGhl
IGltYWdlIHR5cGVzIGFuZCBnZXQgdGhlIHZpZXcgY2xhc3MgYW5kIHJlcCBjbGFzcy4gVGhpcyBz
aG91bGQgYmUgdGhlIGZ1bGxlc3QgcGljdHVyZSBvZiBhbGwgaGFuZGxlZCB0eXBlcy4KLSAgICB2
aWV3Q2xhc3MgPSBbW1dlYkZyYW1lVmlldyBfdmlld1R5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lv
bjpOT10gX3dlYmtpdF9vYmplY3RGb3JNSU1FVHlwZTpNSU1FVHlwZV07Ci0gICAgcmVwQ2xhc3Mg
PSBbW1dlYkRhdGFTb3VyY2UgX3JlcFR5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lvbjpOT10gX3dl
YmtpdF9vYmplY3RGb3JNSU1FVHlwZTpNSU1FVHlwZV07CiAgICAgaWYgKHZpZXdDbGFzcyAmJiBy
ZXBDbGFzcykgewogICAgICAgICAvLyBTcGVjaWFsLWNhc2UgV2ViVGV4dFZpZXcgZm9yIHRleHQg
dHlwZXMgdGhhdCBzaG91bGRuJ3QgYmUgc2hvd24uCiAgICAgICAgIGlmICh2aWV3Q2xhc3MgPT0g
W1dlYlRleHRWaWV3IGNsYXNzXSAmJgpAQCAtNDAwLDEyICszODksMTAgQEAgc3RhdGljIGJvb2wg
ZGVidWdXaWRnZXQgPSB0cnVlOwogICAgICAgICAgICAgW1tXZWJUZXh0VmlldyB1bnN1cHBvcnRl
ZFRleHRNSU1FVHlwZXNdIGNvbnRhaW5zT2JqZWN0Ok1JTUVUeXBlXSkgewogICAgICAgICAgICAg
cmV0dXJuIE5POwogICAgICAgICB9Ci0gICAgICAgIGlmICh2Q2xhc3MpIHsKKyAgICAgICAgaWYg
KHZDbGFzcykKICAgICAgICAgICAgICp2Q2xhc3MgPSB2aWV3Q2xhc3M7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKHJDbGFzcykgeworICAgICAgICBpZiAockNsYXNzKQogICAgICAgICAgICAgKnJD
bGFzcyA9IHJlcENsYXNzOwotICAgICAgICB9CiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQog
ICAgIApAQCAtMTQ4OCw5ICsxNDc1LDggQEAgTlNNdXRhYmxlRGljdGlvbmFyeSAqY291bnRJbnZv
Y2F0aW9uczsKICAgICBOU011dGFibGVBcnJheSAqYXJyYXkgPSBbW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOwogICAgIAogICAgIHdoaWxlICgoa2V5ID0gW2VudW1l
cmF0b3IgbmV4dE9iamVjdF0pKSB7Ci0gICAgICAgIGlmIChbdmlld1R5cGVzIG9iamVjdEZvcktl
eTprZXldID09IFtXZWJIVE1MVmlldyBjbGFzc10pIHsKKyAgICAgICAgaWYgKFt2aWV3VHlwZXMg
b2JqZWN0Rm9yS2V5OmtleV0gPT0gW1dlYkhUTUxWaWV3IGNsYXNzXSkKICAgICAgICAgICAgIFth
cnJheSBhZGRPYmplY3Q6a2V5XTsKLSAgICAgICAgfQogICAgIH0KICAgICAKICAgICByZXR1cm4g
YXJyYXk7CkBAIC0xNDk4LDE1ICsxNDg0LDEyIEBAIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNvdW50
SW52b2NhdGlvbnM7CiAKICsgKHZvaWQpc2V0TUlNRVR5cGVzU2hvd25Bc0hUTUw6KE5TQXJyYXkg
KilNSU1FVHlwZXMKIHsKLSAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3I7Ci0gICAgaWQga2V5
OwotICAgIAogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnZpZXdUeXBlcyA9IFtXZWJGcmFtZVZp
ZXcgX3ZpZXdUeXBlc0FsbG93SW1hZ2VUeXBlT21pc3Npb246WUVTXTsKLSAgICBlbnVtZXJhdG9y
ID0gW3ZpZXdUeXBlcyBrZXlFbnVtZXJhdG9yXTsKKyAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0
b3IgPSBbdmlld1R5cGVzIGtleUVudW1lcmF0b3JdOworICAgIGlkIGtleTsKICAgICB3aGlsZSAo
KGtleSA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSkgewotICAgICAgICBpZiAoW3ZpZXdUeXBl
cyBvYmplY3RGb3JLZXk6a2V5XSA9PSBbV2ViSFRNTFZpZXcgY2xhc3NdKSB7CisgICAgICAgIGlm
IChbdmlld1R5cGVzIG9iamVjdEZvcktleTprZXldID09IFtXZWJIVE1MVmlldyBjbGFzc10pCiAg
ICAgICAgICAgICBbV2ViVmlldyBfdW5yZWdpc3RlclZpZXdDbGFzc0FuZFJlcHJlc2VudGF0aW9u
Q2xhc3NGb3JNSU1FVHlwZTprZXldOwotICAgICAgICB9CiAgICAgfQogICAgIAogICAgIGludCBp
LCBjb3VudCA9IFtNSU1FVHlwZXMgY291bnRdOwo=
</data>
<flag name="review"
          id="595"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3962</attachid>
            <date>2005-09-20 01:04:31 -0700</date>
            <delta_ts>2005-09-20 01:18:17 -0700</delta_ts>
            <desc>Updated WebCore patch</desc>
            <filename>webcore.patch</filename>
            <type>text/plain</type>
            <size>1575</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmVCcmlkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvV2ViQ29yZUJyaWRnZS5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM0NgpkaWZm
IC1wIC11IC1yMS4zNDYgV2ViQ29yZUJyaWRnZS5oCi0tLSBXZWJDb3JlQnJpZGdlLmgJMTUgU2Vw
IDIwMDUgMDE6MjU6NTQgLTAwMDAJMS4zNDYKKysrIFdlYkNvcmVCcmlkZ2UuaAkyMCBTZXAgMjAw
NSAwODowNzowMyAtMDAwMApAQCAtMTkzLDYgKzE5Myw4IEBAIHR5cGVkZWYgZW51bQogCiArIChX
ZWJDb3JlQnJpZGdlICopYnJpZGdlRm9yRE9NRG9jdW1lbnQ6KERPTURvY3VtZW50ICopZG9jdW1l
bnQ7CiAKKysgKE5TQXJyYXkgKilzdXBwb3J0ZWRNSU1FVHlwZXM7CisKIC0gKHZvaWQpaW5pdGlh
bGl6ZVNldHRpbmdzOihXZWJDb3JlU2V0dGluZ3MgKilzZXR0aW5nczsKIAogLSAodm9pZClzZXRS
ZW5kZXJQYXJ0OihLSFRNTFJlbmRlclBhcnQgKilyZW5kZXJQYXJ0OwpJbmRleDogV2ViQ29yZUJy
aWRnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29y
ZUJyaWRnZS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MTQKZGlmZiAtcCAtdSAtcjEuNDE0
IFdlYkNvcmVCcmlkZ2UubW0KLS0tIFdlYkNvcmVCcmlkZ2UubW0JMTYgU2VwIDIwMDUgMjI6NDI6
MjQgLTAwMDAJMS40MTQKKysrIFdlYkNvcmVCcmlkZ2UubW0JMjAgU2VwIDIwMDUgMDg6MDc6MDUg
LTAwMDAKQEAgLTIyMCw2ICsyMjAsMjQgQEAgc3RhdGljIEJPT0wgaGFzQ2FzZUluc2Vuc2l0aXZl
UHJlZml4KE5TUwogc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRPYmplY3RDYWNoZVNpemUgPSBGQUxT
RTsKIHN0YXRpYyBib29sIGluaXRpYWxpemVkS0pTID0gRkFMU0U7CiAKKysgKE5TQXJyYXkgKilz
dXBwb3J0ZWRNSU1FVHlwZXMKK3sKKyAgICByZXR1cm4gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0
czoKKyAgICAgICAgQCJ0ZXh0L2h0bWwiLAorICAgICAgICBAInRleHQveG1sIiwKKyAgICAgICAg
QCJ0ZXh0L3hzbCIsCisgICAgICAgIEAiYXBwbGljYXRpb24veG1sIiwKKyAgICAgICAgQCJhcHBs
aWNhdGlvbi94aHRtbCt4bWwiLAorICAgICAgICBAImFwcGxpY2F0aW9uL3Jzcyt4bWwiLAorICAg
ICAgICBAImFwcGxpY2F0aW9uL2F0b20reG1sIiwKKyAgICAgICAgQCJhcHBsaWNhdGlvbi94LXdl
YmFyY2hpdmUiLAorICAgICAgICBAIm11bHRpcGFydC94LW1peGVkLXJlcGxhY2UiLAorI2lmIFNW
R19TVVBQT1JUCisgICAgICAgIEAiaW1hZ2Uvc3ZnK3htbCIsCisjZW5kaWYKKyAgICAgICAgbmls
XTsKK30KKwogKyAoV2ViQ29yZUJyaWRnZSAqKWJyaWRnZUZvckRPTURvY3VtZW50OihET01Eb2N1
bWVudCAqKWRvY3VtZW50CiB7CiAgICAgcmV0dXJuICgoS1dRS0hUTUxQYXJ0ICopW2RvY3VtZW50
IF9kb2N1bWVudEltcGxdLT5wYXJ0KCkpLT5icmlkZ2UoKTsK
</data>
<flag name="review"
          id="596"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>