<?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>36580</bug_id>
          
          <creation_ts>2010-03-24 22:45:35 -0700</creation_ts>
          <short_desc>Rename webkitpy.patch to webkitpy.tool</short_desc>
          <delta_ts>2010-04-01 17:09:52 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>36993</dependson>
          <blocked>36093</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>203812</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-24 22:45:35 -0700</bug_when>
    <thetext>Rename webkitpy.patch to webkitpy.tool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203813</commentid>
    <comment_count>1</comment_count>
      <attachid>51597</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-24 22:48:51 -0700</bug_when>
    <thetext>Created attachment 51597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203814</commentid>
    <comment_count>2</comment_count>
      <attachid>51597</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-24 22:49:55 -0700</bug_when>
    <thetext>Comment on attachment 51597
Patch

STAMP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203815</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-24 22:51:46 -0700</bug_when>
    <thetext>Committed r56491: &lt;http://trac.webkit.org/changeset/56491&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51597</attachid>
            <date>2010-03-24 22:48:51 -0700</date>
            <delta_ts>2010-03-24 22:49:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36580-20100324224850.patch</filename>
            <type>text/plain</type>
            <size>20121</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU2NDkwKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDMtMjQgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW5hbWUgd2Via2l0cHkucGF0Y2ggdG8gd2Via2l0cHkudG9vbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY1ODAKKworICAgICAgICBU
aGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB0aGUgZ3JlYXQgd2Via2l0cHkgbmFtaW5nIGNsZWFu
dXAuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC1wYXRjaDoKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3BhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGF0
Y2gvX19pbml0X18ucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wYXRj
aC9wYXRjaGVyLnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbDog
Q29waWVkIGZyb20gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wYXRjaC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbWFpbi5weTogQ29waWVkIGZyb20gV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wYXRjaC9wYXRjaGVyLnB5LgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9wYXRjaGVyLnB5OiBSZW1vdmVkLgorCiAyMDEwLTAzLTI0ICBFcmljIFNlaWRl
bCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJ
bmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXQtcGF0Y2gKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXQtcGF0Y2gJKHJldmlzaW9uIDU2NDg1KQorKysgV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXQtcGF0Y2gJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcg
QEAgZGVmIG1haW4oKToKICAgICAjIEltcG9ydCB3ZWJraXQtcGF0Y2ggY29kZSBvbmx5IGFmdGVy
IHZlcnNpb24tY2hlY2tpbmcgc28gdGhhdAogICAgICMgc2NyaXB0IGRvZXNuJ3QgZXJyb3Igb3V0
IGJlZm9yZSBoYXZpbmcgYSBjaGFuY2UgdG8gcmVwb3J0IHRoZQogICAgICMgdmVyc2lvbiB3YXJu
aW5nLgotICAgIGZyb20gd2Via2l0cHkucGF0Y2gucGF0Y2hlciBpbXBvcnQgV2ViS2l0UGF0Y2gK
KyAgICBmcm9tIHdlYmtpdHB5LnRvb2wubWFpbiBpbXBvcnQgV2ViS2l0UGF0Y2gKIAogICAgIFdl
YktpdFBhdGNoKF9fZmlsZV9fKS5tYWluKCkKIApJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wYXRjaC9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BhdGNoL19faW5pdF9fLnB5CShyZXZpc2lvbiA1NjQ4NSkKKysrIFdlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGF0Y2gvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkK
QEAgLTEgKzAsMCBAQAotIyBSZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVj
dG9yeSBmb3IgbW9kdWxlIGZpbGVzCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3BhdGNoL3BhdGNoZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wYXRjaC9wYXRjaGVyLnB5CShyZXZpc2lvbiA1NjQ4NSkKKysrIFdlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcGF0Y2gvcGF0Y2hlci5weQkod29ya2luZyBjb3B5KQpAQCAtMSwxMzIg
KzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jIEEgdG9vbCBmb3IgYXV0b21hdGluZyBkZWFsaW5n
IHdpdGggYnVnemlsbGEsIHBvc3RpbmcgcGF0Y2hlcywgY29tbWl0dGluZyBwYXRjaGVzLCBldGMu
Ci0KLWltcG9ydCBvcwotCi1mcm9tIHdlYmtpdHB5LmJ1Z3ppbGxhIGltcG9ydCBCdWd6aWxsYQot
ZnJvbSB3ZWJraXRweS5idWlsZGJvdCBpbXBvcnQgQnVpbGRCb3QKLWZyb20gd2Via2l0cHkuY29t
bWFuZHMuZG93bmxvYWQgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuY29tbWFuZHMuZWFybHlfd2Fy
bmluZ19zeXN0ZW0gaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuY29tbWFuZHMub3BlbmJ1Z3MgaW1w
b3J0IE9wZW5CdWdzCi1mcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXJpZXMgaW1wb3J0ICoKLWZy
b20gd2Via2l0cHkuY29tbWFuZHMucXVldWVzIGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LmNvbW1h
bmRzLnNoZXJpZmZib3QgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuY29tbWFuZHMudXBsb2FkIGlt
cG9ydCAqCi1mcm9tIHdlYmtpdHB5LmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCi1mcm9tIHdl
YmtpdHB5LmlyYy5pcmNwcm94eSBpbXBvcnQgSVJDUHJveHkKLWZyb20gd2Via2l0cHkud2Via2l0
X2xvZ2dpbmcgaW1wb3J0IGxvZwotZnJvbSB3ZWJraXRweS53ZWJraXRjaGVja291dCBpbXBvcnQg
V2ViS2l0Q2hlY2tvdXQKLWZyb20gd2Via2l0cHkubXVsdGljb21tYW5kdG9vbCBpbXBvcnQgTXVs
dGlDb21tYW5kVG9vbAotZnJvbSB3ZWJraXRweS5zY20gaW1wb3J0IGRldGVjdF9zY21fc3lzdGVt
Ci1mcm9tIHdlYmtpdHB5LnVzZXIgaW1wb3J0IFVzZXIKLQotCi1jbGFzcyBXZWJLaXRQYXRjaChN
dWx0aUNvbW1hbmRUb29sKToKLSAgICBnbG9iYWxfb3B0aW9ucyA9IFsKLSAgICAgICAgbWFrZV9v
cHRpb24oIi0tZHJ5LXJ1biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImRyeV9ydW4iLCBk
ZWZhdWx0PUZhbHNlLCBoZWxwPSJkbyBub3QgdG91Y2ggcmVtb3RlIHNlcnZlcnMiKSwKLSAgICAg
ICAgbWFrZV9vcHRpb24oIi0tc3RhdHVzLWhvc3QiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0ic3Rh
dHVzX2hvc3QiLCB0eXBlPSJzdHJpbmciLCBuYXJncz0xLCBoZWxwPSJIb3N0bmFtZSAoZS5nLiBs
b2NhbGhvc3Qgb3IgY29tbWl0LndlYmtpdC5vcmcpIHdoZXJlIHN0YXR1cyB1cGRhdGVzIHNob3Vs
ZCBiZSBwb3N0ZWQuIiksCi0gICAgICAgIG1ha2Vfb3B0aW9uKCItLWlyYy1wYXNzd29yZCIsIGFj
dGlvbj0ic3RvcmUiLCBkZXN0PSJpcmNfcGFzc3dvcmQiLCB0eXBlPSJzdHJpbmciLCBuYXJncz0x
LCBoZWxwPSJQYXNzd29yZCB0byB1c2Ugd2hlbiBjb21tdW5pY2F0aW5nIHZpYSBJUkMuIiksCi0g
ICAgXQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgotICAgICAgICBNdWx0aUNvbW1h
bmRUb29sLl9faW5pdF9fKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcGF0aCA9IHBhdGgKLSAgICAg
ICAgc2VsZi5idWdzID0gQnVnemlsbGEoKQotICAgICAgICBzZWxmLmJ1aWxkYm90ID0gQnVpbGRC
b3QoKQotICAgICAgICBzZWxmLmV4ZWN1dGl2ZSA9IEV4ZWN1dGl2ZSgpCi0gICAgICAgIHNlbGYu
X2lyYyA9IE5vbmUKLSAgICAgICAgc2VsZi51c2VyID0gVXNlcigpCi0gICAgICAgIHNlbGYuX3Nj
bSA9IE5vbmUKLSAgICAgICAgc2VsZi5fY2hlY2tvdXQgPSBOb25lCi0gICAgICAgIHNlbGYuc3Rh
dHVzX3NlcnZlciA9IFN0YXR1c1NlcnZlcigpCi0KLSAgICBkZWYgc2NtKHNlbGYpOgotICAgICAg
ICAjIExhemlseSBpbml0aWFsaXplIFNDTSB0byBub3QgZXJyb3Itb3V0IGJlZm9yZSBjb21tYW5k
IGxpbmUgcGFyc2luZyAob3Igd2hlbiBydW5uaW5nIG5vbi1zY20gY29tbWFuZHMpLgotICAgICAg
ICBvcmlnaW5hbF9jd2QgPSBvcy5wYXRoLmFic3BhdGgoIi4iKQotICAgICAgICBpZiBub3Qgc2Vs
Zi5fc2NtOgotICAgICAgICAgICAgc2VsZi5fc2NtID0gZGV0ZWN0X3NjbV9zeXN0ZW0ob3JpZ2lu
YWxfY3dkKQotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9zY206Ci0gICAgICAgICAgICBzY3JpcHRf
ZGlyZWN0b3J5ID0gb3MucGF0aC5hYnNwYXRoKHN5cy5wYXRoWzBdKQotICAgICAgICAgICAgc2Vs
Zi5fc2NtID0gZGV0ZWN0X3NjbV9zeXN0ZW0oc2NyaXB0X2RpcmVjdG9yeSkKLSAgICAgICAgICAg
IGlmIHNlbGYuX3NjbToKLSAgICAgICAgICAgICAgICBsb2coIlRoZSBjdXJyZW50IGRpcmVjdG9y
eSAoJXMpIGlzIG5vdCBhIFdlYktpdCBjaGVja291dCwgdXNpbmcgJXMiICUgKG9yaWdpbmFsX2N3
ZCwgc2VsZi5fc2NtLmNoZWNrb3V0X3Jvb3QpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBlcnJvcigiRkFUQUw6IEZhaWxlZCB0byBkZXRlcm1pbmUgdGhlIFNDTSBzeXN0ZW0g
Zm9yIGVpdGhlciAlcyBvciAlcyIgJSAob3JpZ2luYWxfY3dkLCBzY3JpcHRfZGlyZWN0b3J5KSkK
LQotICAgICAgICByZXR1cm4gc2VsZi5fc2NtCi0KLSAgICBkZWYgY2hlY2tvdXQoc2VsZik6Ci0g
ICAgICAgIGlmIG5vdCBzZWxmLl9jaGVja291dDoKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrb3V0
ID0gV2ViS2l0Q2hlY2tvdXQoc2VsZi5zY20oKSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NoZWNr
b3V0Ci0KLSAgICAjIEZJWE1FOiBBZGQgYSBwYXJhbWV0ZXIgZm9yIG5pY2tuYW1lPwotICAgIGRl
ZiBlbnN1cmVfaXJjX2Nvbm5lY3RlZChzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lyYzoK
LSAgICAgICAgICAgIHNlbGYuX2lyYyA9IElSQ1Byb3h5KHBhc3N3b3JkPXNlbGYuX2lyY19wYXNz
d29yZCkKLQotICAgIGRlZiBpcmMoc2VsZik6Ci0gICAgICAgICMgV2UgZG9uJ3QgYXV0b21hdGlj
YWxseSBjb25zdHJ1Y3QgSVJDUHJveHkgaGVyZSBiZWNhdXNlIGNvbnN0cnVjdGluZwotICAgICAg
ICAjIElSQ1Byb3h5IGFjdHVhbGx5IGNvbm5lY3RzIHRvIElSQy4gIFdlIHdhbnQgY2xpZW50cyB0
byBleHBsaWNpdGx5Ci0gICAgICAgICMgY29ubmVjdCB0byBJUkMuCi0gICAgICAgIHJldHVybiBz
ZWxmLl9pcmMKLQotICAgIGRlZiBwYXRoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcGF0
aAotCi0gICAgZGVmIGNvbW1hbmRfY29tcGxldGVkKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9p
cmM6Ci0gICAgICAgICAgICBzZWxmLl9pcmMuZGlzY29ubmVjdCgpCi0KLSAgICBkZWYgc2hvdWxk
X3Nob3dfaW5fbWFpbl9oZWxwKHNlbGYsIGNvbW1hbmQpOgotICAgICAgICBpZiBub3QgY29tbWFu
ZC5zaG93X2luX21haW5faGVscDoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBp
ZiBjb21tYW5kLnJlcXVpcmVzX2xvY2FsX2NvbW1pdHM6Ci0gICAgICAgICAgICByZXR1cm4gc2Vs
Zi5zY20oKS5zdXBwb3J0c19sb2NhbF9jb21taXRzKCkKLSAgICAgICAgcmV0dXJuIFRydWUKLQot
ICAgICMgRklYTUU6IFRoaXMgbWF5IGJlIHVubmVjZXNzYXJ5IHNpbmNlIHdlIHBhc3MgZ2xvYmFs
IG9wdGlvbnMgdG8gYWxsIGNvbW1hbmRzIGR1cmluZyBleGVjdXRlKCkgYXMgd2VsbC4KLSAgICBk
ZWYgaGFuZGxlX2dsb2JhbF9vcHRpb25zKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICBpZiBvcHRp
b25zLmRyeV9ydW46Ci0gICAgICAgICAgICBzZWxmLnNjbSgpLmRyeXJ1biA9IFRydWUKLSAgICAg
ICAgICAgIHNlbGYuYnVncy5kcnlydW4gPSBUcnVlCi0gICAgICAgIGlmIG9wdGlvbnMuc3RhdHVz
X2hvc3Q6Ci0gICAgICAgICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIuc2V0X2hvc3Qob3B0aW9ucy5z
dGF0dXNfaG9zdCkKLSAgICAgICAgaWYgb3B0aW9ucy5pcmNfcGFzc3dvcmQ6Ci0gICAgICAgICAg
ICBzZWxmLl9pcmNfcGFzc3dvcmQgPSBvcHRpb25zLmlyY19wYXNzd29yZAotCi0gICAgZGVmIHNo
b3VsZF9leGVjdXRlX2NvbW1hbmQoc2VsZiwgY29tbWFuZCk6Ci0gICAgICAgIGlmIGNvbW1hbmQu
cmVxdWlyZXNfbG9jYWxfY29tbWl0cyBhbmQgbm90IHNlbGYuc2NtKCkuc3VwcG9ydHNfbG9jYWxf
Y29tbWl0cygpOgotICAgICAgICAgICAgZmFpbHVyZV9yZWFzb24gPSAiJXMgcmVxdWlyZXMgbG9j
YWwgY29tbWl0cyB1c2luZyAlcyBpbiAlcy4iICUgKGNvbW1hbmQubmFtZSwgc2VsZi5zY20oKS5k
aXNwbGF5X25hbWUoKSwgc2VsZi5zY20oKS5jaGVja291dF9yb290KQotICAgICAgICAgICAgcmV0
dXJuIChGYWxzZSwgZmFpbHVyZV9yZWFzb24pCi0gICAgICAgIHJldHVybiAoVHJ1ZSwgTm9uZSkK
SW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tYWluLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tYWluLnB5CShyZXZpc2lv
biA1NjQ4NSkJKGZyb20gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wYXRjaC9wYXRjaGVy
LnB5OjU2NDg1KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21haW4ucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzIgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworIyBBIHRv
b2wgZm9yIGF1dG9tYXRpbmcgZGVhbGluZyB3aXRoIGJ1Z3ppbGxhLCBwb3N0aW5nIHBhdGNoZXMs
IGNvbW1pdHRpbmcgcGF0Y2hlcywgZXRjLgorCitpbXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5i
dWd6aWxsYSBpbXBvcnQgQnVnemlsbGEKK2Zyb20gd2Via2l0cHkuYnVpbGRib3QgaW1wb3J0IEJ1
aWxkQm90Citmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLmRvd25sb2FkIGltcG9ydCAqCitmcm9tIHdl
YmtpdHB5LmNvbW1hbmRzLmVhcmx5X3dhcm5pbmdfc3lzdGVtIGltcG9ydCAqCitmcm9tIHdlYmtp
dHB5LmNvbW1hbmRzLm9wZW5idWdzIGltcG9ydCBPcGVuQnVncworZnJvbSB3ZWJraXRweS5jb21t
YW5kcy5xdWVyaWVzIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXVlcyBpbXBv
cnQgKgorZnJvbSB3ZWJraXRweS5jb21tYW5kcy5zaGVyaWZmYm90IGltcG9ydCAqCitmcm9tIHdl
YmtpdHB5LmNvbW1hbmRzLnVwbG9hZCBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS5leGVjdXRpdmUg
aW1wb3J0IEV4ZWN1dGl2ZQorZnJvbSB3ZWJraXRweS5pcmMuaXJjcHJveHkgaW1wb3J0IElSQ1By
b3h5Citmcm9tIHdlYmtpdHB5LndlYmtpdF9sb2dnaW5nIGltcG9ydCBsb2cKK2Zyb20gd2Via2l0
cHkud2Via2l0Y2hlY2tvdXQgaW1wb3J0IFdlYktpdENoZWNrb3V0Citmcm9tIHdlYmtpdHB5Lm11
bHRpY29tbWFuZHRvb2wgaW1wb3J0IE11bHRpQ29tbWFuZFRvb2wKK2Zyb20gd2Via2l0cHkuc2Nt
IGltcG9ydCBkZXRlY3Rfc2NtX3N5c3RlbQorZnJvbSB3ZWJraXRweS51c2VyIGltcG9ydCBVc2Vy
CisKKworY2xhc3MgV2ViS2l0UGF0Y2goTXVsdGlDb21tYW5kVG9vbCk6CisgICAgZ2xvYmFsX29w
dGlvbnMgPSBbCisgICAgICAgIG1ha2Vfb3B0aW9uKCItLWRyeS1ydW4iLCBhY3Rpb249InN0b3Jl
X3RydWUiLCBkZXN0PSJkcnlfcnVuIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iZG8gbm90IHRvdWNo
IHJlbW90ZSBzZXJ2ZXJzIiksCisgICAgICAgIG1ha2Vfb3B0aW9uKCItLXN0YXR1cy1ob3N0Iiwg
YWN0aW9uPSJzdG9yZSIsIGRlc3Q9InN0YXR1c19ob3N0IiwgdHlwZT0ic3RyaW5nIiwgbmFyZ3M9
MSwgaGVscD0iSG9zdG5hbWUgKGUuZy4gbG9jYWxob3N0IG9yIGNvbW1pdC53ZWJraXQub3JnKSB3
aGVyZSBzdGF0dXMgdXBkYXRlcyBzaG91bGQgYmUgcG9zdGVkLiIpLAorICAgICAgICBtYWtlX29w
dGlvbigiLS1pcmMtcGFzc3dvcmQiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iaXJjX3Bhc3N3b3Jk
IiwgdHlwZT0ic3RyaW5nIiwgbmFyZ3M9MSwgaGVscD0iUGFzc3dvcmQgdG8gdXNlIHdoZW4gY29t
bXVuaWNhdGluZyB2aWEgSVJDLiIpLAorICAgIF0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
YXRoKToKKyAgICAgICAgTXVsdGlDb21tYW5kVG9vbC5fX2luaXRfXyhzZWxmKQorCisgICAgICAg
IHNlbGYuX3BhdGggPSBwYXRoCisgICAgICAgIHNlbGYuYnVncyA9IEJ1Z3ppbGxhKCkKKyAgICAg
ICAgc2VsZi5idWlsZGJvdCA9IEJ1aWxkQm90KCkKKyAgICAgICAgc2VsZi5leGVjdXRpdmUgPSBF
eGVjdXRpdmUoKQorICAgICAgICBzZWxmLl9pcmMgPSBOb25lCisgICAgICAgIHNlbGYudXNlciA9
IFVzZXIoKQorICAgICAgICBzZWxmLl9zY20gPSBOb25lCisgICAgICAgIHNlbGYuX2NoZWNrb3V0
ID0gTm9uZQorICAgICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIgPSBTdGF0dXNTZXJ2ZXIoKQorCisg
ICAgZGVmIHNjbShzZWxmKToKKyAgICAgICAgIyBMYXppbHkgaW5pdGlhbGl6ZSBTQ00gdG8gbm90
IGVycm9yLW91dCBiZWZvcmUgY29tbWFuZCBsaW5lIHBhcnNpbmcgKG9yIHdoZW4gcnVubmluZyBu
b24tc2NtIGNvbW1hbmRzKS4KKyAgICAgICAgb3JpZ2luYWxfY3dkID0gb3MucGF0aC5hYnNwYXRo
KCIuIikKKyAgICAgICAgaWYgbm90IHNlbGYuX3NjbToKKyAgICAgICAgICAgIHNlbGYuX3NjbSA9
IGRldGVjdF9zY21fc3lzdGVtKG9yaWdpbmFsX2N3ZCkKKworICAgICAgICBpZiBub3Qgc2VsZi5f
c2NtOgorICAgICAgICAgICAgc2NyaXB0X2RpcmVjdG9yeSA9IG9zLnBhdGguYWJzcGF0aChzeXMu
cGF0aFswXSkKKyAgICAgICAgICAgIHNlbGYuX3NjbSA9IGRldGVjdF9zY21fc3lzdGVtKHNjcmlw
dF9kaXJlY3RvcnkpCisgICAgICAgICAgICBpZiBzZWxmLl9zY206CisgICAgICAgICAgICAgICAg
bG9nKCJUaGUgY3VycmVudCBkaXJlY3RvcnkgKCVzKSBpcyBub3QgYSBXZWJLaXQgY2hlY2tvdXQs
IHVzaW5nICVzIiAlIChvcmlnaW5hbF9jd2QsIHNlbGYuX3NjbS5jaGVja291dF9yb290KSkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXJyb3IoIkZBVEFMOiBGYWlsZWQgdG8g
ZGV0ZXJtaW5lIHRoZSBTQ00gc3lzdGVtIGZvciBlaXRoZXIgJXMgb3IgJXMiICUgKG9yaWdpbmFs
X2N3ZCwgc2NyaXB0X2RpcmVjdG9yeSkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NjbQorCisg
ICAgZGVmIGNoZWNrb3V0KHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5fY2hlY2tvdXQ6Cisg
ICAgICAgICAgICBzZWxmLl9jaGVja291dCA9IFdlYktpdENoZWNrb3V0KHNlbGYuc2NtKCkpCisg
ICAgICAgIHJldHVybiBzZWxmLl9jaGVja291dAorCisgICAgIyBGSVhNRTogQWRkIGEgcGFyYW1l
dGVyIGZvciBuaWNrbmFtZT8KKyAgICBkZWYgZW5zdXJlX2lyY19jb25uZWN0ZWQoc2VsZik6Cisg
ICAgICAgIGlmIG5vdCBzZWxmLl9pcmM6CisgICAgICAgICAgICBzZWxmLl9pcmMgPSBJUkNQcm94
eShwYXNzd29yZD1zZWxmLl9pcmNfcGFzc3dvcmQpCisKKyAgICBkZWYgaXJjKHNlbGYpOgorICAg
ICAgICAjIFdlIGRvbid0IGF1dG9tYXRpY2FsbHkgY29uc3RydWN0IElSQ1Byb3h5IGhlcmUgYmVj
YXVzZSBjb25zdHJ1Y3RpbmcKKyAgICAgICAgIyBJUkNQcm94eSBhY3R1YWxseSBjb25uZWN0cyB0
byBJUkMuICBXZSB3YW50IGNsaWVudHMgdG8gZXhwbGljaXRseQorICAgICAgICAjIGNvbm5lY3Qg
dG8gSVJDLgorICAgICAgICByZXR1cm4gc2VsZi5faXJjCisKKyAgICBkZWYgcGF0aChzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGgKKworICAgIGRlZiBjb21tYW5kX2NvbXBsZXRlZChz
ZWxmKToKKyAgICAgICAgaWYgc2VsZi5faXJjOgorICAgICAgICAgICAgc2VsZi5faXJjLmRpc2Nv
bm5lY3QoKQorCisgICAgZGVmIHNob3VsZF9zaG93X2luX21haW5faGVscChzZWxmLCBjb21tYW5k
KToKKyAgICAgICAgaWYgbm90IGNvbW1hbmQuc2hvd19pbl9tYWluX2hlbHA6CisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgY29tbWFuZC5yZXF1aXJlc19sb2NhbF9jb21taXRz
OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuc2NtKCkuc3VwcG9ydHNfbG9jYWxfY29tbWl0cygp
CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAjIEZJWE1FOiBUaGlzIG1heSBiZSB1bm5lY2Vz
c2FyeSBzaW5jZSB3ZSBwYXNzIGdsb2JhbCBvcHRpb25zIHRvIGFsbCBjb21tYW5kcyBkdXJpbmcg
ZXhlY3V0ZSgpIGFzIHdlbGwuCisgICAgZGVmIGhhbmRsZV9nbG9iYWxfb3B0aW9ucyhzZWxmLCBv
cHRpb25zKToKKyAgICAgICAgaWYgb3B0aW9ucy5kcnlfcnVuOgorICAgICAgICAgICAgc2VsZi5z
Y20oKS5kcnlydW4gPSBUcnVlCisgICAgICAgICAgICBzZWxmLmJ1Z3MuZHJ5cnVuID0gVHJ1ZQor
ICAgICAgICBpZiBvcHRpb25zLnN0YXR1c19ob3N0OgorICAgICAgICAgICAgc2VsZi5zdGF0dXNf
c2VydmVyLnNldF9ob3N0KG9wdGlvbnMuc3RhdHVzX2hvc3QpCisgICAgICAgIGlmIG9wdGlvbnMu
aXJjX3Bhc3N3b3JkOgorICAgICAgICAgICAgc2VsZi5faXJjX3Bhc3N3b3JkID0gb3B0aW9ucy5p
cmNfcGFzc3dvcmQKKworICAgIGRlZiBzaG91bGRfZXhlY3V0ZV9jb21tYW5kKHNlbGYsIGNvbW1h
bmQpOgorICAgICAgICBpZiBjb21tYW5kLnJlcXVpcmVzX2xvY2FsX2NvbW1pdHMgYW5kIG5vdCBz
ZWxmLnNjbSgpLnN1cHBvcnRzX2xvY2FsX2NvbW1pdHMoKToKKyAgICAgICAgICAgIGZhaWx1cmVf
cmVhc29uID0gIiVzIHJlcXVpcmVzIGxvY2FsIGNvbW1pdHMgdXNpbmcgJXMgaW4gJXMuIiAlIChj
b21tYW5kLm5hbWUsIHNlbGYuc2NtKCkuZGlzcGxheV9uYW1lKCksIHNlbGYuc2NtKCkuY2hlY2tv
dXRfcm9vdCkKKyAgICAgICAgICAgIHJldHVybiAoRmFsc2UsIGZhaWx1cmVfcmVhc29uKQorICAg
ICAgICByZXR1cm4gKFRydWUsIE5vbmUpCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvcGF0Y2hlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvcGF0Y2hlci5weQkocmV2aXNpb24gNTY0ODUpCisrKyBXZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvcGF0Y2hlci5weQkod29ya2luZyBjb3B5KQpAQCAtMSwxMzIg
KzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jIEEgdG9vbCBmb3IgYXV0b21hdGluZyBkZWFsaW5n
IHdpdGggYnVnemlsbGEsIHBvc3RpbmcgcGF0Y2hlcywgY29tbWl0dGluZyBwYXRjaGVzLCBldGMu
Ci0KLWltcG9ydCBvcwotCi1mcm9tIHdlYmtpdHB5LmJ1Z3ppbGxhIGltcG9ydCBCdWd6aWxsYQot
ZnJvbSB3ZWJraXRweS5idWlsZGJvdCBpbXBvcnQgQnVpbGRCb3QKLWZyb20gd2Via2l0cHkuY29t
bWFuZHMuZG93bmxvYWQgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuY29tbWFuZHMuZWFybHlfd2Fy
bmluZ19zeXN0ZW0gaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuY29tbWFuZHMub3BlbmJ1Z3MgaW1w
b3J0IE9wZW5CdWdzCi1mcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXJpZXMgaW1wb3J0ICoKLWZy
b20gd2Via2l0cHkuY29tbWFuZHMucXVldWVzIGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LmNvbW1h
bmRzLnNoZXJpZmZib3QgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuY29tbWFuZHMudXBsb2FkIGlt
cG9ydCAqCi1mcm9tIHdlYmtpdHB5LmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCi1mcm9tIHdl
YmtpdHB5LmlyYy5pcmNwcm94eSBpbXBvcnQgSVJDUHJveHkKLWZyb20gd2Via2l0cHkud2Via2l0
X2xvZ2dpbmcgaW1wb3J0IGxvZwotZnJvbSB3ZWJraXRweS53ZWJraXRjaGVja291dCBpbXBvcnQg
V2ViS2l0Q2hlY2tvdXQKLWZyb20gd2Via2l0cHkubXVsdGljb21tYW5kdG9vbCBpbXBvcnQgTXVs
dGlDb21tYW5kVG9vbAotZnJvbSB3ZWJraXRweS5zY20gaW1wb3J0IGRldGVjdF9zY21fc3lzdGVt
Ci1mcm9tIHdlYmtpdHB5LnVzZXIgaW1wb3J0IFVzZXIKLQotCi1jbGFzcyBXZWJLaXRQYXRjaChN
dWx0aUNvbW1hbmRUb29sKToKLSAgICBnbG9iYWxfb3B0aW9ucyA9IFsKLSAgICAgICAgbWFrZV9v
cHRpb24oIi0tZHJ5LXJ1biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImRyeV9ydW4iLCBk
ZWZhdWx0PUZhbHNlLCBoZWxwPSJkbyBub3QgdG91Y2ggcmVtb3RlIHNlcnZlcnMiKSwKLSAgICAg
ICAgbWFrZV9vcHRpb24oIi0tc3RhdHVzLWhvc3QiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0ic3Rh
dHVzX2hvc3QiLCB0eXBlPSJzdHJpbmciLCBuYXJncz0xLCBoZWxwPSJIb3N0bmFtZSAoZS5nLiBs
b2NhbGhvc3Qgb3IgY29tbWl0LndlYmtpdC5vcmcpIHdoZXJlIHN0YXR1cyB1cGRhdGVzIHNob3Vs
ZCBiZSBwb3N0ZWQuIiksCi0gICAgICAgIG1ha2Vfb3B0aW9uKCItLWlyYy1wYXNzd29yZCIsIGFj
dGlvbj0ic3RvcmUiLCBkZXN0PSJpcmNfcGFzc3dvcmQiLCB0eXBlPSJzdHJpbmciLCBuYXJncz0x
LCBoZWxwPSJQYXNzd29yZCB0byB1c2Ugd2hlbiBjb21tdW5pY2F0aW5nIHZpYSBJUkMuIiksCi0g
ICAgXQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgotICAgICAgICBNdWx0aUNvbW1h
bmRUb29sLl9faW5pdF9fKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcGF0aCA9IHBhdGgKLSAgICAg
ICAgc2VsZi5idWdzID0gQnVnemlsbGEoKQotICAgICAgICBzZWxmLmJ1aWxkYm90ID0gQnVpbGRC
b3QoKQotICAgICAgICBzZWxmLmV4ZWN1dGl2ZSA9IEV4ZWN1dGl2ZSgpCi0gICAgICAgIHNlbGYu
X2lyYyA9IE5vbmUKLSAgICAgICAgc2VsZi51c2VyID0gVXNlcigpCi0gICAgICAgIHNlbGYuX3Nj
bSA9IE5vbmUKLSAgICAgICAgc2VsZi5fY2hlY2tvdXQgPSBOb25lCi0gICAgICAgIHNlbGYuc3Rh
dHVzX3NlcnZlciA9IFN0YXR1c1NlcnZlcigpCi0KLSAgICBkZWYgc2NtKHNlbGYpOgotICAgICAg
ICAjIExhemlseSBpbml0aWFsaXplIFNDTSB0byBub3QgZXJyb3Itb3V0IGJlZm9yZSBjb21tYW5k
IGxpbmUgcGFyc2luZyAob3Igd2hlbiBydW5uaW5nIG5vbi1zY20gY29tbWFuZHMpLgotICAgICAg
ICBvcmlnaW5hbF9jd2QgPSBvcy5wYXRoLmFic3BhdGgoIi4iKQotICAgICAgICBpZiBub3Qgc2Vs
Zi5fc2NtOgotICAgICAgICAgICAgc2VsZi5fc2NtID0gZGV0ZWN0X3NjbV9zeXN0ZW0ob3JpZ2lu
YWxfY3dkKQotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9zY206Ci0gICAgICAgICAgICBzY3JpcHRf
ZGlyZWN0b3J5ID0gb3MucGF0aC5hYnNwYXRoKHN5cy5wYXRoWzBdKQotICAgICAgICAgICAgc2Vs
Zi5fc2NtID0gZGV0ZWN0X3NjbV9zeXN0ZW0oc2NyaXB0X2RpcmVjdG9yeSkKLSAgICAgICAgICAg
IGlmIHNlbGYuX3NjbToKLSAgICAgICAgICAgICAgICBsb2coIlRoZSBjdXJyZW50IGRpcmVjdG9y
eSAoJXMpIGlzIG5vdCBhIFdlYktpdCBjaGVja291dCwgdXNpbmcgJXMiICUgKG9yaWdpbmFsX2N3
ZCwgc2VsZi5fc2NtLmNoZWNrb3V0X3Jvb3QpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBlcnJvcigiRkFUQUw6IEZhaWxlZCB0byBkZXRlcm1pbmUgdGhlIFNDTSBzeXN0ZW0g
Zm9yIGVpdGhlciAlcyBvciAlcyIgJSAob3JpZ2luYWxfY3dkLCBzY3JpcHRfZGlyZWN0b3J5KSkK
LQotICAgICAgICByZXR1cm4gc2VsZi5fc2NtCi0KLSAgICBkZWYgY2hlY2tvdXQoc2VsZik6Ci0g
ICAgICAgIGlmIG5vdCBzZWxmLl9jaGVja291dDoKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrb3V0
ID0gV2ViS2l0Q2hlY2tvdXQoc2VsZi5zY20oKSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NoZWNr
b3V0Ci0KLSAgICAjIEZJWE1FOiBBZGQgYSBwYXJhbWV0ZXIgZm9yIG5pY2tuYW1lPwotICAgIGRl
ZiBlbnN1cmVfaXJjX2Nvbm5lY3RlZChzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lyYzoK
LSAgICAgICAgICAgIHNlbGYuX2lyYyA9IElSQ1Byb3h5KHBhc3N3b3JkPXNlbGYuX2lyY19wYXNz
d29yZCkKLQotICAgIGRlZiBpcmMoc2VsZik6Ci0gICAgICAgICMgV2UgZG9uJ3QgYXV0b21hdGlj
YWxseSBjb25zdHJ1Y3QgSVJDUHJveHkgaGVyZSBiZWNhdXNlIGNvbnN0cnVjdGluZwotICAgICAg
ICAjIElSQ1Byb3h5IGFjdHVhbGx5IGNvbm5lY3RzIHRvIElSQy4gIFdlIHdhbnQgY2xpZW50cyB0
byBleHBsaWNpdGx5Ci0gICAgICAgICMgY29ubmVjdCB0byBJUkMuCi0gICAgICAgIHJldHVybiBz
ZWxmLl9pcmMKLQotICAgIGRlZiBwYXRoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcGF0
aAotCi0gICAgZGVmIGNvbW1hbmRfY29tcGxldGVkKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9p
cmM6Ci0gICAgICAgICAgICBzZWxmLl9pcmMuZGlzY29ubmVjdCgpCi0KLSAgICBkZWYgc2hvdWxk
X3Nob3dfaW5fbWFpbl9oZWxwKHNlbGYsIGNvbW1hbmQpOgotICAgICAgICBpZiBub3QgY29tbWFu
ZC5zaG93X2luX21haW5faGVscDoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBp
ZiBjb21tYW5kLnJlcXVpcmVzX2xvY2FsX2NvbW1pdHM6Ci0gICAgICAgICAgICByZXR1cm4gc2Vs
Zi5zY20oKS5zdXBwb3J0c19sb2NhbF9jb21taXRzKCkKLSAgICAgICAgcmV0dXJuIFRydWUKLQot
ICAgICMgRklYTUU6IFRoaXMgbWF5IGJlIHVubmVjZXNzYXJ5IHNpbmNlIHdlIHBhc3MgZ2xvYmFs
IG9wdGlvbnMgdG8gYWxsIGNvbW1hbmRzIGR1cmluZyBleGVjdXRlKCkgYXMgd2VsbC4KLSAgICBk
ZWYgaGFuZGxlX2dsb2JhbF9vcHRpb25zKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICBpZiBvcHRp
b25zLmRyeV9ydW46Ci0gICAgICAgICAgICBzZWxmLnNjbSgpLmRyeXJ1biA9IFRydWUKLSAgICAg
ICAgICAgIHNlbGYuYnVncy5kcnlydW4gPSBUcnVlCi0gICAgICAgIGlmIG9wdGlvbnMuc3RhdHVz
X2hvc3Q6Ci0gICAgICAgICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIuc2V0X2hvc3Qob3B0aW9ucy5z
dGF0dXNfaG9zdCkKLSAgICAgICAgaWYgb3B0aW9ucy5pcmNfcGFzc3dvcmQ6Ci0gICAgICAgICAg
ICBzZWxmLl9pcmNfcGFzc3dvcmQgPSBvcHRpb25zLmlyY19wYXNzd29yZAotCi0gICAgZGVmIHNo
b3VsZF9leGVjdXRlX2NvbW1hbmQoc2VsZiwgY29tbWFuZCk6Ci0gICAgICAgIGlmIGNvbW1hbmQu
cmVxdWlyZXNfbG9jYWxfY29tbWl0cyBhbmQgbm90IHNlbGYuc2NtKCkuc3VwcG9ydHNfbG9jYWxf
Y29tbWl0cygpOgotICAgICAgICAgICAgZmFpbHVyZV9yZWFzb24gPSAiJXMgcmVxdWlyZXMgbG9j
YWwgY29tbWl0cyB1c2luZyAlcyBpbiAlcy4iICUgKGNvbW1hbmQubmFtZSwgc2VsZi5zY20oKS5k
aXNwbGF5X25hbWUoKSwgc2VsZi5zY20oKS5jaGVja291dF9yb290KQotICAgICAgICAgICAgcmV0
dXJuIChGYWxzZSwgZmFpbHVyZV9yZWFzb24pCi0gICAgICAgIHJldHVybiAoVHJ1ZSwgTm9uZSkK
</data>
<flag name="review"
          id="34877"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>