<?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>32236</bug_id>
          
          <creation_ts>2009-12-07 12:54:43 -0800</creation_ts>
          <short_desc>wx port lacks plugin support on Mac</short_desc>
          <delta_ts>2009-12-08 16:54:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit wx</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kevin Watters">kevinwatters</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kevino</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>169431</commentid>
    <comment_count>0</comment_count>
      <attachid>44425</attachid>
    <who name="Kevin Watters">kevinwatters</who>
    <bug_when>2009-12-07 12:54:43 -0800</bug_when>
    <thetext>Created attachment 44425
add support for plugins on wxMac

The Mac wx port needs several small fixes to support plugins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169432</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-07 12:55:05 -0800</bug_when>
    <thetext>Attachment 44425 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/cf/BinaryPropertyList.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/platform/FileSystem.h:48:  &quot;CoreFoundation/CFBundle.h&quot; already included at WebCore/platform/FileSystem.h:43  [build/include] [4]
WebCore/plugins/wx/PluginDataWx.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/plugins/wx/PluginDataWx.cpp:39:  Declaration has space between type name and * in PluginDatabase *db  [whitespace/declaration] [3]
WebCore/platform/wx/FileSystemWx.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/platform/wx/FileSystemWx.cpp:145:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebCore/platform/wx/FileSystemWx.cpp:186:  Extra space before )  [whitespace/parens] [2]
WebCore/plugins/mac/PluginViewMac.cpp:207:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebCore/plugins/mac/PluginViewMac.cpp:747:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/plugins/mac/PluginViewMac.cpp:749:  Extra space after ( in function call  [whitespace/parens] [4]
WebCore/plugins/mac/PluginViewMac.cpp:749:  Extra space before )  [whitespace/parens] [2]
WebCore/plugins/mac/PluginViewMac.cpp:749:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/plugins/mac/PluginViewMac.cpp:750:  Extra space after ( in function call  [whitespace/parens] [4]
WebCore/plugins/mac/PluginViewMac.cpp:750:  Extra space before )  [whitespace/parens] [2]
WebCore/plugins/mac/PluginViewMac.cpp:750:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/plugins/mac/PluginViewMac.cpp:752:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
Total errors found: 16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169679</commentid>
    <comment_count>2</comment_count>
      <attachid>44472</attachid>
    <who name="Kevin Watters">kevinwatters</who>
    <bug_when>2009-12-08 08:09:24 -0800</bug_when>
    <thetext>Created attachment 44472
fixes style issues

Including wx/wx.h first fails the style checker, but is correct based on wx port conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169681</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-08 08:13:47 -0800</bug_when>
    <thetext>Attachment 44472 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/wx/FileSystemWx.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169840</commentid>
    <comment_count>4</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2009-12-08 16:54:15 -0800</bug_when>
    <thetext>Landed in r51880, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44425</attachid>
            <date>2009-12-07 12:54:43 -0800</date>
            <delta_ts>2009-12-08 08:09:24 -0800</delta_ts>
            <desc>add support for plugins on wxMac</desc>
            <filename>plugins_mac.patch</filename>
            <type>text/plain</type>
            <size>19736</size>
            <attacher name="Kevin Watters">kevinwatters</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA1MTc0NSkKKysrIEphdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDQsNyArNTQ0LDEwIEBACiAK
ICNpZiBQTEFURk9STShXWCkKICNkZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCisjaWYgUExBVEZP
Uk0oREFSV0lOKQorI2RlZmluZSBXVEZfUExBVEZPUk1fQ0YgMQogI2VuZGlmCisjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKEdUSykKICNpZiBIQVZFKFBUSFJFQURfSCkKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDUxNzg5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTEgQEAKKzIwMDktMTItMDcgIEtldmluIFdhdHRlcnMgIDxrZXZpbndhdHRl
cnNAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFt3eF0gTWFjIHBsdWdpbnMgc3VwcG9ydC4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bS5oOgorCiAyMDA5LTEyLTA3ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQnVpbGQgZml4LiBCZSBmbGV4aWJsZSBhYm91dCB3aGljaCB2ZXJzaW9uIG9m
IElDVSBpcyB1c2VkIG9uIFdpbmRvd3MuCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAkocmV2aXNpb24gNTE3NDUpCisrKyBXZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzcsOSArMzcsOSBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKKyNpbmNsdWRlICJQbHVnaW5W
aWV3LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1l
T3duZXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTFBsdWdpbkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgpAQCAtODUzLDcgKzg1Myw3IEBACiAKIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFt
ZUxvYWRlckNsaWVudFd4OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTFBs
dWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBsb2FkTWFudWFsbHkpCiB7Ci0jaWYgUExBVEZPUk0oV0lO
X09TKQorI2lmIF9fV1hNU1dfXyB8fCBfX1dYTUFDX18KICAgICBSZWZQdHI8UGx1Z2luVmlldz4g
cHYgPSBQbHVnaW5WaWV3OjpjcmVhdGUobV9mcmFtZSwgc2l6ZSwgZWxlbWVudCwgdXJsLCBwYXJh
bU5hbWVzLCBwYXJhbVZhbHVlcywgbWltZVR5cGUsIGxvYWRNYW51YWxseSk7CiAgICAgaWYgKHB2
LT5zdGF0dXMoKSA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpCiAgICAgICAgIHJl
dHVybiBwdjsKQEAgLTg2Myw5ICs4NjMsOSBAQAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6
OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewotICAgICBBU1NF
UlQoIW1fcGx1Z2luVmlldyk7Ci0gICAgIG1fcGx1Z2luVmlldyA9IHN0YXRpY19jYXN0PFBsdWdp
blZpZXcqPihwbHVnaW5XaWRnZXQpOwotICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0g
ZmFsc2U7CisgICAgQVNTRVJUKCFtX3BsdWdpblZpZXcpOworICAgIG1fcGx1Z2luVmlldyA9IHN0
YXRpY19jYXN0PFBsdWdpblZpZXcqPihwbHVnaW5XaWRnZXQpOworICAgIG1faGFzU2VudFJlc3Bv
bnNlVG9QbHVnaW4gPSBmYWxzZTsKIH0KIAogUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNsaWVu
dFd4OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQpJbmRleDogV2ViS2l0L3d4L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
d3gvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MTc4OSkKKysrIFdlYktpdC93eC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0xMi0wNyAgS2V2aW4gV2F0dGVycyAg
PGtldmlud2F0dGVyc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW3d4XSBNYWMgcGx1Z2lucyBzdXBwb3J0LgorCisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50V3g6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudFd4OjpyZWRpcmVjdERhdGFUb1BsdWdpbik6CisgICAgICAgICogV2Vi
Vmlldy5jcHA6CisgICAgICAgICh3eFdlYlZpZXc6OkNyZWF0ZSk6CisKIDIwMDktMTItMDMgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNh
bSBXZWluaWcuCkluZGV4OiBXZWJLaXQvd3gvV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L3d4L1dlYlZpZXcuY3BwCShyZXZpc2lvbiA1MTc0NSkKKysrIFdlYktpdC93eC9XZWJWaWV3
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM4LDcgKzMzOCw3IEBACiAgICAgc2V0dGluZ3MtPnNl
dERhdGFiYXNlc0VuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKIAotI2lmIF9fV1hNU1dfXworI2lmIF9f
V1hNU1dfXyB8fCBfX1dYTUFDX18KICAgICBzZXR0aW5ncy0+c2V0UGx1Z2luc0VuYWJsZWQodHJ1
ZSk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbHVnaW5zL3d4L1BsdWdpbkRhdGFXeC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL3d4L1BsdWdpbkRhdGFXeC5jcHAJKHJldmlz
aW9uIDApCisrKyBXZWJDb3JlL3BsdWdpbnMvd3gvUGx1Z2luRGF0YVd4LmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLZXZpbiBPbGxp
dmllciA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKKworI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNl
LmgiCisjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFBsdWdpbkRhdGE6OmluaXRQbHVn
aW5zKCkKK3sKKyAgICBQbHVnaW5EYXRhYmFzZSAqZGIgPSBQbHVnaW5EYXRhYmFzZTo6aW5zdGFs
bGVkUGx1Z2lucygpOworICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5QYWNrYWdlKj4gJnBsdWdpbnMg
PSBkYi0+cGx1Z2lucygpOworCisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwbHVn
aW5zLnNpemUoKTsgKytpKSB7CisgICAgICAgIFBsdWdpbkluZm8qIGluZm8gPSBuZXcgUGx1Z2lu
SW5mbzsKKyAgICAgICAgUGx1Z2luUGFja2FnZSogcGFja2FnZSA9IHBsdWdpbnNbaV07CisKKyAg
ICAgICAgaW5mby0+bmFtZSA9IHBhY2thZ2UtPm5hbWUoKTsKKyAgICAgICAgaW5mby0+ZmlsZSA9
IHBhY2thZ2UtPmZpbGVOYW1lKCk7CisgICAgICAgIGluZm8tPmRlc2MgPSBwYWNrYWdlLT5kZXNj
cmlwdGlvbigpOworCisgICAgICAgIGNvbnN0IE1JTUVUb0Rlc2NyaXB0aW9uc01hcCYgbWltZVRv
RGVzY3JpcHRpb25zID0gcGFja2FnZS0+bWltZVRvRGVzY3JpcHRpb25zKCk7CisgICAgICAgIE1J
TUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWltZVRvRGVzY3JpcHRp
b25zLmVuZCgpOworICAgICAgICBmb3IgKE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtaW1lVG9EZXNjcmlwdGlvbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgICAgICAgICBNaW1lQ2xhc3NJbmZvKiBtaW1lID0gbmV3IE1pbWVDbGFzc0luZm87Cisg
ICAgICAgICAgICBpbmZvLT5taW1lcy5hcHBlbmQobWltZSk7CisKKyAgICAgICAgICAgIG1pbWUt
PnR5cGUgPSBpdC0+Zmlyc3Q7CisgICAgICAgICAgICBtaW1lLT5kZXNjID0gaXQtPnNlY29uZDsK
KyAgICAgICAgICAgIG1pbWUtPnBsdWdpbiA9IGluZm87CisKKyAgICAgICAgICAgIFZlY3RvcjxT
dHJpbmc+IGV4dGVuc2lvbnMgPSBwYWNrYWdlLT5taW1lVG9FeHRlbnNpb25zKCkuZ2V0KG1pbWUt
PnR5cGUpOworCisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXh0ZW5zaW9u
cy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCkKKyAgICAgICAgICAg
ICAgICAgICAgbWltZS0+c3VmZml4ZXMgKz0gIiwiOworCisgICAgICAgICAgICAgICAgbWltZS0+
c3VmZml4ZXMgKz0gZXh0ZW5zaW9uc1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIG1fcGx1Z2lucy5hcHBlbmQoaW5mbyk7CisgICAgfQorfQorCit2b2lkIFBsdWdpbkRh
dGE6OnJlZnJlc2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK307CkluZGV4OiBX
ZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAJKHJldmlzaW9uIDUxNzQ1KQorKysgV2Vi
Q29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcs
NiArODcsMTEgQEAKIFFUX0VORF9OQU1FU1BBQ0UKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1gp
CisjaW5jbHVkZSA8d3gvZGVmcy5oPgorI2luY2x1ZGUgPHd4L3d4Lmg+CisjZW5kaWYKKwogdXNp
bmcgc3RkOjptaW47CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xMDMsNiArMTA4LDEwIEBA
CiAgICAgaWYgKHdpZGdldCkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdpbmRvd1JlZj4o
cXRfbWFjX3dpbmRvd19mb3Iod2lkZ2V0KSk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXWCkKKyAg
ICBpZiAod2lkZ2V0KQorICAgICAgICByZXR1cm4gKFdpbmRvd1JlZil3aWRnZXQtPk1hY0dldFRv
cExldmVsV2luZG93UmVmKCk7CisjZW5kaWYKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTEyLDYg
KzEyMSwxMCBAQAogICAgIGlmICh3aWRnZXQpCiAgICAgICAgIHJldHVybiAoQ0dDb250ZXh0UmVm
KXdpZGdldC0+bWFjQ0dIYW5kbGUoKTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdYKQorICAgIGlm
ICh3aWRnZXQpCisgICAgICAgIHJldHVybiAoQ0dDb250ZXh0UmVmKXdpZGdldC0+TWFjR2V0Q0dD
b250ZXh0UmVmKCk7CisjZW5kaWYKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTIzLDYgKzEzNiwx
MiBAQAogICAgICAgICByZXR1cm4gd2lkZ2V0LT5tYXBUbyh0b3BMZXZlbCwgUVBvaW50KDAsIDAp
KSArIHRvcExldmVsLT5nZW9tZXRyeSgpLnRvcExlZnQoKSAtIHRvcExldmVsLT5wb3MoKTsKICAg
ICB9CiAjZW5kaWYKKyNpZiBQTEFURk9STShXWCkKKyAgICBpZiAod2lkZ2V0KSB7CisgICAgICAg
IFBsYXRmb3JtV2lkZ2V0IHRvcGxldmVsID0gd3hHZXRUb3BMZXZlbFBhcmVudCh3aWRnZXQpOwor
ICAgICAgICByZXR1cm4gdG9wbGV2ZWwtPlNjcmVlblRvQ2xpZW50KHdpZGdldC0+R2V0U2NyZWVu
UG9zaXRpb24oKSk7CisgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIEludFBvaW50KCk7CiB9CiAK
QEAgLTE4Miw2ICsyMDEsMTEgQEAKICAgICAgICAgICAgIHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0
KHdpZGdldCk7CiAgICAgfQogI2VuZGlmCisjaWYgUExBVEZPUk0oV1gpCisgICAgaWYgKHd4V2lu
ZG93KiB3aWRnZXQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZv
cm1QYWdlQ2xpZW50KCkpIHsKKyAgICAgICAgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQod2lkZ2V0
KTsKKyAgICB9CisjZW5kaWYKIAogICAgIC8vIENyZWF0ZSBhIGZha2Ugd2luZG93IHJlbGF0aXZl
IHRvIHdoaWNoIGFsbCBldmVudHMgd2lsbCBiZSBzZW50IHdoZW4gdXNpbmcgb2Zmc2NyZWVuIHJl
bmRlcmluZwogICAgIGlmICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgewpAQCAtMzM2LDcgKzM2
MCwxMSBAQAogICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0Rm9jdXMoKSIpOwogCiAg
ICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCisjaWYgUExBVEZPUk0oUVQpCiAgICAgICAg
cGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+c2V0Rm9jdXMoUXQ6Ok90aGVyRm9jdXNSZWFzb24pOwor
I2Vsc2UKKyAgICAgICAgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+U2V0Rm9jdXMoKTsKKyNlbmRp
ZgogICAgZWxzZQogICAgICAgIFdpZGdldDo6c2V0Rm9jdXMoKTsKIApAQCAtNTEzLDcgKzU0MSwx
MSBAQAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0
KQogewogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQorI2lmIFBMQVRGT1JNKFFUKQog
ICAgICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT51cGRhdGUoY29udmVydFRvQ29udGFpbmlu
Z1dpbmRvdyhyZWN0KSk7CisjZWxzZQorICAgICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT5S
ZWZyZXNoUmVjdChjb252ZXJ0VG9Db250YWluaW5nV2luZG93KHJlY3QpKTsKKyNlbmRpZgogICAg
IGVsc2UKICAgICAgICAgaW52YWxpZGF0ZVdpbmRvd2xlc3NQbHVnaW5SZWN0KHJlY3QpOwogfQpA
QCAtNjU3LDggKzY4OSwxMCBAQAogCiAgICAgTE9HKFBsdWdpbnMsICJQVjo6aEtFKCk6IHJlY29y
ZC5tb2RpZmllcnM6ICVkIiwgcmVjb3JkLm1vZGlmaWVycyk7CiAKKyNpZiBQTEFURk9STShRVCkK
ICAgICBMT0coUGx1Z2lucywgIlBWOjpoS0UoKTogUEtFLnF0RXZlbnQoKS0+bmF0aXZlVmlydHVh
bEtleTogMHglMDJYLCBjaGFyQ29kZTogJWQiLAogICAgICAgICAgICAgICAga2V5Q29kZSwgaW50
KHVjaGFyKGNoYXJDb2Rlc1swXSkpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFkaXNwYXRjaE5QRXZl
bnQocmVjb3JkKSkKICAgICAgICAgTE9HKEV2ZW50cywgIlBsdWdpblZpZXc6OmhhbmRsZUtleWJv
YXJkRXZlbnQoKTogS2V5Ym9hcmQgZXZlbnQgdHlwZSAlZCBub3QgYWNjZXB0ZWQiLCByZWNvcmQu
d2hhdCk7CkBAIC03MDcsNiArNzQxLDE4IEBACiAgICAgcG9zLmggPSBzaG9ydChwb3MuaCAqIHNj
YWxlRmFjdG9yKTsKICAgICBwb3MudiA9IHNob3J0KHBvcy52ICogc2NhbGVGYWN0b3IpOwogCisj
aWYgUExBVEZPUk0oV1gpCisgICAgLy8gbWFrZSBzdXJlIHRoZSB0aXRsZWJhci90b29sYmFyIHNp
emUgaXMgaW5jbHVkZWQKKyAgICBXaW5kb3dSZWYgd2luZG93UmVmID0gbmF0aXZlV2luZG93Rm9y
KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOworICAgIDo6UmVjdCBjb250ZW50LCBzdHJ1Y3R1cmUg
OworCisgICAgR2V0V2luZG93Qm91bmRzKCB3aW5kb3dSZWYsIGtXaW5kb3dTdHJ1Y3R1cmVSZ24g
LCAmc3RydWN0dXJlICkgOworICAgIEdldFdpbmRvd0JvdW5kcyggd2luZG93UmVmLCBrV2luZG93
Q29udGVudFJnbiAsICZjb250ZW50ICkgOworCisgICAgaW50IHRvcCA9IGNvbnRlbnQudG9wICAt
IHN0cnVjdHVyZS50b3AgOworICAgIHBvcy52IC09IHRvcDsKKyNlbmRpZgorCiAgICAgcmV0dXJu
IHBvczsKIH0KIApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxNzg5KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzMyBAQAorMjAwOS0xMi0wNyAgS2V2aW4gV2F0dGVycyAgPGtl
dmlud2F0dGVyc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW3d4XSBNYWMgcGx1Z2lucyBzdXBwb3J0LgorCisgICAgICAgICogcGxh
dGZvcm0vRmlsZVN5c3RlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL2NmL0JpbmFyeVByb3BlcnR5
TGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3d4L0ZpbGVTeXN0ZW1XeC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxlRXhpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OnVubG9hZE1vZHVs
ZSk6CisgICAgICAgIChXZWJDb3JlOjp3eERpclRyYXZlcnNlck5vblJlY3Vyc2l2ZTo6d3hEaXJU
cmF2ZXJzZXJOb25SZWN1cnNpdmUpOgorICAgICAgICAoV2ViQ29yZTo6d3hEaXJUcmF2ZXJzZXJO
b25SZWN1cnNpdmU6Ok9uRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjp3eERpclRyYXZlcnNlck5v
blJlY3Vyc2l2ZTo6T25EaXIpOgorICAgICAgICAoV2ViQ29yZTo6bGlzdERpcmVjdG9yeSk6Cisg
ICAgICAgICogcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpuYXRpdmVXaW5kb3dGb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y2dIYW5kbGVGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6dG9wTGV2ZWxPZmZzZXRGb3IpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpz
ZXRGb2N1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6Omdsb2JhbE1vdXNlUG9zRm9yUGx1Z2luKToKKyAg
ICAgICAgKiBwbHVnaW5zL3d4L1BsdWdpbkRhdGFXeC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luRGF0YTo6aW5pdFBsdWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
RGF0YTo6cmVmcmVzaCk6CisgICAgICAgICogd3NjcmlwdDoKKwogMjAwOS0xMi0wNyAgU2hpa2kg
T2thc2FrYSAgPHNoaWtpQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBT
Y2h1bHplLgpJbmRleDogV2ViQ29yZS93c2NyaXB0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd3Nj
cmlwdAkocmV2aXNpb24gNTE3NDUpCisrKyBXZWJDb3JlL3dzY3JpcHQJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDExICszMCw2IEBACiB3ZWJjb3JlX3NvdXJjZXMgPSB7fQogCiBpZiBidWlsZF9wb3J0
ID09ICJ3eCI6Ci0gICAgbm9fcGx1Z2lucyA9IFsgICAgICAncGx1Z2lucy9QbHVnaW5EYXRhTm9u
ZS5jcHAnLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3BsdWdpbnMvUGx1Z2luVmlld05vbmUu
Y3BwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICdwbHVnaW5zL1BsdWdpblBhY2thZ2VOb25l
LmNwcCcKLSAgICAgICAgICAgICAgICAgXQotICAgIAogICAgIGlmIGJ1aWxkaW5nX29uX3dpbjMy
OgogICAgICAgICB3ZWJjb3JlX2RpcnMuZXh0ZW5kKFsncGxhdGZvcm0vd3gvd3hjb2RlL3dpbics
ICdwbHVnaW5zL3dpbiddKQogICAgICAgICB3ZWJjb3JlX3NvdXJjZXNbJ3d4LXdpbiddID0gWwpA
QCAtNTEsMTUgKzQ2LDI1IEBACiAgICAgICAgICAgICAgICAncGx1Z2lucy93aW4vUGx1Z2luVmll
d1dpbi5jcHAnLAogICAgICAgICBdCiAgICAgZWxpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgn
ZGFyd2luJyk6CisgICAgICAgIHdlYmNvcmVfZGlycy5hcHBlbmQoJ3BsdWdpbnMvbWFjJykKICAg
ICAgICAgd2ViY29yZV9kaXJzLmFwcGVuZCgncGxhdGZvcm0vd3gvd3hjb2RlL21hYy9jYXJib24n
KQorICAgICAgICB3ZWJjb3JlX2RpcnMuYXBwZW5kKCdwbGF0Zm9ybS9tYWMnKQogICAgICAgICB3
ZWJjb3JlX3NvdXJjZXNbJ3d4LW1hYyddID0gWworICAgICAgICAgICAgICAgJ3BsYXRmb3JtL21h
Yy9XZWJDb3JlTlNTdHJpbmdFeHRyYXMubW0nLAogICAgICAgICAgICAgICAgJ3BsYXRmb3JtL21h
Yy9QdXJnZWFibGVCdWZmZXJNYWMuY3BwJywKKyAgICAgICAgICAgICAgICdwbHVnaW5zL3d4L1Bs
dWdpbkRhdGFXeC5jcHAnLAorICAgICAgICAgICAgICAgJ3BsdWdpbnMvbWFjL1BsdWdpblBhY2th
Z2VNYWMuY3BwJywKKyAgICAgICAgICAgICAgICdwbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNw
cCcKICAgICAgICAgXQotICAgICAgICB3ZWJjb3JlX3NvdXJjZXNbJ3BsdWdpbnMnXSA9IG5vX3Bs
dWdpbnMKICAgICBlbHNlOgorICAgICAgICB3ZWJjb3JlX3NvdXJjZXNbJ3d4LWd0ayddID0gWwor
ICAgICAgICAgICAgICAgJ3BsdWdpbnMvUGx1Z2luRGF0YU5vbmUuY3BwJywKKyAgICAgICAgICAg
ICAgICdwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcCcsCisgICAgICAgICAgICAgICAncGx1Z2lu
cy9QbHVnaW5QYWNrYWdlTm9uZS5jcHAnCisgICAgICAgIF0KICAgICAgICAgd2ViY29yZV9kaXJz
LmFwcGVuZCgncGxhdGZvcm0vd3gvd3hjb2RlL2d0aycpCi0gICAgICAgIHdlYmNvcmVfc291cmNl
c1sncGx1Z2lucyddID0gbm9fcGx1Z2lucwogICAgICAgICAKK2ltcG9ydCBUYXNrR2VuCiBmcm9t
IFRhc2tHZW4gaW1wb3J0IHRhc2tnZW4sIGZlYXR1cmUsIGFmdGVyCiBpbXBvcnQgVGFzaywgY2Ny
b290CiAKQEAgLTg3LDcgKzkyLDkgQEAKIAogZGVmIGJ1aWxkKGJsZCk6CiAgICAgaW1wb3J0IE9w
dGlvbnMKLQorICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdkYXJ3aW4nKToKKyAgICAg
ICAgVGFza0dlbi50YXNrX2dlbi5tYXBwaW5nc1snLm1tJ10gPSBUYXNrR2VuLnRhc2tfZ2VuLm1h
cHBpbmdzWycuY3h4J10KKyAgICAKICAgICB3a19pbmNsdWRlcyA9IFsnLicsICcuLicsICdEZXJp
dmVkU291cmNlcycsCiAgICAgICAgICAgICAgICAgd2tfcm9vdCwgCiAgICAgICAgICAgICAgICAg
b3MucGF0aC5qb2luKHdrX3Jvb3QsICdKYXZhU2NyaXB0Q29yZScpLApAQCAtOTgsOCArMTA1LDE0
IEBACiAgICAgICAgIF0KIAogICAgIGZlYXR1cmVzID0gW2J1aWxkX3BvcnRdCisgICAgZXhjbHVk
ZV9wYXR0ZXJucyA9IFsnKk5vbmUuY3BwJywgJypDRk5ldC5jcHAnLCAnKlF0LmNwcCcsICcqV2lu
LmNwcCcsICcqV2luY2UuY3BwJywgJypHdGsuY3BwJywgJypNYWMuY3BwJywgJypTYWZhcmkuY3Bw
JywgJypDaHJvbWl1bSouY3BwJywnKlNWRyouY3BwJywgJypBbGxJbk9uZS5jcHAnLCAndGVzdCpi
aW5kaW5ncy4qJ10KICAgICBpZiBidWlsZF9wb3J0ID09ICd3eCc6CiAgICAgICAgIGZlYXR1cmVz
LmFwcGVuZCgnY3VybCcpCisgICAgICAgIAorICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRo
KCdkYXJ3aW4nKToKKyAgICAgICAgZmVhdHVyZXMuYXBwZW5kKCdjZicpCisgICAgZWxzZToKKyAg
ICAgICAgZXhjbHVkZV9wYXR0ZXJucy5hcHBlbmQoJypDRi5jcHAnKQogCiAgICAgZnVsbF9kaXJz
ID0gZ2V0X2RpcnNfZm9yX2ZlYXR1cmVzKHdlYmNvcmVfZGlyLCBmZWF0dXJlcz1mZWF0dXJlcywg
ZGlycz13ZWJjb3JlX2RpcnMpCiAKQEAgLTEyOSw4ICsxNDIsOSBAQAogICAgICAgICApCiAgICAg
ICAgIAogICAgIGV4Y2x1ZGVzID0gW10KKyAgICAKICAgICBpZiBidWlsZF9wb3J0ID09ICd3eCc6
Ci0gICAgICAgIGV4Y2x1ZGVzID0gZ2V0X2V4Y2x1ZGVzKHdlYmNvcmVfZGlyLCBbJypOb25lLmNw
cCcsICcqQ0YuY3BwJywgJypRdC5jcHAnLCAnKldpbi5jcHAnLCAnKldpbmNlLmNwcCcsICcqR3Rr
LmNwcCcsICcqTWFjLmNwcCcsICcqU2FmYXJpLmNwcCcsICcqQ2hyb21pdW0qLmNwcCcsJypTVkcq
LmNwcCcsICcqQWxsSW5PbmUuY3BwJywgJ3Rlc3QqYmluZGluZ3MuKiddKQorICAgICAgICBleGNs
dWRlcyA9IGdldF9leGNsdWRlcyh3ZWJjb3JlX2RpciwgZXhjbHVkZV9wYXR0ZXJucykKICAgICAg
ICAgZXhjbHVkZXMuZXh0ZW5kKFsnVXNlclN0eWxlU2hlZXRMb2FkZXIuY3BwJywgJ1JlbmRlck1l
ZGlhQ29udHJvbHMuY3BwJ10pCiAKIApAQCAtMTUxLDUgKzE2NSw4IEBACiAgICAgICAgIGV4Y2x1
ZGVzLmFwcGVuZCgnSlNJbnNwZWN0b3JDb250cm9sbGVyLmNwcCcpCiAgICAgICAgIGlmIGJ1aWxk
aW5nX29uX3dpbjMyOgogICAgICAgICAgICAgZXhjbHVkZXMuYXBwZW5kKCdTaGFyZWRUaW1lcld4
LmNwcCcpCisgICAgICAgICAgICAKKyAgICAgICAgZXhjbHVkZXMuYXBwZW5kKCdBdXRoZW50aWNh
dGlvbkNGLmNwcCcpCisgICAgICAgIGV4Y2x1ZGVzLmFwcGVuZCgnTG9hZGVyUnVuTG9vcENGLmNw
cCcpCiAgICAgICAgIAogICAgIHdlYmNvcmUuZmluZF9zb3VyY2VzX2luX2RpcnMoZnVsbF9kaXJz
LCBleGNsdWRlcyA9IGV4Y2x1ZGVzLCBleHRzPVsnLmMnLCAnLmNwcCddKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9CaW5hcnlQcm9wZXJ0eUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2NmL0JpbmFyeVByb3BlcnR5TGlzdC5oCShyZXZpc2lvbiA1MTc0NSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vY2YvQmluYXJ5UHJvcGVydHlMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgQmluYXJ5UHJvcGVydHlMaXN0X2gKIAogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCShyZXZp
c2lvbiA1MTc0NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw2ICs0NCwxMCBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENG
KQorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGQnVuZGxlLmg+CisjZW5kaWYKKwogI2luY2x1
ZGUgPHRpbWUuaD4KIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgpAQCAtNzYsNiArODAsOCBA
QAogI2VuZGlmIC8vIGRlZmluZWQoUV9XU19NQUMpCiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBl
ZGVmIEdNb2R1bGUqIFBsYXRmb3JtTW9kdWxlOworI2VsaWYgUExBVEZPUk0oQ0YpCit0eXBlZGVm
IENGQnVuZGxlUmVmIFBsYXRmb3JtTW9kdWxlOwogI2Vsc2UKIHR5cGVkZWYgdm9pZCogUGxhdGZv
cm1Nb2R1bGU7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gNTE3NDUpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKyNpZiAhUExBVEZPUk0oV0lOX09TKQor
I2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2RlZmluZSBNQVhfUEFUSCBNQVhQQVRITEVOCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBpbnQgc2VsZWN0VGltZW91dE1TID0g
NTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvRmlsZVN5c3RlbVd4LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3d4L0ZpbGVTeXN0ZW1XeC5jcHAJKHJldmlzaW9uIDUxNzQ1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93eC9GaWxlU3lzdGVtV3guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCwxOCArMzQsMjUgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKKyNpbmNsdWRlIDx3eC9kZWZzLmg+CiAjaW5jbHVkZSA8
d3gvd3guaD4KLSNpbmNsdWRlIDx3eC9maWxlbmFtZS5oPgorI2luY2x1ZGUgPHd4L2RhdGV0aW1l
Lmg+CiAjaW5jbHVkZSA8d3gvZGlyLmg+CisjaW5jbHVkZSA8d3gvZHlubGliLmg+CiAjaW5jbHVk
ZSA8d3gvZmlsZS5oPgotI2luY2x1ZGUgPHd4L2RhdGV0aW1lLmg+CiAjaW5jbHVkZSA8d3gvZmls
ZWZuLmg+CisjaW5jbHVkZSA8d3gvZmlsZW5hbWUuaD4KIAorI2lmIFBMQVRGT1JNKERBUldJTikK
KyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKLSAgICByZXR1cm4gd3hGaWxlTmFtZTo6RmlsZUV4aXN0cyhwYXRoKTsKKyAgICAvLyBOT1RF
OiBUaGlzIGlzIGNhbGxlZCBmb3IgZGlyZWN0b3J5IHBhdGhzIHRvbyBzbyB3ZSBuZWVkIHRvIGNo
ZWNrIGJvdGguCisgICAgcmV0dXJuIHd4RmlsZU5hbWU6OkZpbGVFeGlzdHMocGF0aCkgfHwgd3hG
aWxlTmFtZTo6RGlyRXhpc3RzKHBhdGgpOwogfQogCiBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3Ry
aW5nJiBwYXRoKQpAQCAtMTIzLDIxICsxMzAsNjQgQEAKIHsKICNpZiBQTEFURk9STShXSU5fT1Mp
CiAgICAgcmV0dXJuIDo6RnJlZUxpYnJhcnkobW9kKTsKKyNlbGlmIFBMQVRGT1JNKERBUldJTikK
KyAgICBDRlJlbGVhc2UobW9kKTsKKyAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCi0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgd3hBU1NFUlQobW9kKTsKKyAgICBk
ZWxldGUgbW9kOworICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiB9CiAKKworY2xhc3Mgd3hEaXJU
cmF2ZXJzZXJOb25SZWN1cnNpdmUgOiBwdWJsaWMgd3hEaXJUcmF2ZXJzZXIKK3sKK3B1YmxpYzoK
KyAgICB3eERpclRyYXZlcnNlck5vblJlY3Vyc2l2ZSh3eFN0cmluZyBiYXNlUGF0aCwgd3hBcnJh
eVN0cmluZyYgZmlsZXMpIDogbV9iYXNlUGF0aChiYXNlUGF0aCksIG1fZmlsZXMoZmlsZXMpIHsg
fQorCisgICAgdmlydHVhbCB3eERpclRyYXZlcnNlUmVzdWx0IE9uRmlsZShjb25zdCB3eFN0cmlu
ZyYgZmlsZW5hbWUpCisgICAgeworICAgICAgICB3eEZpbGVOYW1lIGFmaWxlKGZpbGVuYW1lKTsK
KyAgICAgICAgYWZpbGUuTWFrZVJlbGF0aXZlVG8obV9iYXNlUGF0aCk7CisgICAgICAgIGlmIChh
ZmlsZS5HZXRGdWxsUGF0aCgpLkZpbmQoYWZpbGUuR2V0UGF0aFNlcGFyYXRvcigpKSA9PSB3eE5P
VF9GT1VORCkKKyAgICAgICAgICAgIG1fZmlsZXMucHVzaF9iYWNrKGZpbGVuYW1lKTsKKworICAg
ICAgICByZXR1cm4gd3hESVJfQ09OVElOVUU7CisgICAgfQorCisgICAgdmlydHVhbCB3eERpclRy
YXZlcnNlUmVzdWx0IE9uRGlyKGNvbnN0IHd4U3RyaW5nJiBkaXJuYW1lKQorICAgIHsKKyAgICAg
ICAgd3hGaWxlTmFtZSBkaXJmaWxlKGRpcm5hbWUpOworICAgICAgICBkaXJmaWxlLk1ha2VSZWxh
dGl2ZVRvKG1fYmFzZVBhdGgpOworICAgICAgICBpZiAoZGlyZmlsZS5HZXRGdWxsUGF0aCgpLkZp
bmQoZGlyZmlsZS5HZXRQYXRoU2VwYXJhdG9yKCkpID09IHd4Tk9UX0ZPVU5EKQorICAgICAgICAg
ICAgbV9maWxlcy5wdXNoX2JhY2soZGlybmFtZSk7CisKKyAgICAgICAgcmV0dXJuIHd4RElSX0NP
TlRJTlVFOworICAgIH0KKworcHJpdmF0ZToKKyAgICB3eFN0cmluZyBtX2Jhc2VQYXRoOworICAg
IHd4QXJyYXlTdHJpbmcmIG1fZmlsZXM7CisKKyAgICBERUNMQVJFX05PX0NPUFlfQ0xBU1Mod3hE
aXJUcmF2ZXJzZXJOb25SZWN1cnNpdmUpCit9OworCiBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0
b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIpCiB7CiAgICAgd3hB
cnJheVN0cmluZyAgIGZpbGVfcGF0aHM7CisgICAgLy8gd3hEaXI6OkdldEFsbEZpbGVzIHJlY3Vy
c2VzIGFuZCBmb3IgcGxhdGZvcm1zIGxpa2UgTWFjIHdoZXJlCisgICAgLy8gYSAucGx1Z2luIG9y
IC5idW5kbGUgY2FuIGJlIGEgZGlyIHd4IHdpbGwgcmVjdXJzZSBpbnRvIHRoZSBidW5kbGUKKyAg
ICAvLyBhbmQgbGlzdCB0aGUgZmlsZXMgcmF0aGVyIHRoYW4ganVzdCByZXR1cm5pbmcgdGhlIHBs
dWdpbiBuYW1lLCBzbworICAgIC8vIHdlIHdyaXRlIGEgc3BlY2lhbCB0cmF2ZXJzZXIgdGhhdCB3
b3JrcyBhcm91bmQgdGhhdCBpc3N1ZS4KKyAgICB3eERpclRyYXZlcnNlck5vblJlY3Vyc2l2ZSB0
cmF2ZXJzZXIocGF0aCwgZmlsZV9wYXRocyk7CiAgICAgCi0gICAgaW50IG5fZmlsZXMgPSB3eERp
cjo6R2V0QWxsRmlsZXMocGF0aCwgJmZpbGVfcGF0aHMsIF9UKCIiKSwgd3hESVJfRklMRVMpOwor
ICAgIHd4RGlyIGRpcihwYXRoKTsKKyAgICBkaXIuVHJhdmVyc2UodHJhdmVyc2VyLCBfVCgiIiks
IHd4RElSX0ZJTEVTIHwgd3hESVJfRElSUyApOwogCiAgICAgVmVjdG9yPFN0cmluZz4gZW50cmll
czsKICAgICAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG5fZmlsZXM7IGkrKykKKyAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGZpbGVfcGF0aHMuR2V0Q291bnQoKTsgaSsrKQogICAgIHsKICAgICAg
ICAgZW50cmllcy5hcHBlbmQoZmlsZV9wYXRoc1tpXSk7CiAgICAgfSAgIApJbmRleDogV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gNTE3ODkpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxMSBAQAorMjAwOS0xMi0wNyAgS2V2aW4gV2F0dGVycyAgPGtldmlud2F0dGVyc0Bn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW3d4XSBNYWMgcGx1Z2lucyBzdXBwb3J0LgorCisgICAgICAgICogd3gvYnJvd3Nlci93c2Ny
aXB0OgorCiAyMDA5LTEyLTA3ICBZYWFyIFNjaG5pdG1hbiAgPHlhYXJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6IFdlYktpdFRvb2xzL3d4
L2Jyb3dzZXIvd3NjcmlwdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy93eC9icm93c2VyL3dz
Y3JpcHQJKHJldmlzaW9uIDUxNzQ1KQorKysgV2ViS2l0VG9vbHMvd3gvYnJvd3Nlci93c2NyaXB0
CSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBACiAgICAgICAgIGluY2x1ZGVzID0gJyAn
LmpvaW4oaW5jbHVkZV9wYXRocyksCiAgICAgICAgIHNvdXJjZSA9ICdicm93c2VyLmNwcCcsCiAg
ICAgICAgIHRhcmdldCA9ICd3eEJyb3dzZXInLAotICAgICAgICB1c2VsaWIgPSAnV1hXRUJLSVQg
V1ggJyArIGdldF9jb25maWcoKSwKKyAgICAgICAgdXNlbGliID0gJ1dYIENVUkwgSUNVIFhTTFQg
WE1MIFdYV0VCS0lUICcgKyBnZXRfY29uZmlnKCksCiAgICAgICAgIGxpYnBhdGggPSBbb3V0cHV0
X2Rpcl0sCiAgICAgICAgIHVzZWxpYl9sb2NhbCA9ICcnLAogICAgICAgICBpbnN0YWxsX3BhdGgg
PSBvdXRwdXRfZGlyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>44472</attachid>
            <date>2009-12-08 08:09:24 -0800</date>
            <delta_ts>2009-12-08 08:34:12 -0800</delta_ts>
            <desc>fixes style issues</desc>
            <filename>plugins_mac2.patch</filename>
            <type>application/octet-stream</type>
            <size>19745</size>
            <attacher name="Kevin Watters">kevinwatters</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA1MTgyMSkKKysrIEphdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDQsNyArNTQ0LDEwIEBACiAK
ICNpZiBQTEFURk9STShXWCkKICNkZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCisjaWYgUExBVEZP
Uk0oREFSV0lOKQorI2RlZmluZSBXVEZfUExBVEZPUk1fQ0YgMQogI2VuZGlmCisjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKEdUSykKICNpZiBIQVZFKFBUSFJFQURfSCkKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDUxODI3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTEgQEAKKzIwMDktMTItMDcgIEtldmluIFdhdHRlcnMgIDxrZXZpbndhdHRl
cnNAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFt3eF0gTWFjIHBsdWdpbnMgc3VwcG9ydC4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bS5oOgorCiAyMDA5LTEyLTA3ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAJKHJldmlzaW9uIDUx
ODIxKQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDkgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5
cGVzLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCisj
aW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxQbHVnaW5FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAgLTg1Myw3ICs4NTMsNyBAQAogCiBQYXNzUmVm
UHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRXeDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNp
emUmIHNpemUsIEhUTUxQbHVnSW5FbGVtZW50KiBlbGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFy
YW1WYWx1ZXMsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KQogewot
I2lmIFBMQVRGT1JNKFdJTl9PUykKKyNpZiBfX1dYTVNXX18gfHwgX19XWE1BQ19fCiAgICAgUmVm
UHRyPFBsdWdpblZpZXc+IHB2ID0gUGx1Z2luVmlldzo6Y3JlYXRlKG1fZnJhbWUsIHNpemUsIGVs
ZW1lbnQsIHVybCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMsIG1pbWVUeXBlLCBsb2FkTWFudWFs
bHkpOwogICAgIGlmIChwdi0+c3RhdHVzKCkgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1
bGx5KQogICAgICAgICByZXR1cm4gcHY7CkBAIC04NjMsOSArODYzLDkgQEAKIAogdm9pZCBGcmFt
ZUxvYWRlckNsaWVudFd4OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdl
dCkKIHsKLSAgICAgQVNTRVJUKCFtX3BsdWdpblZpZXcpOwotICAgICBtX3BsdWdpblZpZXcgPSBz
dGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsKLSAgICAgbV9oYXNTZW50UmVz
cG9uc2VUb1BsdWdpbiA9IGZhbHNlOworICAgIEFTU0VSVCghbV9wbHVnaW5WaWV3KTsKKyAgICBt
X3BsdWdpblZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsKKyAg
ICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CiAKIFJlc291cmNlRXJyb3Ig
RnJhbWVMb2FkZXJDbGllbnRXeDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKSW5kZXg6IFdlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3d4L0NoYW5nZUxvZwkocmV2aXNpb24gNTE4MjcpCisrKyBXZWJLaXQv
d3gvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTItMDcg
IEtldmluIFdhdHRlcnMgIDxrZXZpbndhdHRlcnNAZ21haWwuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFt3eF0gTWFjIHBsdWdpbnMgc3VwcG9y
dC4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFd4OjpjcmVhdGVQbHVnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRXeDo6cmVkaXJlY3REYXRhVG9QbHVnaW4p
OgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAod3hXZWJWaWV3OjpDcmVhdGUpOgor
CiAyMDA5LTEyLTAzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViS2l0L3d4L1dlYlZpZXcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93eC9XZWJWaWV3LmNwcAkocmV2aXNpb24gNTE4MjEpCisrKyBX
ZWJLaXQvd3gvV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzOCw3ICszMzgsNyBAQAog
ICAgIHNldHRpbmdzLT5zZXREYXRhYmFzZXNFbmFibGVkKHRydWUpOwogI2VuZGlmCiAKLSNpZiBf
X1dYTVNXX18KKyNpZiBfX1dYTVNXX18gfHwgX19XWE1BQ19fCiAgICAgc2V0dGluZ3MtPnNldFBs
dWdpbnNFbmFibGVkKHRydWUpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy93eC9Q
bHVnaW5EYXRhV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy93eC9QbHVnaW5E
YXRhV3guY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbHVnaW5zL3d4L1BsdWdpbkRhdGFX
eC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggS2V2aW4gT2xsaXZpZXIgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCisKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNlLmgiCisjaW5jbHVk
ZSAiUGx1Z2luUGFja2FnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGx1Z2lu
RGF0YTo6aW5pdFBsdWdpbnMoKQoreworICAgIFBsdWdpbkRhdGFiYXNlKiBkYiA9IFBsdWdpbkRh
dGFiYXNlOjppbnN0YWxsZWRQbHVnaW5zKCk7CisgICAgY29uc3QgVmVjdG9yPFBsdWdpblBhY2th
Z2UqPiAmcGx1Z2lucyA9IGRiLT5wbHVnaW5zKCk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBsdWdpbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUGx1Z2luSW5mbyogaW5m
byA9IG5ldyBQbHVnaW5JbmZvOworICAgICAgICBQbHVnaW5QYWNrYWdlKiBwYWNrYWdlID0gcGx1
Z2luc1tpXTsKKworICAgICAgICBpbmZvLT5uYW1lID0gcGFja2FnZS0+bmFtZSgpOworICAgICAg
ICBpbmZvLT5maWxlID0gcGFja2FnZS0+ZmlsZU5hbWUoKTsKKyAgICAgICAgaW5mby0+ZGVzYyA9
IHBhY2thZ2UtPmRlc2NyaXB0aW9uKCk7CisKKyAgICAgICAgY29uc3QgTUlNRVRvRGVzY3JpcHRp
b25zTWFwJiBtaW1lVG9EZXNjcmlwdGlvbnMgPSBwYWNrYWdlLT5taW1lVG9EZXNjcmlwdGlvbnMo
KTsKKyAgICAgICAgTUlNRVRvRGVzY3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBt
aW1lVG9EZXNjcmlwdGlvbnMuZW5kKCk7CisgICAgICAgIGZvciAoTUlNRVRvRGVzY3JpcHRpb25z
TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1pbWVUb0Rlc2NyaXB0aW9ucy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKKyAgICAgICAgICAgIE1pbWVDbGFzc0luZm8qIG1pbWUgPSBuZXcgTWlt
ZUNsYXNzSW5mbzsKKyAgICAgICAgICAgIGluZm8tPm1pbWVzLmFwcGVuZChtaW1lKTsKKworICAg
ICAgICAgICAgbWltZS0+dHlwZSA9IGl0LT5maXJzdDsKKyAgICAgICAgICAgIG1pbWUtPmRlc2Mg
PSBpdC0+c2Vjb25kOworICAgICAgICAgICAgbWltZS0+cGx1Z2luID0gaW5mbzsKKworICAgICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gZXh0ZW5zaW9ucyA9IHBhY2thZ2UtPm1pbWVUb0V4dGVuc2lv
bnMoKS5nZXQobWltZS0+dHlwZSk7CisKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBleHRlbnNpb25zLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPiAw
KQorICAgICAgICAgICAgICAgICAgICBtaW1lLT5zdWZmaXhlcyArPSAiLCI7CisKKyAgICAgICAg
ICAgICAgICBtaW1lLT5zdWZmaXhlcyArPSBleHRlbnNpb25zW2ldOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgbV9wbHVnaW5zLmFwcGVuZChpbmZvKTsKKyAgICB9Cit9CisK
K3ZvaWQgUGx1Z2luRGF0YTo6cmVmcmVzaCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworfTsKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcAkocmV2aXNpb24g
NTE4MjEpCisrKyBXZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04Nyw2ICs4NywxMSBAQAogUVRfRU5EX05BTUVTUEFDRQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShXWCkKKyNpbmNsdWRlIDx3eC9kZWZzLmg+CisjaW5jbHVkZSA8d3gvd3guaD4K
KyNlbmRpZgorCiB1c2luZyBzdGQ6Om1pbjsKIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTEw
Myw2ICsxMDgsMTAgQEAKICAgICBpZiAod2lkZ2V0KQogICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8V2luZG93UmVmPihxdF9tYWNfd2luZG93X2Zvcih3aWRnZXQpKTsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKFdYKQorICAgIGlmICh3aWRnZXQpCisgICAgICAgIHJldHVybiAoV2luZG93UmVmKXdp
ZGdldC0+TWFjR2V0VG9wTGV2ZWxXaW5kb3dSZWYoKTsKKyNlbmRpZgogICAgIHJldHVybiAwOwog
fQogCkBAIC0xMTIsNiArMTIxLDEwIEBACiAgICAgaWYgKHdpZGdldCkKICAgICAgICAgcmV0dXJu
IChDR0NvbnRleHRSZWYpd2lkZ2V0LT5tYWNDR0hhbmRsZSgpOwogI2VuZGlmCisjaWYgUExBVEZP
Uk0oV1gpCisgICAgaWYgKHdpZGdldCkKKyAgICAgICAgcmV0dXJuIChDR0NvbnRleHRSZWYpd2lk
Z2V0LT5NYWNHZXRDR0NvbnRleHRSZWYoKTsKKyNlbmRpZgogICAgIHJldHVybiAwOwogfQogCkBA
IC0xMjMsNiArMTM2LDEyIEBACiAgICAgICAgIHJldHVybiB3aWRnZXQtPm1hcFRvKHRvcExldmVs
LCBRUG9pbnQoMCwgMCkpICsgdG9wTGV2ZWwtPmdlb21ldHJ5KCkudG9wTGVmdCgpIC0gdG9wTGV2
ZWwtPnBvcygpOwogICAgIH0KICNlbmRpZgorI2lmIFBMQVRGT1JNKFdYKQorICAgIGlmICh3aWRn
ZXQpIHsKKyAgICAgICAgUGxhdGZvcm1XaWRnZXQgdG9wbGV2ZWwgPSB3eEdldFRvcExldmVsUGFy
ZW50KHdpZGdldCk7CisgICAgICAgIHJldHVybiB0b3BsZXZlbC0+U2NyZWVuVG9DbGllbnQod2lk
Z2V0LT5HZXRTY3JlZW5Qb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gSW50
UG9pbnQoKTsKIH0KIApAQCAtMTgyLDYgKzIwMSwxMCBAQAogICAgICAgICAgICAgc2V0UGxhdGZv
cm1QbHVnaW5XaWRnZXQod2lkZ2V0KTsKICAgICB9CiAjZW5kaWYKKyNpZiBQTEFURk9STShXWCkK
KyAgICBpZiAod3hXaW5kb3cqIHdpZGdldCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkKKyAgICAgICAgc2V0UGxhdGZvcm1QbHVnaW5X
aWRnZXQod2lkZ2V0KTsKKyNlbmRpZgogCiAgICAgLy8gQ3JlYXRlIGEgZmFrZSB3aW5kb3cgcmVs
YXRpdmUgdG8gd2hpY2ggYWxsIGV2ZW50cyB3aWxsIGJlIHNlbnQgd2hlbiB1c2luZyBvZmZzY3Jl
ZW4gcmVuZGVyaW5nCiAgICAgaWYgKCFwbGF0Zm9ybVBsdWdpbldpZGdldCgpKSB7CkBAIC0zMzYs
NyArMzU5LDExIEBACiAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRGb2N1cygpIik7
CiAKICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkKKyNpZiBQTEFURk9STShRVCkKICAg
ICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT5zZXRGb2N1cyhRdDo6T3RoZXJGb2N1c1JlYXNv
bik7CisjZWxzZQorICAgICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT5TZXRGb2N1cygpOwor
I2VuZGlmCiAgICBlbHNlCiAgICAgICAgV2lkZ2V0OjpzZXRGb2N1cygpOwogCkBAIC01MTMsNyAr
NTQwLDExIEBACiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7CiAgICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCisjaWYgUExBVEZPUk0o
UVQpCiAgICAgICAgIHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPnVwZGF0ZShjb252ZXJ0VG9Db250
YWluaW5nV2luZG93KHJlY3QpKTsKKyNlbHNlCisgICAgICAgIHBsYXRmb3JtUGx1Z2luV2lkZ2V0
KCktPlJlZnJlc2hSZWN0KGNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3cocmVjdCkpOworI2VuZGlm
CiAgICAgZWxzZQogICAgICAgICBpbnZhbGlkYXRlV2luZG93bGVzc1BsdWdpblJlY3QocmVjdCk7
CiB9CkBAIC02NTcsOCArNjg4LDEwIEBACiAKICAgICBMT0coUGx1Z2lucywgIlBWOjpoS0UoKTog
cmVjb3JkLm1vZGlmaWVyczogJWQiLCByZWNvcmQubW9kaWZpZXJzKTsKIAorI2lmIFBMQVRGT1JN
KFFUKQogICAgIExPRyhQbHVnaW5zLCAiUFY6OmhLRSgpOiBQS0UucXRFdmVudCgpLT5uYXRpdmVW
aXJ0dWFsS2V5OiAweCUwMlgsIGNoYXJDb2RlOiAlZCIsCiAgICAgICAgICAgICAgICBrZXlDb2Rl
LCBpbnQodWNoYXIoY2hhckNvZGVzWzBdKSkpOworI2VuZGlmCiAKICAgICBpZiAoIWRpc3BhdGNo
TlBFdmVudChyZWNvcmQpKQogICAgICAgICBMT0coRXZlbnRzLCAiUGx1Z2luVmlldzo6aGFuZGxl
S2V5Ym9hcmRFdmVudCgpOiBLZXlib2FyZCBldmVudCB0eXBlICVkIG5vdCBhY2NlcHRlZCIsIHJl
Y29yZC53aGF0KTsKQEAgLTcwNyw2ICs3NDAsMTggQEAKICAgICBwb3MuaCA9IHNob3J0KHBvcy5o
ICogc2NhbGVGYWN0b3IpOwogICAgIHBvcy52ID0gc2hvcnQocG9zLnYgKiBzY2FsZUZhY3Rvcik7
CiAKKyNpZiBQTEFURk9STShXWCkKKyAgICAvLyBtYWtlIHN1cmUgdGhlIHRpdGxlYmFyL3Rvb2xi
YXIgc2l6ZSBpcyBpbmNsdWRlZAorICAgIFdpbmRvd1JlZiB3aW5kb3dSZWYgPSBuYXRpdmVXaW5k
b3dGb3IocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CisgICAgOjpSZWN0IGNvbnRlbnQsIHN0cnVj
dHVyZTsKKworICAgIEdldFdpbmRvd0JvdW5kcyh3aW5kb3dSZWYsIGtXaW5kb3dTdHJ1Y3R1cmVS
Z24sICZzdHJ1Y3R1cmUpOworICAgIEdldFdpbmRvd0JvdW5kcyh3aW5kb3dSZWYsIGtXaW5kb3dD
b250ZW50UmduLCAmY29udGVudCk7CisKKyAgICBpbnQgdG9wID0gY29udGVudC50b3AgIC0gc3Ry
dWN0dXJlLnRvcDsKKyAgICBwb3MudiAtPSB0b3A7CisjZW5kaWYKKwogICAgIHJldHVybiBwb3M7
CiB9CiAKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiA1MTgyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDktMTItMDcgIEtldmluIFdhdHRlcnMgIDxrZXZpbndh
dHRlcnNAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFt3eF0gTWFjIHBsdWdpbnMgc3VwcG9ydC4KKworICAgICAgICAqIHBsYXRmb3Jt
L0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9CaW5hcnlQcm9wZXJ0eUxpc3Qu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9GaWxlU3lzdGVtV3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjp1bmxvYWRNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6d3hEaXJUcmF2ZXJzZXJOb25SZWN1cnNpdmU6Ond4RGlyVHJhdmVy
c2VyTm9uUmVjdXJzaXZlKToKKyAgICAgICAgKFdlYkNvcmU6Ond4RGlyVHJhdmVyc2VyTm9uUmVj
dXJzaXZlOjpPbkZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6d3hEaXJUcmF2ZXJzZXJOb25SZWN1
cnNpdmU6Ok9uRGlyKToKKyAgICAgICAgKFdlYkNvcmU6Omxpc3REaXJlY3RvcnkpOgorICAgICAg
ICAqIHBsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmF0
aXZlV2luZG93Rm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNnSGFuZGxlRm9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnRvcExldmVsT2Zmc2V0Rm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0Rm9j
dXMpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpnbG9iYWxNb3VzZVBvc0ZvclBsdWdpbik6CisgICAgICAg
ICogcGx1Z2lucy93eC9QbHVnaW5EYXRhV3guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpbkRhdGE6OmluaXRQbHVnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGE6
OnJlZnJlc2gpOgorICAgICAgICAqIHdzY3JpcHQ6CisKIDIwMDktMTItMDcgIEV2YW4gTWFydGlu
ICA8ZXZhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CkluZGV4OiBXZWJDb3JlL3dzY3JpcHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93c2NyaXB0CShy
ZXZpc2lvbiA1MTgyMSkKKysrIFdlYkNvcmUvd3NjcmlwdAkod29ya2luZyBjb3B5KQpAQCAtMzAs
MTEgKzMwLDYgQEAKIHdlYmNvcmVfc291cmNlcyA9IHt9CiAKIGlmIGJ1aWxkX3BvcnQgPT0gInd4
IjoKLSAgICBub19wbHVnaW5zID0gWyAgICAgICdwbHVnaW5zL1BsdWdpbkRhdGFOb25lLmNwcCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAncGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ3BsdWdpbnMvUGx1Z2luUGFja2FnZU5vbmUuY3BwJwot
ICAgICAgICAgICAgICAgICBdCi0gICAgCiAgICAgaWYgYnVpbGRpbmdfb25fd2luMzI6CiAgICAg
ICAgIHdlYmNvcmVfZGlycy5leHRlbmQoWydwbGF0Zm9ybS93eC93eGNvZGUvd2luJywgJ3BsdWdp
bnMvd2luJ10pCiAgICAgICAgIHdlYmNvcmVfc291cmNlc1snd3gtd2luJ10gPSBbCkBAIC01MSwx
NSArNDYsMjUgQEAKICAgICAgICAgICAgICAgICdwbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNw
cCcsCiAgICAgICAgIF0KICAgICBlbGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdkYXJ3aW4n
KToKKyAgICAgICAgd2ViY29yZV9kaXJzLmFwcGVuZCgncGx1Z2lucy9tYWMnKQogICAgICAgICB3
ZWJjb3JlX2RpcnMuYXBwZW5kKCdwbGF0Zm9ybS93eC93eGNvZGUvbWFjL2NhcmJvbicpCisgICAg
ICAgIHdlYmNvcmVfZGlycy5hcHBlbmQoJ3BsYXRmb3JtL21hYycpCiAgICAgICAgIHdlYmNvcmVf
c291cmNlc1snd3gtbWFjJ10gPSBbCisgICAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1dlYkNv
cmVOU1N0cmluZ0V4dHJhcy5tbScsCiAgICAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1B1cmdl
YWJsZUJ1ZmZlck1hYy5jcHAnLAorICAgICAgICAgICAgICAgJ3BsdWdpbnMvd3gvUGx1Z2luRGF0
YVd4LmNwcCcsCisgICAgICAgICAgICAgICAncGx1Z2lucy9tYWMvUGx1Z2luUGFja2FnZU1hYy5j
cHAnLAorICAgICAgICAgICAgICAgJ3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwJwogICAg
ICAgICBdCi0gICAgICAgIHdlYmNvcmVfc291cmNlc1sncGx1Z2lucyddID0gbm9fcGx1Z2lucwog
ICAgIGVsc2U6CisgICAgICAgIHdlYmNvcmVfc291cmNlc1snd3gtZ3RrJ10gPSBbCisgICAgICAg
ICAgICAgICAncGx1Z2lucy9QbHVnaW5EYXRhTm9uZS5jcHAnLAorICAgICAgICAgICAgICAgJ3Bs
dWdpbnMvUGx1Z2luVmlld05vbmUuY3BwJywKKyAgICAgICAgICAgICAgICdwbHVnaW5zL1BsdWdp
blBhY2thZ2VOb25lLmNwcCcKKyAgICAgICAgXQogICAgICAgICB3ZWJjb3JlX2RpcnMuYXBwZW5k
KCdwbGF0Zm9ybS93eC93eGNvZGUvZ3RrJykKLSAgICAgICAgd2ViY29yZV9zb3VyY2VzWydwbHVn
aW5zJ10gPSBub19wbHVnaW5zCiAgICAgICAgIAoraW1wb3J0IFRhc2tHZW4KIGZyb20gVGFza0dl
biBpbXBvcnQgdGFza2dlbiwgZmVhdHVyZSwgYWZ0ZXIKIGltcG9ydCBUYXNrLCBjY3Jvb3QKIApA
QCAtODcsNyArOTIsOSBAQAogCiBkZWYgYnVpbGQoYmxkKToKICAgICBpbXBvcnQgT3B0aW9ucwot
CisgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2RhcndpbicpOgorICAgICAgICBUYXNr
R2VuLnRhc2tfZ2VuLm1hcHBpbmdzWycubW0nXSA9IFRhc2tHZW4udGFza19nZW4ubWFwcGluZ3Nb
Jy5jeHgnXQorICAgIAogICAgIHdrX2luY2x1ZGVzID0gWycuJywgJy4uJywgJ0Rlcml2ZWRTb3Vy
Y2VzJywKICAgICAgICAgICAgICAgICB3a19yb290LCAKICAgICAgICAgICAgICAgICBvcy5wYXRo
LmpvaW4od2tfcm9vdCwgJ0phdmFTY3JpcHRDb3JlJyksCkBAIC05OCw4ICsxMDUsMTQgQEAKICAg
ICAgICAgXQogCiAgICAgZmVhdHVyZXMgPSBbYnVpbGRfcG9ydF0KKyAgICBleGNsdWRlX3BhdHRl
cm5zID0gWycqTm9uZS5jcHAnLCAnKkNGTmV0LmNwcCcsICcqUXQuY3BwJywgJypXaW4uY3BwJywg
JypXaW5jZS5jcHAnLCAnKkd0ay5jcHAnLCAnKk1hYy5jcHAnLCAnKlNhZmFyaS5jcHAnLCAnKkNo
cm9taXVtKi5jcHAnLCcqU1ZHKi5jcHAnLCAnKkFsbEluT25lLmNwcCcsICd0ZXN0KmJpbmRpbmdz
LionXQogICAgIGlmIGJ1aWxkX3BvcnQgPT0gJ3d4JzoKICAgICAgICAgZmVhdHVyZXMuYXBwZW5k
KCdjdXJsJykKKyAgICAgICAgCisgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2Rhcndp
bicpOgorICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJ2NmJykKKyAgICBlbHNlOgorICAgICAgICBl
eGNsdWRlX3BhdHRlcm5zLmFwcGVuZCgnKkNGLmNwcCcpCiAKICAgICBmdWxsX2RpcnMgPSBnZXRf
ZGlyc19mb3JfZmVhdHVyZXMod2ViY29yZV9kaXIsIGZlYXR1cmVzPWZlYXR1cmVzLCBkaXJzPXdl
YmNvcmVfZGlycykKIApAQCAtMTI5LDggKzE0Miw5IEBACiAgICAgICAgICkKICAgICAgICAgCiAg
ICAgZXhjbHVkZXMgPSBbXQorICAgIAogICAgIGlmIGJ1aWxkX3BvcnQgPT0gJ3d4JzoKLSAgICAg
ICAgZXhjbHVkZXMgPSBnZXRfZXhjbHVkZXMod2ViY29yZV9kaXIsIFsnKk5vbmUuY3BwJywgJypD
Ri5jcHAnLCAnKlF0LmNwcCcsICcqV2luLmNwcCcsICcqV2luY2UuY3BwJywgJypHdGsuY3BwJywg
JypNYWMuY3BwJywgJypTYWZhcmkuY3BwJywgJypDaHJvbWl1bSouY3BwJywnKlNWRyouY3BwJywg
JypBbGxJbk9uZS5jcHAnLCAndGVzdCpiaW5kaW5ncy4qJ10pCisgICAgICAgIGV4Y2x1ZGVzID0g
Z2V0X2V4Y2x1ZGVzKHdlYmNvcmVfZGlyLCBleGNsdWRlX3BhdHRlcm5zKQogICAgICAgICBleGNs
dWRlcy5leHRlbmQoWydVc2VyU3R5bGVTaGVldExvYWRlci5jcHAnLCAnUmVuZGVyTWVkaWFDb250
cm9scy5jcHAnXSkKIAogCkBAIC0xNTEsNSArMTY1LDggQEAKICAgICAgICAgZXhjbHVkZXMuYXBw
ZW5kKCdKU0luc3BlY3RvckNvbnRyb2xsZXIuY3BwJykKICAgICAgICAgaWYgYnVpbGRpbmdfb25f
d2luMzI6CiAgICAgICAgICAgICBleGNsdWRlcy5hcHBlbmQoJ1NoYXJlZFRpbWVyV3guY3BwJykK
KyAgICAgICAgICAgIAorICAgICAgICBleGNsdWRlcy5hcHBlbmQoJ0F1dGhlbnRpY2F0aW9uQ0Yu
Y3BwJykKKyAgICAgICAgZXhjbHVkZXMuYXBwZW5kKCdMb2FkZXJSdW5Mb29wQ0YuY3BwJykKICAg
ICAgICAgCiAgICAgd2ViY29yZS5maW5kX3NvdXJjZXNfaW5fZGlycyhmdWxsX2RpcnMsIGV4Y2x1
ZGVzID0gZXhjbHVkZXMsIGV4dHM9WycuYycsICcuY3BwJ10pCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2NmL0JpbmFyeVByb3BlcnR5TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vY2YvQmluYXJ5UHJvcGVydHlMaXN0LmgJKHJldmlzaW9uIDUxODIxKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9jZi9CaW5hcnlQcm9wZXJ0eUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiAr
MjYsOCBAQAogI2lmbmRlZiBCaW5hcnlQcm9wZXJ0eUxpc3RfaAogI2RlZmluZSBCaW5hcnlQcm9w
ZXJ0eUxpc3RfaAogCisjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4K
KwogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmgJKHJldmlzaW9uIDUxODIxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEwICszOSwxMSBAQAogI2lmIGRlZmlu
ZWQoUV9PU19XSU4zMikKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKLSNpZiBkZWZpbmVk
KFFfV1NfTUFDKQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDRikgfHwgKFBMQVRGT1JNKFFUKSAm
JiBkZWZpbmVkKFFfV1NfTUFDKSkKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJ1bmRsZS5o
PgogI2VuZGlmCi0jZW5kaWYKIAogI2luY2x1ZGUgPHRpbWUuaD4KIApAQCAtNzYsNiArNzcsOCBA
QAogI2VuZGlmIC8vIGRlZmluZWQoUV9XU19NQUMpCiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBl
ZGVmIEdNb2R1bGUqIFBsYXRmb3JtTW9kdWxlOworI2VsaWYgUExBVEZPUk0oQ0YpCit0eXBlZGVm
IENGQnVuZGxlUmVmIFBsYXRmb3JtTW9kdWxlOwogI2Vsc2UKIHR5cGVkZWYgdm9pZCogUGxhdGZv
cm1Nb2R1bGU7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gNTE4MjEpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKyNpZiAhUExBVEZPUk0oV0lOX09TKQor
I2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2RlZmluZSBNQVhfUEFUSCBNQVhQQVRITEVOCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBpbnQgc2VsZWN0VGltZW91dE1TID0g
NTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvRmlsZVN5c3RlbVd4LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3d4L0ZpbGVTeXN0ZW1XeC5jcHAJKHJldmlzaW9uIDUxODIx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93eC9GaWxlU3lzdGVtV3guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSwxNyArMzUsMjMgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCiAjaW5j
bHVkZSA8d3gvd3guaD4KLSNpbmNsdWRlIDx3eC9maWxlbmFtZS5oPgorI2luY2x1ZGUgPHd4L2Rh
dGV0aW1lLmg+CiAjaW5jbHVkZSA8d3gvZGlyLmg+CisjaW5jbHVkZSA8d3gvZHlubGliLmg+CiAj
aW5jbHVkZSA8d3gvZmlsZS5oPgotI2luY2x1ZGUgPHd4L2RhdGV0aW1lLmg+CiAjaW5jbHVkZSA8
d3gvZmlsZWZuLmg+CisjaW5jbHVkZSA8d3gvZmlsZW5hbWUuaD4KIAorI2lmIFBMQVRGT1JNKERB
UldJTikKKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYg
cGF0aCkKIHsKLSAgICByZXR1cm4gd3hGaWxlTmFtZTo6RmlsZUV4aXN0cyhwYXRoKTsKKyAgICAv
LyBOT1RFOiBUaGlzIGlzIGNhbGxlZCBmb3IgZGlyZWN0b3J5IHBhdGhzIHRvbyBzbyB3ZSBuZWVk
IHRvIGNoZWNrIGJvdGguCisgICAgcmV0dXJuIHd4RmlsZU5hbWU6OkZpbGVFeGlzdHMocGF0aCkg
fHwgd3hGaWxlTmFtZTo6RGlyRXhpc3RzKHBhdGgpOwogfQogCiBib29sIGRlbGV0ZUZpbGUoY29u
c3QgU3RyaW5nJiBwYXRoKQpAQCAtMTIzLDIxICsxMjksNjMgQEAKIHsKICNpZiBQTEFURk9STShX
SU5fT1MpCiAgICAgcmV0dXJuIDo6RnJlZUxpYnJhcnkobW9kKTsKKyNlbGlmIFBMQVRGT1JNKERB
UldJTikKKyAgICBDRlJlbGVhc2UobW9kKTsKKyAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCi0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgd3hBU1NFUlQobW9kKTsK
KyAgICBkZWxldGUgbW9kOworICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiB9CiAKKworY2xhc3Mg
d3hEaXJUcmF2ZXJzZXJOb25SZWN1cnNpdmUgOiBwdWJsaWMgd3hEaXJUcmF2ZXJzZXIgeworcHVi
bGljOgorICAgIHd4RGlyVHJhdmVyc2VyTm9uUmVjdXJzaXZlKHd4U3RyaW5nIGJhc2VQYXRoLCB3
eEFycmF5U3RyaW5nJiBmaWxlcykgOiBtX2Jhc2VQYXRoKGJhc2VQYXRoKSwgbV9maWxlcyhmaWxl
cykgeyB9CisKKyAgICB2aXJ0dWFsIHd4RGlyVHJhdmVyc2VSZXN1bHQgT25GaWxlKGNvbnN0IHd4
U3RyaW5nJiBmaWxlbmFtZSkKKyAgICB7CisgICAgICAgIHd4RmlsZU5hbWUgYWZpbGUoZmlsZW5h
bWUpOworICAgICAgICBhZmlsZS5NYWtlUmVsYXRpdmVUbyhtX2Jhc2VQYXRoKTsKKyAgICAgICAg
aWYgKGFmaWxlLkdldEZ1bGxQYXRoKCkuRmluZChhZmlsZS5HZXRQYXRoU2VwYXJhdG9yKCkpID09
IHd4Tk9UX0ZPVU5EKQorICAgICAgICAgICAgbV9maWxlcy5wdXNoX2JhY2soZmlsZW5hbWUpOwor
CisgICAgICAgIHJldHVybiB3eERJUl9DT05USU5VRTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHd4
RGlyVHJhdmVyc2VSZXN1bHQgT25EaXIoY29uc3Qgd3hTdHJpbmcmIGRpcm5hbWUpCisgICAgewor
ICAgICAgICB3eEZpbGVOYW1lIGRpcmZpbGUoZGlybmFtZSk7CisgICAgICAgIGRpcmZpbGUuTWFr
ZVJlbGF0aXZlVG8obV9iYXNlUGF0aCk7CisgICAgICAgIGlmIChkaXJmaWxlLkdldEZ1bGxQYXRo
KCkuRmluZChkaXJmaWxlLkdldFBhdGhTZXBhcmF0b3IoKSkgPT0gd3hOT1RfRk9VTkQpCisgICAg
ICAgICAgICBtX2ZpbGVzLnB1c2hfYmFjayhkaXJuYW1lKTsKKworICAgICAgICByZXR1cm4gd3hE
SVJfQ09OVElOVUU7CisgICAgfQorCitwcml2YXRlOgorICAgIHd4U3RyaW5nIG1fYmFzZVBhdGg7
CisgICAgd3hBcnJheVN0cmluZyYgbV9maWxlczsKKworICAgIERFQ0xBUkVfTk9fQ09QWV9DTEFT
Uyh3eERpclRyYXZlcnNlck5vblJlY3Vyc2l2ZSkKK307CisKIFZlY3RvcjxTdHJpbmc+IGxpc3RE
aXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGZpbHRlcikKIHsKICAg
ICB3eEFycmF5U3RyaW5nICAgZmlsZV9wYXRoczsKKyAgICAvLyB3eERpcjo6R2V0QWxsRmlsZXMg
cmVjdXJzZXMgYW5kIGZvciBwbGF0Zm9ybXMgbGlrZSBNYWMgd2hlcmUKKyAgICAvLyBhIC5wbHVn
aW4gb3IgLmJ1bmRsZSBjYW4gYmUgYSBkaXIgd3ggd2lsbCByZWN1cnNlIGludG8gdGhlIGJ1bmRs
ZQorICAgIC8vIGFuZCBsaXN0IHRoZSBmaWxlcyByYXRoZXIgdGhhbiBqdXN0IHJldHVybmluZyB0
aGUgcGx1Z2luIG5hbWUsIHNvCisgICAgLy8gd2Ugd3JpdGUgYSBzcGVjaWFsIHRyYXZlcnNlciB0
aGF0IHdvcmtzIGFyb3VuZCB0aGF0IGlzc3VlLgorICAgIHd4RGlyVHJhdmVyc2VyTm9uUmVjdXJz
aXZlIHRyYXZlcnNlcihwYXRoLCBmaWxlX3BhdGhzKTsKICAgICAKLSAgICBpbnQgbl9maWxlcyA9
IHd4RGlyOjpHZXRBbGxGaWxlcyhwYXRoLCAmZmlsZV9wYXRocywgX1QoIiIpLCB3eERJUl9GSUxF
Uyk7CisgICAgd3hEaXIgZGlyKHBhdGgpOworICAgIGRpci5UcmF2ZXJzZSh0cmF2ZXJzZXIsIF9U
KCIiKSwgd3hESVJfRklMRVMgfCB3eERJUl9ESVJTKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGVu
dHJpZXM7CiAgICAgCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuX2ZpbGVzOyBpKyspCisgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlX3BhdGhzLkdldENvdW50KCk7IGkrKykKICAgICB7CiAg
ICAgICAgIGVudHJpZXMuYXBwZW5kKGZpbGVfcGF0aHNbaV0pOwogICAgIH0gICAKSW5kZXg6IFdl
YktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDUxODI3KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTEgQEAKKzIwMDktMTItMDcgIEtldmluIFdhdHRlcnMgIDxrZXZpbndhdHRl
cnNAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFt3eF0gTWFjIHBsdWdpbnMgc3VwcG9ydC4KKworICAgICAgICAqIHd4L2Jyb3dzZXIv
d3NjcmlwdDoKKwogMjAwOS0xMi0wNyAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYktp
dFRvb2xzL3d4L2Jyb3dzZXIvd3NjcmlwdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy93eC9i
cm93c2VyL3dzY3JpcHQJKHJldmlzaW9uIDUxODIxKQorKysgV2ViS2l0VG9vbHMvd3gvYnJvd3Nl
ci93c2NyaXB0CSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBACiAgICAgICAgIGluY2x1
ZGVzID0gJyAnLmpvaW4oaW5jbHVkZV9wYXRocyksCiAgICAgICAgIHNvdXJjZSA9ICdicm93c2Vy
LmNwcCcsCiAgICAgICAgIHRhcmdldCA9ICd3eEJyb3dzZXInLAotICAgICAgICB1c2VsaWIgPSAn
V1hXRUJLSVQgV1ggJyArIGdldF9jb25maWcoKSwKKyAgICAgICAgdXNlbGliID0gJ1dYIENVUkwg
SUNVIFhTTFQgWE1MIFdYV0VCS0lUICcgKyBnZXRfY29uZmlnKCksCiAgICAgICAgIGxpYnBhdGgg
PSBbb3V0cHV0X2Rpcl0sCiAgICAgICAgIHVzZWxpYl9sb2NhbCA9ICcnLAogICAgICAgICBpbnN0
YWxsX3BhdGggPSBvdXRwdXRfZGlyKQo=
</data>
<flag name="review"
          id="26337"
          type_id="1"
          status="+"
          setter="kevino"
    />
    <flag name="commit-queue"
          id="26338"
          type_id="3"
          status="-"
          setter="kevino"
    />
          </attachment>
      

    </bug>

</bugzilla>