<?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>71957</bug_id>
          
          <creation_ts>2011-11-09 14:26:45 -0800</creation_ts>
          <short_desc>Add a script to auto-identify contributors&apos; area of expertise</short_desc>
          <delta_ts>2011-11-10 13:31:40 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>68061</dup_id>
          
          <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>68045</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dbates</cc>
    
    <cc>leandro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>499355</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-09 14:26:45 -0800</bug_when>
    <thetext>This is a continuation of https://bugs.webkit.org/show_bug.cgi?id=68045. We need a script to automatically identify area of expertise of contributors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499358</commentid>
    <comment_count>1</comment_count>
      <attachid>114368</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-09 14:28:57 -0800</bug_when>
    <thetext>Created attachment 114368
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499361</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-09 14:31:50 -0800</bug_when>
    <thetext>The biggest problem appears that identifying components itself is pretty hard. So I&apos;ve started writing a perceptron to identify components first. The current result:
Tools/Scripts/find-components Source/WebCore/ChangeLog-2010-12-06

                                           t=token, P(t in CL),  P(w=t|t in CL),     avg(dsclen), avg(cl w/ tests)
                                          platform,      0.291,           0.198,         337.335           0.997
                                         inspector,      0.096,           0.257,         245.535           0.987
                               inspector/front-end,      0.065,           0.195,         226.070           0.985
                                 platform/graphics,      0.149,           0.181,         377.699           0.996
                                              html,      0.167,           0.232,         427.783           0.997
                                                qt,      0.063,           0.147,         351.850           0.986
                                          bindings,      0.100,           0.156,         396.047           0.995
                                       bindings/v8,      0.055,           0.120,         362.581           0.990
                     inspector/front-end/inspector,      0.029,           0.090,         300.593           0.955
                                             panel,      0.027,           0.091,         271.861           0.917
                                           storage,      0.029,           0.226,         398.033           0.984
                                       html/canvas,      0.033,           0.178,         390.082           0.989
                                        controller,      0.057,           0.107,         382.814           0.991
                                  platform/network,      0.032,           0.161,         356.913           0.944
                              platform/graphics/qt,      0.038,           0.145,         390.050           0.983
                                       webcore.exp,      0.027,           0.345,         453.677           0.964
                                     accessibility,      0.021,           0.228,         421.102           0.989
                                              view,      0.038,           0.129,         389.899           0.985
                              html/htmltreebuilder,      0.030,           0.245,         368.190           0.900
                                              page,      0.090,           0.167,         461.797           0.996
                                              core,      0.106,           0.157,         469.860           0.993
                        platform/graphics/chromium,      0.029,           0.147,         399.797           0.975
                     inspector/inspectorcontroller,      0.029,           0.094,         338.750           0.929
                                               win,      0.027,           0.137,         383.163           0.958
...

I need to figure out a way to group these tokens together now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500214</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-10 13:31:40 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 68061 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114368</attachid>
            <date>2011-11-09 14:28:57 -0800</date>
            <delta_ts>2011-11-09 14:28:57 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>wip71957</filename>
            <type>text/plain</type>
            <size>13068</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZy5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9j
aGFuZ2Vsb2cucHkJKHJldmlzaW9uIDk5MzkxKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5CSh3b3JraW5nIGNvcHkpCkBAIC02OSwxMyArNjks
MTcgQEAKICAgICAjIGZpcnN0IGJ1ZyBVUkwgZm91bmQgYW55d2hlcmUgaW4gdGhlIG1lc3NhZ2Uu
CiAgICAgcmV0dXJuIHBhcnNlX2J1Z19pZChtZXNzYWdlKQogCitkZWYgX3JlbW92ZU1hdGNoZWRT
dWJzdHJpbmdzKHZhbHVlLCByZWdleHBMaXN0KToKKyAgICBmb3IgcmVnZXhwIGluIHJlZ2V4cExp
c3Q6CisgICAgICAgIHZhbHVlID0gcmUuY29tcGlsZShyZWdleHAsIHJlLk1VTFRJTElORSkuc3Vi
KCcnLCB2YWx1ZSkKKyAgICByZXR1cm4gdmFsdWUKIAogY2xhc3MgQ2hhbmdlTG9nRW50cnkob2Jq
ZWN0KToKICAgICAjIGUuZy4gMjAwOS0wNi0wMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5v
cmc+CiAgICAgZGF0ZV9saW5lX3JlZ2V4cCA9IHInXig/UDxkYXRlPlxkezR9LVxkezJ9LVxkezJ9
KVxzKyg/UDxuYW1lPi4rPylccys8KD9QPGVtYWlsPltePD5dKyk+JCcKIAogICAgICMgZS5nLiAq
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcDogSW1wbGVtZW50IEZvb0JhclF1
dXguCi0gICAgdG91Y2hlZF9maWxlc19yZWdleHAgPSByJ1xzKlwqXHMqKD9QPGZpbGU+LispXDon
CisgICAgdG91Y2hlZF9maWxlc19yZWdleHAgPSByJ15ccypcKlxzKig/UDxmaWxlPi4rPylcOicK
IAogICAgICMgZS5nLiBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KICAgICAjIChEaXNjYXJkIGV2
ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IHBlcmlvZCB0byBtYXRjaCBtb3JlIGludmFsaWQgbGlu
ZXMuKQpAQCAtODcsNiArOTEsMTMgQEAKICAgICAjIGUuZy4gZ2l0LXN2bi1pZDogaHR0cDovL3N2
bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0L3RydW5rQDk2MTYxIDI2OGY0NWNjLWNkMDkt
MDQxMC1hYjNjLWQ1MjY5MWI0ZGJmYwogICAgIHN2bl9pZF9yZWdleHAgPSByJ2dpdC1zdm4taWQ6
IGh0dHA6Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVua0AoP1A8c3ZuaWQ+
XGQrKSAnCiAKKyAgICAjIEZJWE1FOiB0aGlzIHNob3VsZCByZWFsbHkgYmUgY29uZmlnX3VybHMu
YnVnX3VybF9zaG9ydCBhbmQgY29uZmlnX3VybHMuYnVnX3VybF9sb25nCisgICAgYnVnX3VybF9y
ZWdleHAgPSByJ15ccypodHRwcz86Ly8uK1xkK1xzKiQnCisKKyAgICBmdW5jdGlvbl9uYW1lX3Jl
Z2V4cCA9IHInXG5ccypcKC4qXCk6JworICAgIAorICAgIHRlc3RzX2xpc3RfcmVnZXhwID0gcide
XHMqVGVzdHM/OlxzKig/UDx0ZXN0cz4oLnxcbikrKVxuXG4nCisKICAgICBkZWYgX19pbml0X18o
c2VsZiwgY29udGVudHMsIGNvbW1pdHRlcl9saXN0PUNvbW1pdHRlckxpc3QoKSk6CiAgICAgICAg
IHNlbGYuX2NvbnRlbnRzID0gY29udGVudHMKICAgICAgICAgc2VsZi5fY29tbWl0dGVyX2xpc3Qg
PSBjb21taXR0ZXJfbGlzdApAQCAtMTA5LDYgKzEyMCwxMiBAQAogCiAgICAgICAgIHNlbGYuX3Rv
dWNoZWRfZmlsZXMgPSByZS5maW5kYWxsKHNlbGYudG91Y2hlZF9maWxlc19yZWdleHAsIHNlbGYu
X2NvbnRlbnRzLCByZS5NVUxUSUxJTkUpCiAKKyAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goc2Vs
Zi50ZXN0c19saXN0X3JlZ2V4cCwgc2VsZi5fY29udGVudHMsIHJlLk1VTFRJTElORSkKKyAgICAg
ICAgc2VsZi5fdGVzdHMgPSBtYXRjaC5ncm91cCgndGVzdHMnKS5zcGxpdCgpIGlmIG1hdGNoIGVs
c2UgTm9uZQorCisgICAgICAgIHNlbGYuX2Rlc2NyaXB0aW9uID0gX3JlbW92ZU1hdGNoZWRTdWJz
dHJpbmdzKHNlbGYuX2NvbnRlbnRzLAorICAgICAgICAgICAgW3NlbGYuZGF0ZV9saW5lX3JlZ2V4
cCwgc2VsZi5idWdfdXJsX3JlZ2V4cCwgc2VsZi5yZXZpZXdlZF9ieV9yZWdleHAsIHNlbGYudGVz
dHNfbGlzdF9yZWdleHAsIHNlbGYudG91Y2hlZF9maWxlc19yZWdleHAsIHNlbGYuZnVuY3Rpb25f
bmFtZV9yZWdleHAsICdcblxuJ10pCisKICAgICBkZWYgYXV0aG9yX25hbWUoc2VsZik6CiAgICAg
ICAgIHJldHVybiBzZWxmLl9hdXRob3JfbmFtZQogCkBAIC0xMzUsNyArMTUyLDEyIEBACiAgICAg
ZGVmIHRvdWNoZWRfZmlsZXMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl90b3VjaGVkX2Zp
bGVzCiAKKyAgICBkZWYgZGVzY3JpcHRpb24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9k
ZXNjcmlwdGlvbgogCisgICAgZGVmIHRlc3RzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
dGVzdHMKKwogIyBGSVhNRTogVmFyaW91cyBtZXRob2RzIG9uIENoYW5nZUxvZyBzaG91bGQgbW92
ZSBpbnRvIENoYW5nZUxvZ0VudHJ5IGluc3RlYWQuCiBjbGFzcyBDaGFuZ2VMb2cob2JqZWN0KToK
IApJbmRleDogVG9vbHMvU2NyaXB0cy9maW5kLWNvbXBvbmVudHMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy9maW5kLWNvbXBvbmVudHMJKHJldmlzaW9uIDApCisrKyBUb29scy9TY3JpcHRz
L2ZpbmQtY29tcG9uZW50cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNTMgQEAKKyMhL3Vzci9i
aW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIwor
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisj
IGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisj
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIldyYXBwZXIgYXJvdW5kIHdlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IiIiCitpbXBvcnQgY29kZWNzCitp
bXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cworZnJvbSB3ZWJraXRweS5jb21tb24uY2hl
Y2tvdXQuY2hhbmdlbG9nIGltcG9ydCBDaGFuZ2VMb2cKKworZGVmIHRva2VuaXplX2ZpbGVfcGF0
aChmaWxlX3BhdGgpOgorICAgIHBhdGhfd2l0aG91dF9leHRlbnNpb24gPSBoZWFkID0gb3MucGF0
aC5zcGxpdGV4dChmaWxlX3BhdGgpWzBdCisgICAgdG9rZW5zID0gW10KKyAgICB3aGlsZSBUcnVl
OgorICAgICAgICB0b2tlbnMgKz0gW2hlYWRdCisgICAgICAgIGhlYWQsIHRhaWwgPSBvcy5wYXRo
LnNwbGl0KGhlYWQpCisgICAgICAgIGlmIG5vdCBsZW4oaGVhZCk6CisgICAgICAgICAgICBicmVh
aworICAgICMgRmlsZSBuYW1lIGlzIHNwZWNpYWwgZm9yIGNhc2VzIGxpa2Ugfn5HdGsuY3BwIG9y
IH5+VHlwZS5jcHAKKyAgICBpZiBsZW4odG9rZW5zKToKKyAgICAgICAgbSA9IHJlLm1hdGNoKHIn
KFtBLVowLTldK1thLXowLTldKj8pKyQnLCBvcy5wYXRoLnNwbGl0KHBhdGhfd2l0aG91dF9leHRl
bnNpb24pWzFdKQorICAgICAgICBpZiBtOgorICAgICAgICAgICAgcmV0dXJuIHRva2VucywgbS5n
cm91cCgxKQorICAgIHJldHVybiB0b2tlbnMsIE5vbmUKKworZGVmIF9hZGRfZW50cnkoZGljdGlv
bmFyeSwga2V5LCB2YWx1ZSk6CisgICAgaWYga2V5IG5vdCBpbiBkaWN0aW9uYXJ5OgorICAgICAg
ICBkaWN0aW9uYXJ5W2tleV0gPSBbXQorICAgIGRpY3Rpb25hcnlba2V5XSArPSBbdmFsdWVdCisK
K2RlZiBhdmVyYWdlKGxpc3QpOgorICAgIHJldHVybiBzdW0obGlzdCkgLyBsZW4obGlzdCkKKwor
Y2xhc3MgVG9rZW5MaXN0KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAg
ICBzZWxmLl90b2tlbl90b19lbnRyeSA9IHt9CisgICAgICAgIHNlbGYuX3Rva2VuX3RvX2ZyZXF1
ZW5jeSA9IHt9CisgICAgICAgIHNlbGYuX2xlbmd0aHNfb2ZfZGVzY3JpcHRpb25zID0ge30KKyAg
ICAgICAgc2VsZi5fbnVtYmVyX29mX2VudHJpZXMgPSAwCisgICAgICAgIHBhc3MKKworICAgIGRl
ZiBhZGRfdG9rZW5zX2Zvcl9lbnRyeShzZWxmLCB0b2tlbnMsIGVudHJ5KToKKyAgICAgICAgbG93
ZXJjYXNlZF90b2tlbnMgPSBbdG9rZW4ubG93ZXIoKSBmb3IgdG9rZW4gaW4gdG9rZW5zXQorICAg
ICAgICBmb3IgdG9rZW4gaW4gc2V0KGxvd2VyY2FzZWRfdG9rZW5zKToKKyAgICAgICAgICAgIF9h
ZGRfZW50cnkoc2VsZi5fdG9rZW5fdG9fZW50cnksIHRva2VuLCBlbnRyeSkKKyAgICAgICAgICAg
IF9hZGRfZW50cnkoc2VsZi5fdG9rZW5fdG9fZnJlcXVlbmN5LCB0b2tlbiwgZmxvYXQobG93ZXJj
YXNlZF90b2tlbnMuY291bnQodG9rZW4pKSAvIGxlbihsb3dlcmNhc2VkX3Rva2VucykpCisgICAg
ICAgICAgICBfYWRkX2VudHJ5KHNlbGYuX2xlbmd0aHNfb2ZfZGVzY3JpcHRpb25zLCB0b2tlbiwg
bGVuKGVudHJ5LmRlc2NyaXB0aW9uKCkpKQorICAgICAgICBzZWxmLl9udW1iZXJfb2ZfZW50cmll
cyArPSAxCisKKyAgICBkZWYgaGFzX2VudHJ5KHNlbGYsIHRva2VuKToKKyAgICAgICAgcmV0dXJu
IHRva2VuIGluIHNlbGYuX3Rva2VuX3RvX2VudHJ5CisKKyAgICBkZWYgY291bnRfZW50cmllc193
aXRoX3Rva2VuKHNlbGYsIHRva2VuKToKKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLl90b2tlbl90
b19lbnRyeVt0b2tlbl0pCisKKyAgICBkZWYgZnJlcXVlbmN5X2luX2NoYW5nZXNldF9naXZlbl90
b2tlbl9pc19wcmVzZW50KHNlbGYsIHRva2VuKToKKyAgICAgICAgcmV0dXJuIGF2ZXJhZ2Uoc2Vs
Zi5fdG9rZW5fdG9fZnJlcXVlbmN5W3Rva2VuXSkKKworICAgIGRlZiBhdmVyYWdlX2Rlc2NyaXB0
aW9uX2xlbmd0aChzZWxmLCB0b2tlbik6CisgICAgICAgIHRvdGFsTGVuLCB0b3RhbENvdW50ID0g
cmVkdWNlKGxhbWJkYSByZXN1bHQsIGl0ZW06IChyZXN1bHRbMF0gKyBpdGVtWzBdLCByZXN1bHRb
MV0gKyBpdGVtWzFdKSwgWyhzdW0obGVucyksIGxlbihsZW5zKSkgZm9yIGxlbnMgaW4gc2VsZi5f
bGVuZ3Roc19vZl9kZXNjcmlwdGlvbnMudmFsdWVzKCldLCBbMCwgMF0pCisgICAgICAgIHRvdGFs
X2F2ZXJhZ2UgPSBmbG9hdCh0b3RhbExlbikgLyB0b3RhbENvdW50CisKKyMgICAgICAgIGRlc2Nf
bG9uZ2VyX3RoYW5fYXZnID0gMAorIyAgICAgICAgZm9yIGxlbnMgaW4gc2VsZi5fbGVuZ3Roc19v
Zl9kZXNjcmlwdGlvbnMudmFsdWVzKCk6CisjICAgICAgICAgICAgZGVzY19sb25nZXJfdGhhbl9h
dmcgKz0gc3VtKDEgZm9yIGxlbmd0aCBpbiBsZW5zIGlmIGxlbmd0aCA+IHRvdGFsX2F2ZXJhZ2Up
CisjICAgICAgICBhdmdfcHJvYiA9IGZsb2F0KGRlc2NfbG9uZ2VyX3RoYW5fYXZnKSAvIHRvdGFs
Q291bnQKKyMgICAgICAgIGsgPSAxMAorIyAgICAgICAgYXZnX3Byb2IgPSAwLjMgIyBGSVhNRQor
IyAgICAgICAgcmV0dXJuIChzdW0oWzEgZm9yIGxlbmd0aCBpbiBzZWxmLl9sZW5ndGhzX29mX2Rl
c2NyaXB0aW9uc1t0b2tlbl0gaWYgbGVuZ3RoID4gdG90YWxfYXZlcmFnZV0pICsgYXZnX3Byb2Iq
aykgLyAobGVuKHNlbGYuX2xlbmd0aHNfb2ZfZGVzY3JpcHRpb25zW3Rva2VuXSkgKyBrKQorIyAg
ICAgICAgcmV0dXJuIChzdW0oc2VsZi5fbGVuZ3Roc19vZl9kZXNjcmlwdGlvbnNbdG9rZW5dKSAr
IHRvdGFsX2F2ZXJhZ2UgKiBrKSAvIChsZW4oc2VsZi5fbGVuZ3Roc19vZl9kZXNjcmlwdGlvbnNb
dG9rZW5dKSArIGspCisKKyAgICAgICAgayA9IDUwCisgICAgICAgIHJldHVybiAoc3VtKHNlbGYu
X2xlbmd0aHNfb2ZfZGVzY3JpcHRpb25zW3Rva2VuXSkgKyB0b3RhbF9hdmVyYWdlICogaykgLyAo
bGVuKHNlbGYuX2xlbmd0aHNfb2ZfZGVzY3JpcHRpb25zW3Rva2VuXSkgKyBrKQorCisjICAgICAg
ICByZXR1cm4gYXZlcmFnZV93aXRoX2xhcGFsY2Vfc21vb3RoaW5nKHNlbGYuX2xlbmd0aHNfb2Zf
ZGVzY3JpcHRpb25zW3Rva2VuXSwgNSkKKyMgICAgICAgIHByaW50IHNlbGYuX2xlbmd0aF9vZl9k
ZXNjcmlwdGlvblt0b2tlbl0sIG1heChzZWxmLl9sZW5ndGhfb2ZfZGVzY3JpcHRpb24udmFsdWVz
KCkpCisjICAgICAgICByZXR1cm4gc3VtKHNlbGYuX2xlbmd0aF9vZl9kZXNjcmlwdGlvblt0b2tl
bl0gPCBhdmVyYWdlKHNlbGYuX2xlbmd0aF9vZl9kZXNjcmlwdGlvbikpCisKKyAgICBkZWYgYXZl
cmFnZV9udW1iZXJfb2ZfY2hhbmdlc2V0c193aXRoX3Rlc3RzKHNlbGYsIHRva2VuKToKKyMgICAg
ICAgIHRvdGFsX3Rlc3RzLCB0b3RhbF9jb3VudCA9IHJlZHVjZShsYW1iZGEgcmVzdWx0LCBpdGVt
OiAocmVzdWx0WzBdICsgaXRlbVswXSwgcmVzdWx0WzFdICsgaXRlbVsxXSksIFsxIGZvciBlbnRy
eSBpbiBzZWxmLl90b2tlbl90b19lbnRyeVt0b2tlbl0gaWYgZW50cnkudGVzdHMoKV0sIFswLCAw
XSkKKyMgICAgICAgIHRvdGFsX2F2ZXJhZ2UgPSBmbG9hdCh0b3RhbF90ZXN0cykgLyB0b3RhbF9j
b3VudAorCisgICAgICAgIHRlc3RzID0gWzEgZm9yIGVudHJ5IGluIHNlbGYuX3Rva2VuX3RvX2Vu
dHJ5W3Rva2VuXSBpZiBlbnRyeS50ZXN0cygpXQorICAgICAgICBrID0gMQorICAgICAgICB0b3Rh
bF9hdmVyYWdlID0gMC41CisgICAgICAgIHJldHVybiAoc3VtKHRlc3RzKSArIHRvdGFsX2F2ZXJh
Z2UgKiBrKSAvIChsZW4odGVzdHMpICsgaykKKworICAgIGRlZiBzb3J0X2J5KHNlbGYsIGZ1bmN0
aW9uKToKKyAgICAgICAgcmV0dXJuIHNvcnRlZChzZWxmLl90b2tlbl90b19lbnRyeSwga2V5PWZ1
bmN0aW9uLCByZXZlcnNlPVRydWUpCisKK2RlZiBwcmludF90b2tlbl90YWJsZSh0b2tlbnMsIHRv
a2VuX2xpc3QsIHRpdGxlPU5vbmUpOgorICAgIGlmIHRpdGxlOgorICAgICAgICBwcmludCB0aXRs
ZQorICAgIHByaW50ICIlMDUwcywgJTAxMHMsICUwMTVzLCAlMDE1cywgJTAxNXMiICUgKCd0PXRv
a2VuJywgJ1AodCBpbiBDTCknLCAnUCh3PXR8dCBpbiBDTCknLCAnYXZnKGRzY2xlbiknLCAnYXZn
KGNsIHcvIHRlc3RzKScpIywgcmV2aWV3ZXJzCisKKyAgICBmb3IgdG9rZW4gaW4gdG9rZW5fbGlz
dDoKKyAgICAgICAgZnJlcXVlbmN5ID0gZmxvYXQodG9rZW5zLmNvdW50X2VudHJpZXNfd2l0aF90
b2tlbih0b2tlbikpIC8gbAorICAgICAgICBmcmVxdWVuY3lfaW5fY2hhbmdlc2V0ID0gdG9rZW5z
LmZyZXF1ZW5jeV9pbl9jaGFuZ2VzZXRfZ2l2ZW5fdG9rZW5faXNfcHJlc2VudCh0b2tlbikKKyAg
ICAgICAgbGVuZ3RoID0gdG9rZW5zLmF2ZXJhZ2VfZGVzY3JpcHRpb25fbGVuZ3RoKHRva2VuKQor
ICAgICAgICB0ZXN0cyA9IHRva2Vucy5hdmVyYWdlX251bWJlcl9vZl9jaGFuZ2VzZXRzX3dpdGhf
dGVzdHModG9rZW4pCisgICAgICAgIHByaW50ICIlMDUwcywgJTEwLjNmLCAlMTUuM2YsICUxNS4z
ZiAlMTUuM2YiICUgKHRva2VuLCBmcmVxdWVuY3ksIGZyZXF1ZW5jeV9pbl9jaGFuZ2VzZXQsIGxl
bmd0aCwgdGVzdHMpIywgcmV2aWV3ZXJzCisKK2RlZiBkb3RfcHJvZHVjdCh2MSwgdjIpOgorICAg
IHJldHVybiBzdW0odmFsdWUgKiB2MltpbmRleF0gZm9yIGluZGV4LCB2YWx1ZSBpbiBlbnVtZXJh
dGUodjEpKQorCitkZWYgZmVhdHVyZSh0b2tlbnMsIHRva2VuKToKKyAgICAjIEZJWE1FOiBjb21w
dXRlIGF2ZworICAgIHJldHVybiBbZmxvYXQodG9rZW5zLmNvdW50X2VudHJpZXNfd2l0aF90b2tl
bih0b2tlbikpIC8gbCwKKyAgICAgICAgdG9rZW5zLmZyZXF1ZW5jeV9pbl9jaGFuZ2VzZXRfZ2l2
ZW5fdG9rZW5faXNfcHJlc2VudCh0b2tlbiksCisgICAgICAgIHRva2Vucy5hdmVyYWdlX2Rlc2Ny
aXB0aW9uX2xlbmd0aCh0b2tlbikgLyAxMDAwLAorICAgICAgICB0b2tlbnMuYXZlcmFnZV9udW1i
ZXJfb2ZfY2hhbmdlc2V0c193aXRoX3Rlc3RzKHRva2VuKV0KKworaWYgX19uYW1lX18gPT0gJ19f
bWFpbl9fJzoKKyAgICBpZiBsZW4oc3lzLmFyZ3YpIDw9IDE6CisgICAgICAgIHByaW50ICdQbGVh
c2Ugc3BlY2lmeSBhIGZpbGUgbmFtZScKKyAgICAgICAgc3lzLmV4aXQoMSkKKyAgICBlbHNlOgor
ICAgICAgICBwcmludCBzeXMuYXJndlsxXQorICAgICAgICBrZXl3b3JkID0gTm9uZQorICAgICAg
ICBpZiBsZW4oc3lzLmFyZ3YpID49IDM6CisgICAgICAgICAgICBrZXl3b3JkID0gc3lzLmFyZ3Zb
Ml0ubG93ZXIoKQorICAgICAgICBjaGFuZ2Vsb2dfZmlsZSA9IGNvZGVjcy5vcGVuKHN5cy5hcmd2
WzFdLCAiciIsICJ1dGYtOCIpCisgICAgICAgIGVudHJpZXMgPSBDaGFuZ2VMb2cucGFyc2VfZW50
cmllc19mcm9tX2ZpbGUoY2hhbmdlbG9nX2ZpbGUpCisKKyAgICAgICAgbCA9IDAKKyAgICAgICAg
dG9rZW5zID0gVG9rZW5MaXN0KCkKKyAgICAgICAgZGVzY3JpcHRpb25fdG9rZW5zID0ge30KKyAg
ICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICBsICs9IDEKKyAgICAgICAg
ICAgIGZpbGVfdG9rZW5zID0gW10KKyAgICAgICAgICAgIGZvciBmaWxlX3BhdGggaW4gZW50cnku
dG91Y2hlZF9maWxlcygpOgorICAgICAgICAgICAgICAgIHRva2VuaXplZF9maWxlX3BhdGgsIHN1
ZmZpeCA9IHRva2VuaXplX2ZpbGVfcGF0aChmaWxlX3BhdGgpCisgICAgICAgICAgICAgICAgZmls
ZV90b2tlbnMgKz0gdG9rZW5pemVkX2ZpbGVfcGF0aAorICAgICAgICAgICAgICAgIGlmIHN1ZmZp
eDogZmlsZV90b2tlbnMgKz0gW3N1ZmZpeF0KKworIyAgICAgICAgICAgIHByaW50IGVudHJ5Ll9j
b250ZW50cworIyAgICAgICAgICAgIHByaW50IGZpbGVfdG9rZW5zCisgICAgICAgICAgICB0b2tl
bnMuYWRkX3Rva2Vuc19mb3JfZW50cnkoZmlsZV90b2tlbnMsIGVudHJ5KQorCisgICAgICAgICAg
ICBmb3IgdG9rZW4gaW4gZW50cnkuZGVzY3JpcHRpb24oKS5zcGxpdCgpOgorICAgICAgICAgICAg
ICAgIGlmIHRva2VuIG5vdCBpbiBkZXNjcmlwdGlvbl90b2tlbnM6CisgICAgICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uX3Rva2Vuc1t0b2tlbl0gPSBzZXQoKQorICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uX3Rva2Vuc1t0b2tlbl0uYWRkKGVudHJ5KQorIyAgICAgICAgICAgIGRlc2NyaXB0
aW9uX3Rva2VucyA9IGVudHJ5LmRlc2NyaXB0aW9uKCkuc3BsaXQoKQorIyAgICAgICAgICAgIGlm
IGwgPj0gMjA6CisjICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgcHJpbnRfdG9rZW5f
dGFibGUodG9rZW5zLCB0b2tlbnMuc29ydF9ieShsYW1iZGEga2V5OiB0b2tlbnMuY291bnRfZW50
cmllc193aXRoX3Rva2VuKGtleSkpWzA6MjBdLCAnVG9rZW5zIHNvcnRlZCBieSBQKHQgaW4gQ0wp
JykKKworICAgICAgICBwcmludCAnLScgKiAxMDAKKworICAgICAgICBwcmludF90b2tlbl90YWJs
ZSh0b2tlbnMsIHRva2Vucy5zb3J0X2J5KGxhbWJkYSBrZXk6IHRva2Vucy5mcmVxdWVuY3lfaW5f
Y2hhbmdlc2V0X2dpdmVuX3Rva2VuX2lzX3ByZXNlbnQoa2V5KSlbMDoyMF0sICdUb2tlbnMgc29y
dGVkIGJ5IFAodz10fHQgaW4gQ0wpJykKKworICAgICAgICBwcmludCAnLScgKiAxMDAKKworICAg
ICAgICBwcmludF90b2tlbl90YWJsZSh0b2tlbnMsIHRva2Vucy5zb3J0X2J5KGxhbWJkYSBrZXk6
IHRva2Vucy5hdmVyYWdlX2Rlc2NyaXB0aW9uX2xlbmd0aChrZXkpKVswOjIwXSwgJ1Rva2VucyBz
b3J0ZWQgYnkgYXZnKGRzY2xlbiknKQorCisgICAgICAgIHByaW50ICctJyAqIDEwMAorCisgICAg
ICAgIHByaW50X3Rva2VuX3RhYmxlKHRva2VucywgdG9rZW5zLnNvcnRfYnkobGFtYmRhIGtleTog
dG9rZW5zLmF2ZXJhZ2VfbnVtYmVyX29mX2NoYW5nZXNldHNfd2l0aF90ZXN0cyhrZXkpKVswOjIw
XSwgJ1Rva2VucyBzb3J0ZWQgYnkgYXZnTih0ZXN0cyknKQorCisgICAgICAgIHByaW50ICctJyAq
IDEwMAorCisgICAgICAgIHByZWRlZmluZWRfdG9rZW5zID0geworICAgICAgICAgICAgJ3JlbmRl
cmluZyc6IFRydWUsCisgICAgICAgICAgICAnY3NzJzogVHJ1ZSwKKyAgICAgICAgICAgICdkb20n
OiBUcnVlLAorICAgICAgICAgICAgJ2VkaXRpbmcnOiBUcnVlLAorICAgICAgICAgICAgJ2Nocm9t
aXVtJzogVHJ1ZSwKKyAgICAgICAgICAgICdmZWF0dXJlcyc6IEZhbHNlLAorICAgICAgICAgICAg
J3AycCc6IEZhbHNlLAorICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogRmFsc2UsCisgICAg
ICAgICAgICAnd2ViY29yZS5leHAnOiBGYWxzZSwKKyAgICAgICAgICAgICdlZGl0aW5nL3Zpc2li
bGVfdW5pdHMnOiBGYWxzZSwKKyAgICAgICAgICAgICdpbnNwZWN0b3InOiBUcnVlLAorICAgICAg
ICAgICAgJ2NvcmUnOiBGYWxzZSwKKyAgICAgICAgICAgICd2aWV3JzogRmFsc2UsCisgICAgICAg
ICAgICAnY21ha2VsaXN0cyc6IEZhbHNlLAorICAgICAgICAgICAgJ3dlYmNvcmUueGNvZGVwcm9q
L3Byb2plY3QnOiBGYWxzZSwKKyAgICAgICAgICAgICd3ZWJjb3JlLnhjb2RlcHJvaic6IEZhbHNl
LAorICAgICAgICAgICAgJ3NoYXJlZCc6IEZhbHNlLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9y
ZW5kZXJmbGV4aWJsZWJveCc6IEZhbHNlLAorICAgICAgICAgICAgJ2h0bWwnOiBUcnVlLAorICAg
ICAgICAgICAgJ2xvYWRlcic6IFRydWUsCisgICAgICAgIH0KKyAgICAgICAgcHJpbnRfdG9rZW5f
dGFibGUodG9rZW5zLCBbdG9rZW4gZm9yIHRva2VuIGluIHByZWRlZmluZWRfdG9rZW5zLmtleXMo
KSBpZiB0b2tlbnMuaGFzX2VudHJ5KHRva2VuKV0sICdQcmVkZWZpbmVkIHRva2VucycpCisKKyAg
ICAgICAgbm9pc2VfdG9rZW5zID0gKCkKKworICAgICAgICAjIE5haXZlIFBlcmNlcHRyb24KKyAg
ICAgICAgd2VpZ2h0cyA9IFswLCAwLCAwLCAwXQorICAgICAgICB0aHJlc2hvbGQgPSAwLjEKKwor
ICAgICAgICBmb3IgdG9rZW4sIGRlZmluZXNfY29tcG9uZW50IGluIHByZWRlZmluZWRfdG9rZW5z
Lml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3QgdG9rZW5zLmhhc19lbnRyeSh0b2tlbik6IGNv
bnRpbnVlCisgICAgICAgICAgICBmID0gZmVhdHVyZSh0b2tlbnMsIHRva2VuKQorICAgICAgICAg
ICAgdiA9IGRvdF9wcm9kdWN0KGYsIHdlaWdodHMpCisgICAgICAgICAgICBpZiBkZWZpbmVzX2Nv
bXBvbmVudCAhPSAodiA+IHRocmVzaG9sZCk6CisgICAgICAgICAgICAgICAgZmFjdG9yID0gMSBp
ZiBkZWZpbmVzX2NvbXBvbmVudCBlbHNlIC0xCisgICAgICAgICAgICAgICAgcHJpbnQgJ2NvcnJl
Y3Rpb24hJywgd2VpZ2h0cywgdG9rZW4sIGZhY3RvciwgZgorICAgICAgICAgICAgICAgIGZvciBp
bmRleCwgdmFsdWUgaW4gZW51bWVyYXRlKHdlaWdodHMpOgorICAgICAgICAgICAgICAgICAgICB3
ZWlnaHRzW2luZGV4XSArPSBmYWN0b3IgKiBmW2luZGV4XQorCisgICAgICAgIHByaW50ICdXZWln
aHRzOicsIHdlaWdodHMKKworICAgICAgICBwcmludF90b2tlbl90YWJsZSh0b2tlbnMsIHRva2Vu
cy5zb3J0X2J5KGxhbWJkYSB0b2tlbjogZG90X3Byb2R1Y3Qod2VpZ2h0cywgZmVhdHVyZSh0b2tl
bnMsIHRva2VuKSkpWzA6NTBdLCAnVG9rZW5zIHNvcnRlZCBieSBQZXJjZXB0cm9uJykKKworCisK
KworCisKKworCisKKworCisKKworCisKKworCisKKworCisKClByb3BlcnR5IGNoYW5nZXMgb246
IFRvb2xzL1NjcmlwdHMvZmluZC1jb21wb25lbnRzCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVj
dXRhYmxlCiAgICsgKgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>