<?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>34408</bug_id>
          
          <creation_ts>2010-01-31 22:03:15 -0800</creation_ts>
          <short_desc>check-webkit-style: Separate the filter code into a separate file</short_desc>
          <delta_ts>2010-02-02 07:29:08 -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>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>33684</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186300</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-31 22:03:15 -0800</bug_when>
    <thetext>This is preparatory refactoring for--

https://bugs.webkit.org/show_bug.cgi?id=33684

(In the fix for bug 33684, we will be introducing another filter-related class into this new file.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186751</commentid>
    <comment_count>1</comment_count>
      <attachid>47897</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-01 18:34:21 -0800</bug_when>
    <thetext>Created attachment 47897
Proposed patch

This is just moving code.  cq- since I may need to rebase after the following goes in--

https://bugs.webkit.org/show_bug.cgi?id=34260

(I&apos;d like to wait until that one goes in before committing this one.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186819</commentid>
    <comment_count>2</comment_count>
      <attachid>47907</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-01 22:55:20 -0800</bug_when>
    <thetext>Created attachment 47907
Proposed patch

After rebasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186953</commentid>
    <comment_count>3</comment_count>
      <attachid>47907</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-02 07:29:01 -0800</bug_when>
    <thetext>Comment on attachment 47907
Proposed patch

Clearing flags on attachment: 47907

Committed r54234: &lt;http://trac.webkit.org/changeset/54234&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186954</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-02 07:29:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47897</attachid>
            <date>2010-02-01 18:34:21 -0800</date>
            <delta_ts>2010-02-01 22:55:20 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-34408-1.txt</filename>
            <type>text/plain</type>
            <size>16300</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3MzkyODMwLi43NzdlNjBiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDIt
MDEgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgZmlsdGVyLXJlbGF0ZWQg
Y2hlY2std2Via2l0LXN0eWxlIGNvZGUgaW50byBhIHNlcGFyYXRlCisgICAgICAgIGZpbHRlciBt
b2R1bGUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0NDA4CisKKyAgICAgICAgVGhpcyBpcyBwcmVwYXJhdG9yeSByZWZhY3RvcmluZyBmb3IgQnVn
IDMzNjg0LCB3aGljaCB3aWxsIGFsbG93CisgICAgICAgIGZpbGUgYW5kIGZvbGRlci1zcGVjaWZp
YyBmaWx0ZXIgcnVsZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXIucHk6CisgICAgICAgICAgLSBSZW1vdmVkIENhdGVnb3J5RmlsdGVyIGNsYXNzIChtb3ZlZCB0
byBmaWx0ZXIucHkpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
X3VuaXR0ZXN0LnB5OgorICAgICAgICAgIC0gUmVtb3ZlZCBDYXRlZ29yeUZpbHRlciB1bml0IHRl
c3RzIChtb3ZlZCB0byBmaWx0ZXJfdW5pdHRlc3QucHkpLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9maWx0ZXIucHk6IEFkZGVkLgorICAgICAgICAgIC0gQWRkZWQgQ2F0ZWdv
cnlGaWx0ZXIgY2xhc3MgKG1vdmVkIGZyb20gY2hlY2tlci5weSkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgICAg
LSBBZGRlZCBDYXRlZ29yeUZpbHRlciB1bml0IHRlc3RzIChtb3ZlZCBmcm9tIGNoZWNrZXJfdW5p
dHRlc3QucHkpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS91bml0dGVzdHMu
cHk6CisgICAgICAgICAgLSBBZGRlZCByZWZlcmVuY2UgdG8gZmlsdGVyX3VuaXR0ZXN0LnB5Lgor
CiAyMDEwLTAyLTAxICBEaWVnbyBHb256YWxleiAgPGRpZWdvLmdvbnphbGV6QG9wZW5ib3NzYS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggZmFm
OTU0Zi4uYjJkZTFlMiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQpAQCAtMzcsNiArMzcsNyBAQCBpbXBvcnQgc3lzCiBmcm9tIC4uIHN0eWxlX3Jl
ZmVyZW5jZXMgaW1wb3J0IHBhcnNlX3BhdGNoCiBmcm9tIGVycm9yX2hhbmRsZXJzIGltcG9ydCBE
ZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIKIGZyb20gZXJyb3JfaGFuZGxlcnMgaW1wb3J0IFBhdGNo
U3R5bGVFcnJvckhhbmRsZXIKK2Zyb20gZmlsdGVyIGltcG9ydCBDYXRlZ29yeUZpbHRlcgogZnJv
bSBwcm9jZXNzb3JzLmNwcCBpbXBvcnQgQ3BwUHJvY2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMudGV4
dCBpbXBvcnQgVGV4dFByb2Nlc3NvcgogCkBAIC0xOTEsNzkgKzE5Miw2IEBAIFN5bnRheDogJShw
cm9ncmFtX25hbWUpcyBbLS12ZXJib3NlPSNdIFstLWdpdC1jb21taXQ9PFNpbmdsZUNvbW1pdD5d
IFstLW91dHB1dD12CiAgICAgcmV0dXJuIHVzYWdlCiAKIAotY2xhc3MgQ2F0ZWdvcnlGaWx0ZXIo
b2JqZWN0KToKLQotICAgICIiIkZpbHRlcnMgd2hldGhlciB0byBjaGVjayBzdHlsZSBjYXRlZ29y
aWVzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbHRlcl9ydWxlcz1Ob25lKToKLSAg
ICAgICAgIiIiQ3JlYXRlIGEgY2F0ZWdvcnkgZmlsdGVyLgotCi0gICAgICAgIFRoaXMgbWV0aG9k
IHBlcmZvcm1zIGFyZ3VtZW50IHZhbGlkYXRpb24gYnV0IGRvZXMgbm90IHN0cmlwCi0gICAgICAg
IGxlYWRpbmcgb3IgdHJhaWxpbmcgd2hpdGUgc3BhY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICBmaWx0ZXJfcnVsZXM6IEEgbGlzdCBvZiBzdHJpbmdzIHRoYXQgYXJlIGZpbHRlciBydWxl
cywgd2hpY2gKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBzdHJpbmdzIGJlZ2lubmluZyB3
aXRoIHRoZSBwbHVzIG9yIG1pbnVzCi0gICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2wgKCsv
LSkuIFRoZSBsaXN0IHNob3VsZCBpbmNsdWRlIGFueQotICAgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdCBmaWx0ZXIgcnVsZXMgYXQgdGhlIGJlZ2lubmluZy4KLSAgICAgICAgICAgICAgICAg
ICAgICAgIERlZmF1bHRzIHRvIHRoZSBlbXB0eSBsaXN0LgotCi0gICAgICAgIFJhaXNlczoKLSAg
ICAgICAgICBWYWx1ZUVycm9yOiBJbnZhbGlkIGZpbHRlciBydWxlIGlmIGEgcnVsZSBkb2VzIG5v
dCBzdGFydCB3aXRoCi0gICAgICAgICAgICAgICAgICAgICAgcGx1cyAoIisiKSBvciBtaW51cyAo
Ii0iKS4KLQotICAgICAgICAiIiIKLSAgICAgICAgaWYgZmlsdGVyX3J1bGVzIGlzIE5vbmU6Ci0g
ICAgICAgICAgICBmaWx0ZXJfcnVsZXMgPSBbXQotCi0gICAgICAgIGZvciBydWxlIGluIGZpbHRl
cl9ydWxlczoKLSAgICAgICAgICAgIGlmIG5vdCAocnVsZS5zdGFydHN3aXRoKCcrJykgb3IgcnVs
ZS5zdGFydHN3aXRoKCctJykpOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0lu
dmFsaWQgZmlsdGVyIHJ1bGUgIiVzIjogZXZlcnkgcnVsZSAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAncnVsZSBpbiB0aGUgLS1maWx0ZXIgZmxhZyBtdXN0IHN0YXJ0ICcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aXRoICsgb3IgLS4nICUgcnVsZSkKLQot
ICAgICAgICBzZWxmLl9maWx0ZXJfcnVsZXMgPSBmaWx0ZXJfcnVsZXMKLSAgICAgICAgc2VsZi5f
c2hvdWxkX2NoZWNrX2NhdGVnb3J5ID0ge30gIyBDYWNoZWQgZGljdGlvbmFyeSBvZiBjYXRlZ29y
eSB0byBUcnVlL0ZhbHNlCi0KLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJu
ICIsIi5qb2luKHNlbGYuX2ZpbHRlcl9ydWxlcykKLQotICAgICMgVXNlZnVsIGZvciB1bml0IHRl
c3RpbmcuCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgICIiIlJldHVybiB3
aGV0aGVyIHRoaXMgQ2F0ZWdvcnlGaWx0ZXIgaW5zdGFuY2UgaXMgZXF1YWwgdG8gYW5vdGhlci4i
IiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbHRlcl9ydWxlcyA9PSBvdGhlci5fZmlsdGVyX3J1
bGVzCi0KLSAgICAjIFVzZWZ1bCBmb3IgdW5pdCB0ZXN0aW5nLgotICAgIGRlZiBfX25lX18oc2Vs
Ziwgb3RoZXIpOgotICAgICAgICAjIFB5dGhvbiBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IGRlZHVj
ZSBmcm9tIF9fZXFfXygpLgotICAgICAgICByZXR1cm4gbm90IChzZWxmID09IG90aGVyKQotCi0g
ICAgZGVmIHNob3VsZF9jaGVjayhzZWxmLCBjYXRlZ29yeSk6Ci0gICAgICAgICIiIlJldHVybiB3
aGV0aGVyIHRoZSBjYXRlZ29yeSBzaG91bGQgYmUgY2hlY2tlZC4KLQotICAgICAgICBUaGUgcnVs
ZXMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBjYXRlZ29yeSBzaG91bGQgYmUgY2hlY2tlZAot
ICAgICAgICBhcmUgYXMgZm9sbG93cy4gQnkgZGVmYXVsdCBhbGwgY2F0ZWdvcmllcyBzaG91bGQg
YmUgY2hlY2tlZC4KLSAgICAgICAgVGhlbiBhcHBseSB0aGUgZmlsdGVyIHJ1bGVzIGluIG9yZGVy
IGZyb20gZmlyc3QgdG8gbGFzdCwgd2l0aAotICAgICAgICBsYXRlciBmbGFncyB0YWtpbmcgcHJl
Y2VkZW5jZS4KLQotICAgICAgICBBIGZpbHRlciBydWxlIGFwcGxpZXMgdG8gYSBjYXRlZ29yeSBp
ZiB0aGUgc3RyaW5nIGFmdGVyIHRoZQotICAgICAgICBsZWFkaW5nIHBsdXMvbWludXMgKCsvLSkg
bWF0Y2hlcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjYXRlZ29yeQotICAgICAgICBuYW1lLiBBIHBs
dXMgKCspIG1lYW5zIHRoZSBjYXRlZ29yeSBzaG91bGQgYmUgY2hlY2tlZCwgd2hpbGUgYQotICAg
ICAgICBtaW51cyAoLSkgbWVhbnMgdGhlIGNhdGVnb3J5IHNob3VsZCBub3QgYmUgY2hlY2tlZC4K
LQotICAgICAgICAiIiIKLSAgICAgICAgaWYgY2F0ZWdvcnkgaW4gc2VsZi5fc2hvdWxkX2NoZWNr
X2NhdGVnb3J5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Nob3VsZF9jaGVja19jYXRlZ29y
eVtjYXRlZ29yeV0KLQotICAgICAgICBzaG91bGRfY2hlY2sgPSBUcnVlICMgQWxsIGNhdGVnb3Jp
ZXMgY2hlY2tlZCBieSBkZWZhdWx0LgotICAgICAgICBmb3IgcnVsZSBpbiBzZWxmLl9maWx0ZXJf
cnVsZXM6Ci0gICAgICAgICAgICBpZiBub3QgY2F0ZWdvcnkuc3RhcnRzd2l0aChydWxlWzE6XSk6
Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHNob3VsZF9jaGVjayA9IHJ1
bGUuc3RhcnRzd2l0aCgnKycpCi0gICAgICAgIHNlbGYuX3Nob3VsZF9jaGVja19jYXRlZ29yeVtj
YXRlZ29yeV0gPSBzaG91bGRfY2hlY2sgIyBVcGRhdGUgY2FjaGUuCi0gICAgICAgIHJldHVybiBz
aG91bGRfY2hlY2sKLQotCiAjIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBoYXZlIGtub3dsZWRnZSBv
ZiB0aGUgZmxhZyBrZXkgbmFtZXMuCiBjbGFzcyBQcm9jZXNzb3JPcHRpb25zKG9iamVjdCk6CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91
bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91
bml0dGVzdC5weQppbmRleCA0ZDZiMmU3Li5mODY3YmE0IDEwMDc1NQotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CkBAIC0zNyw2
NyArMzcsMTMgQEAKIGltcG9ydCB1bml0dGVzdAogCiBpbXBvcnQgY2hlY2tlciBhcyBzdHlsZQot
ZnJvbSBjaGVja2VyIGltcG9ydCBDYXRlZ29yeUZpbHRlcgogZnJvbSBjaGVja2VyIGltcG9ydCBQ
cm9jZXNzb3JEaXNwYXRjaGVyCiBmcm9tIGNoZWNrZXIgaW1wb3J0IFByb2Nlc3Nvck9wdGlvbnMK
IGZyb20gY2hlY2tlciBpbXBvcnQgU3R5bGVDaGVja2VyCitmcm9tIGZpbHRlciBpbXBvcnQgQ2F0
ZWdvcnlGaWx0ZXIKIGZyb20gcHJvY2Vzc29ycy5jcHAgaW1wb3J0IENwcFByb2Nlc3NvcgogZnJv
bSBwcm9jZXNzb3JzLnRleHQgaW1wb3J0IFRleHRQcm9jZXNzb3IKIAotY2xhc3MgQ2F0ZWdvcnlG
aWx0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgICIiIlRlc3RzIENhdGVnb3J5Rmls
dGVyIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfaW5pdChzZWxmKToKLSAgICAgICAgIiIiVGVz
dCBfX2luaXRfXyBjb25zdHJ1Y3Rvci4iIiIKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwgQ2F0ZWdvcnlGaWx0ZXIsIFsibm9fcHJlZml4Il0pCi0gICAgICAgIENhdGVnb3J5
RmlsdGVyKCkgIyBObyBWYWx1ZUVycm9yOiB3b3JrcwotICAgICAgICBDYXRlZ29yeUZpbHRlcihb
IisiXSkgIyBObyBWYWx1ZUVycm9yOiB3b3JrcwotICAgICAgICBDYXRlZ29yeUZpbHRlcihbIi0i
XSkgIyBObyBWYWx1ZUVycm9yOiB3b3JrcwotCi0gICAgZGVmIHRlc3Rfc3RyKHNlbGYpOgotICAg
ICAgICAiIiJUZXN0IF9fc3RyX18gInRvIHN0cmluZyIgb3BlcmF0b3IuIiIiCi0gICAgICAgIGZp
bHRlciA9IENhdGVnb3J5RmlsdGVyKFsiK2EiLCAiLWIiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoc3RyKGZpbHRlciksICIrYSwtYiIpCi0KLSAgICBkZWYgdGVzdF9lcShzZWxmKToKLSAg
ICAgICAgIiIiVGVzdCBfX2VxX18gZXF1YWxpdHkgZnVuY3Rpb24uIiIiCi0gICAgICAgIGZpbHRl
cjEgPSBDYXRlZ29yeUZpbHRlcihbIithIiwgIitiIl0pCi0gICAgICAgIGZpbHRlcjIgPSBDYXRl
Z29yeUZpbHRlcihbIithIiwgIitiIl0pCi0gICAgICAgIGZpbHRlcjMgPSBDYXRlZ29yeUZpbHRl
cihbIitiIiwgIithIl0pCi0KLSAgICAgICAgIyA9PSBjYWxscyBfX2VxX18uCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShmaWx0ZXIxID09IGZpbHRlcjIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoZmlsdGVyMSA9PSBmaWx0ZXIzKSAjIENhbm5vdCB0ZXN0IHdpdGggYXNzZXJ0Tm90RXF1YWwu
Ci0KLSAgICBkZWYgdGVzdF9uZShzZWxmKToKLSAgICAgICAgIiIiVGVzdCBfX25lX18gaW5lcXVh
bGl0eSBmdW5jdGlvbi4iIiIKLSAgICAgICAgIyAhPSBjYWxscyBfX25lX18uCi0gICAgICAgICMg
QnkgZGVmYXVsdCwgX19uZV9fIGFsd2F5cyByZXR1cm5zIHRydWUgb24gZGlmZmVyZW50IG9iamVj
dHMuCi0gICAgICAgICMgVGh1cywganVzdCBjaGVjayB0aGUgZGlzdGluZ3Vpc2hpbmcgY2FzZSB0
byB2ZXJpZnkgdGhhdCB0aGUKLSAgICAgICAgIyBjb2RlIGRlZmluZXMgX19uZV9fLgotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKENhdGVnb3J5RmlsdGVyKCkgIT0gQ2F0ZWdvcnlGaWx0ZXIoKSkK
LQotICAgIGRlZiB0ZXN0X3Nob3VsZF9jaGVjayhzZWxmKToKLSAgICAgICAgIiIiVGVzdCBzaG91
bGRfY2hlY2soKSBtZXRob2QuIiIiCi0gICAgICAgIGZpbHRlciA9IENhdGVnb3J5RmlsdGVyKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbHRlci5zaG91bGRfY2hlY2soImV2ZXJ5dGhpbmci
KSkKLSAgICAgICAgIyBDaGVjayBhIHNlY29uZCB0aW1lIHRvIGV4ZXJjaXNlIGNhY2hlLgotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoZmlsdGVyLnNob3VsZF9jaGVjaygiZXZlcnl0aGluZyIpKQot
Ci0gICAgICAgIGZpbHRlciA9IENhdGVnb3J5RmlsdGVyKFsiLSJdKQotICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGZpbHRlci5zaG91bGRfY2hlY2soImFueXRoaW5nIikpCi0gICAgICAgICMgQ2hl
Y2sgYSBzZWNvbmQgdGltZSB0byBleGVyY2lzZSBjYWNoZS4KLSAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShmaWx0ZXIuc2hvdWxkX2NoZWNrKCJhbnl0aGluZyIpKQotCi0gICAgICAgIGZpbHRlciA9
IENhdGVnb3J5RmlsdGVyKFsiLSIsICIrYWIiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZp
bHRlci5zaG91bGRfY2hlY2soImFiYyIpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbHRl
ci5zaG91bGRfY2hlY2soImEiKSkKLQotICAgICAgICBmaWx0ZXIgPSBDYXRlZ29yeUZpbHRlcihb
IisiLCAiLWFiIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlsdGVyLnNob3VsZF9jaGVj
aygiYWJjIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaWx0ZXIuc2hvdWxkX2NoZWNrKCJh
IikpCi0KIAogY2xhc3MgUHJvY2Vzc29yT3B0aW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlci5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNDE0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlci5weQpAQCAtMCwwICsxLDk3
IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBDaHJpcyBKZXJkb25layAoY2hyaXMuamVyZG9uZWtA
Z21haWwuY29tKQorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisi
IiJDb250YWlucyBmaWx0ZXItcmVsYXRlZCBjb2RlLiIiIgorCisKK2NsYXNzIENhdGVnb3J5Rmls
dGVyKG9iamVjdCk6CisKKyAgICAiIiJGaWx0ZXJzIHdoZXRoZXIgdG8gY2hlY2sgc3R5bGUgY2F0
ZWdvcmllcy4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWx0ZXJfcnVsZXM9Tm9uZSk6
CisgICAgICAgICIiIkNyZWF0ZSBhIGNhdGVnb3J5IGZpbHRlci4KKworICAgICAgICBUaGlzIG1l
dGhvZCBwZXJmb3JtcyBhcmd1bWVudCB2YWxpZGF0aW9uIGJ1dCBkb2VzIG5vdCBzdHJpcAorICAg
ICAgICBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlIHNwYWNlLgorCisgICAgICAgIEFyZ3M6Cisg
ICAgICAgICAgZmlsdGVyX3J1bGVzOiBBIGxpc3Qgb2Ygc3RyaW5ncyB0aGF0IGFyZSBmaWx0ZXIg
cnVsZXMsIHdoaWNoCisgICAgICAgICAgICAgICAgICAgICAgICBhcmUgc3RyaW5ncyBiZWdpbm5p
bmcgd2l0aCB0aGUgcGx1cyBvciBtaW51cworICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9s
ICgrLy0pLiBUaGUgbGlzdCBzaG91bGQgaW5jbHVkZSBhbnkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQgZmlsdGVyIHJ1bGVzIGF0IHRoZSBiZWdpbm5pbmcuCisgICAgICAgICAgICAg
ICAgICAgICAgICBEZWZhdWx0cyB0byB0aGUgZW1wdHkgbGlzdC4KKworICAgICAgICBSYWlzZXM6
CisgICAgICAgICAgVmFsdWVFcnJvcjogSW52YWxpZCBmaWx0ZXIgcnVsZSBpZiBhIHJ1bGUgZG9l
cyBub3Qgc3RhcnQgd2l0aAorICAgICAgICAgICAgICAgICAgICAgIHBsdXMgKCIrIikgb3IgbWlu
dXMgKCItIikuCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGZpbHRlcl9ydWxlcyBpcyBOb25l
OgorICAgICAgICAgICAgZmlsdGVyX3J1bGVzID0gW10KKworICAgICAgICBmb3IgcnVsZSBpbiBm
aWx0ZXJfcnVsZXM6CisgICAgICAgICAgICBpZiBub3QgKHJ1bGUuc3RhcnRzd2l0aCgnKycpIG9y
IHJ1bGUuc3RhcnRzd2l0aCgnLScpKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdJbnZhbGlkIGZpbHRlciBydWxlICIlcyI6IGV2ZXJ5IHJ1bGUgJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3J1bGUgaW4gdGhlIC0tZmlsdGVyIGZsYWcgbXVzdCBzdGFydCAn
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2l0aCArIG9yIC0uJyAlIHJ1bGUp
CisKKyAgICAgICAgc2VsZi5fZmlsdGVyX3J1bGVzID0gZmlsdGVyX3J1bGVzCisgICAgICAgIHNl
bGYuX3Nob3VsZF9jaGVja19jYXRlZ29yeSA9IHt9ICMgQ2FjaGVkIGRpY3Rpb25hcnkgb2YgY2F0
ZWdvcnkgdG8gVHJ1ZS9GYWxzZQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJl
dHVybiAiLCIuam9pbihzZWxmLl9maWx0ZXJfcnVsZXMpCisKKyAgICAjIFVzZWZ1bCBmb3IgdW5p
dCB0ZXN0aW5nLgorICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAiIiJSZXR1
cm4gd2hldGhlciB0aGlzIENhdGVnb3J5RmlsdGVyIGluc3RhbmNlIGlzIGVxdWFsIHRvIGFub3Ro
ZXIuIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9maWx0ZXJfcnVsZXMgPT0gb3RoZXIuX2ZpbHRl
cl9ydWxlcworCisgICAgIyBVc2VmdWwgZm9yIHVuaXQgdGVzdGluZy4KKyAgICBkZWYgX19uZV9f
KHNlbGYsIG90aGVyKToKKyAgICAgICAgIyBQeXRob24gZG9lcyBub3QgYXV0b21hdGljYWxseSBk
ZWR1Y2UgZnJvbSBfX2VxX18oKS4KKyAgICAgICAgcmV0dXJuIG5vdCAoc2VsZiA9PSBvdGhlcikK
KworICAgIGRlZiBzaG91bGRfY2hlY2soc2VsZiwgY2F0ZWdvcnkpOgorICAgICAgICAiIiJSZXR1
cm4gd2hldGhlciB0aGUgY2F0ZWdvcnkgc2hvdWxkIGJlIGNoZWNrZWQuCisKKyAgICAgICAgVGhl
IHJ1bGVzIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgY2F0ZWdvcnkgc2hvdWxkIGJlIGNoZWNr
ZWQKKyAgICAgICAgYXJlIGFzIGZvbGxvd3MuIEJ5IGRlZmF1bHQgYWxsIGNhdGVnb3JpZXMgc2hv
dWxkIGJlIGNoZWNrZWQuCisgICAgICAgIFRoZW4gYXBwbHkgdGhlIGZpbHRlciBydWxlcyBpbiBv
cmRlciBmcm9tIGZpcnN0IHRvIGxhc3QsIHdpdGgKKyAgICAgICAgbGF0ZXIgZmxhZ3MgdGFraW5n
IHByZWNlZGVuY2UuCisKKyAgICAgICAgQSBmaWx0ZXIgcnVsZSBhcHBsaWVzIHRvIGEgY2F0ZWdv
cnkgaWYgdGhlIHN0cmluZyBhZnRlciB0aGUKKyAgICAgICAgbGVhZGluZyBwbHVzL21pbnVzICgr
Ly0pIG1hdGNoZXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgY2F0ZWdvcnkKKyAgICAgICAgbmFtZS4g
QSBwbHVzICgrKSBtZWFucyB0aGUgY2F0ZWdvcnkgc2hvdWxkIGJlIGNoZWNrZWQsIHdoaWxlIGEK
KyAgICAgICAgbWludXMgKC0pIG1lYW5zIHRoZSBjYXRlZ29yeSBzaG91bGQgbm90IGJlIGNoZWNr
ZWQuCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGNhdGVnb3J5IGluIHNlbGYuX3Nob3VsZF9j
aGVja19jYXRlZ29yeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zaG91bGRfY2hlY2tfY2F0
ZWdvcnlbY2F0ZWdvcnldCisKKyAgICAgICAgc2hvdWxkX2NoZWNrID0gVHJ1ZSAjIEFsbCBjYXRl
Z29yaWVzIGNoZWNrZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgZm9yIHJ1bGUgaW4gc2VsZi5fZmls
dGVyX3J1bGVzOgorICAgICAgICAgICAgaWYgbm90IGNhdGVnb3J5LnN0YXJ0c3dpdGgocnVsZVsx
Ol0pOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzaG91bGRfY2hlY2sg
PSBydWxlLnN0YXJ0c3dpdGgoJysnKQorICAgICAgICBzZWxmLl9zaG91bGRfY2hlY2tfY2F0ZWdv
cnlbY2F0ZWdvcnldID0gc2hvdWxkX2NoZWNrICMgVXBkYXRlIGNhY2hlLgorICAgICAgICByZXR1
cm4gc2hvdWxkX2NoZWNrCisKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMGIxMjEyMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsODQgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDEwIENocmlzIEplcmRvbmVrIChjaHJpcy5qZXJkb25la0BnbWFpbC5jb20pCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlVuaXQgdGVzdHMg
Zm9yIGZpbHRlci5weS4iIiIKKworCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBmaWx0ZXIgaW1w
b3J0IENhdGVnb3J5RmlsdGVyCisKKworY2xhc3MgQ2F0ZWdvcnlGaWx0ZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKworICAgICIiIlRlc3RzIENhdGVnb3J5RmlsdGVyIGNsYXNzLiIiIgorCisg
ICAgZGVmIHRlc3RfaW5pdChzZWxmKToKKyAgICAgICAgIiIiVGVzdCBfX2luaXRfXyBjb25zdHJ1
Y3Rvci4iIiIKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgQ2F0ZWdvcnlG
aWx0ZXIsIFsibm9fcHJlZml4Il0pCisgICAgICAgIENhdGVnb3J5RmlsdGVyKCkgIyBObyBWYWx1
ZUVycm9yOiB3b3JrcworICAgICAgICBDYXRlZ29yeUZpbHRlcihbIisiXSkgIyBObyBWYWx1ZUVy
cm9yOiB3b3JrcworICAgICAgICBDYXRlZ29yeUZpbHRlcihbIi0iXSkgIyBObyBWYWx1ZUVycm9y
OiB3b3JrcworCisgICAgZGVmIHRlc3Rfc3RyKHNlbGYpOgorICAgICAgICAiIiJUZXN0IF9fc3Ry
X18gInRvIHN0cmluZyIgb3BlcmF0b3IuIiIiCisgICAgICAgIGZpbHRlciA9IENhdGVnb3J5Rmls
dGVyKFsiK2EiLCAiLWIiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc3RyKGZpbHRlciks
ICIrYSwtYiIpCisKKyAgICBkZWYgdGVzdF9lcShzZWxmKToKKyAgICAgICAgIiIiVGVzdCBfX2Vx
X18gZXF1YWxpdHkgZnVuY3Rpb24uIiIiCisgICAgICAgIGZpbHRlcjEgPSBDYXRlZ29yeUZpbHRl
cihbIithIiwgIitiIl0pCisgICAgICAgIGZpbHRlcjIgPSBDYXRlZ29yeUZpbHRlcihbIithIiwg
IitiIl0pCisgICAgICAgIGZpbHRlcjMgPSBDYXRlZ29yeUZpbHRlcihbIitiIiwgIithIl0pCisK
KyAgICAgICAgIyA9PSBjYWxscyBfX2VxX18uCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaWx0
ZXIxID09IGZpbHRlcjIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlsdGVyMSA9PSBmaWx0
ZXIzKSAjIENhbm5vdCB0ZXN0IHdpdGggYXNzZXJ0Tm90RXF1YWwuCisKKyAgICBkZWYgdGVzdF9u
ZShzZWxmKToKKyAgICAgICAgIiIiVGVzdCBfX25lX18gaW5lcXVhbGl0eSBmdW5jdGlvbi4iIiIK
KyAgICAgICAgIyAhPSBjYWxscyBfX25lX18uCisgICAgICAgICMgQnkgZGVmYXVsdCwgX19uZV9f
IGFsd2F5cyByZXR1cm5zIHRydWUgb24gZGlmZmVyZW50IG9iamVjdHMuCisgICAgICAgICMgVGh1
cywganVzdCBjaGVjayB0aGUgZGlzdGluZ3Vpc2hpbmcgY2FzZSB0byB2ZXJpZnkgdGhhdCB0aGUK
KyAgICAgICAgIyBjb2RlIGRlZmluZXMgX19uZV9fLgorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KENhdGVnb3J5RmlsdGVyKCkgIT0gQ2F0ZWdvcnlGaWx0ZXIoKSkKKworICAgIGRlZiB0ZXN0X3No
b3VsZF9jaGVjayhzZWxmKToKKyAgICAgICAgIiIiVGVzdCBzaG91bGRfY2hlY2soKSBtZXRob2Qu
IiIiCisgICAgICAgIGZpbHRlciA9IENhdGVnb3J5RmlsdGVyKCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGZpbHRlci5zaG91bGRfY2hlY2soImV2ZXJ5dGhpbmciKSkKKyAgICAgICAgIyBDaGVj
ayBhIHNlY29uZCB0aW1lIHRvIGV4ZXJjaXNlIGNhY2hlLgorICAgICAgICBzZWxmLmFzc2VydFRy
dWUoZmlsdGVyLnNob3VsZF9jaGVjaygiZXZlcnl0aGluZyIpKQorCisgICAgICAgIGZpbHRlciA9
IENhdGVnb3J5RmlsdGVyKFsiLSJdKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbHRlci5z
aG91bGRfY2hlY2soImFueXRoaW5nIikpCisgICAgICAgICMgQ2hlY2sgYSBzZWNvbmQgdGltZSB0
byBleGVyY2lzZSBjYWNoZS4KKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaWx0ZXIuc2hvdWxk
X2NoZWNrKCJhbnl0aGluZyIpKQorCisgICAgICAgIGZpbHRlciA9IENhdGVnb3J5RmlsdGVyKFsi
LSIsICIrYWIiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbHRlci5zaG91bGRfY2hlY2so
ImFiYyIpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbHRlci5zaG91bGRfY2hlY2soImEi
KSkKKworICAgICAgICBmaWx0ZXIgPSBDYXRlZ29yeUZpbHRlcihbIisiLCAiLWFiIl0pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlsdGVyLnNob3VsZF9jaGVjaygiYWJjIikpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShmaWx0ZXIuc2hvdWxkX2NoZWNrKCJhIikpCisKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvdW5pdHRlc3RzLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS91bml0dGVzdHMucHkKaW5kZXggMTFjMTBlNy4u
NmFkMzVkNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS91
bml0dGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS91bml0
dGVzdHMucHkKQEAgLTM3LDUgKzM3LDYgQEAgaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gY2hlY2tl
cl91bml0dGVzdCBpbXBvcnQgKgogZnJvbSBlcnJvcl9oYW5kbGVyc191bml0dGVzdCBpbXBvcnQg
KgorZnJvbSBmaWx0ZXJfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gcHJvY2Vzc29ycy5jcHBfdW5p
dHRlc3QgaW1wb3J0ICoKIGZyb20gcHJvY2Vzc29ycy50ZXh0X3VuaXR0ZXN0IGltcG9ydCAqCg==
</data>
<flag name="commit-queue"
          id="30464"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47907</attachid>
            <date>2010-02-01 22:55:20 -0800</date>
            <delta_ts>2010-02-02 07:29:00 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-34408-2.txt</filename>
            <type>text/plain</type>
            <size>16752</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmNzEyNDhjLi5jYjYwNmZlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIgQEAKIDIwMTAtMDIt
MDEgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgZmlsdGVyLXJlbGF0ZWQg
Y2hlY2std2Via2l0LXN0eWxlIGNvZGUgaW50byBhIHNlcGFyYXRlCisgICAgICAgIGZpbHRlciBt
b2R1bGUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0NDA4CisKKyAgICAgICAgVGhpcyBpcyBwcmVwYXJhdG9yeSByZWZhY3RvcmluZyBmb3IgQnVn
IDMzNjg0LCB3aGljaCB3aWxsIGFsbG93CisgICAgICAgIGZpbGUgYW5kIGZvbGRlci1zcGVjaWZp
YyBmaWx0ZXIgcnVsZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXIucHk6CisgICAgICAgICAgLSBSZW1vdmVkIENhdGVnb3J5RmlsdGVyIGNsYXNzIChtb3ZlZCB0
byBmaWx0ZXIucHkpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
X3VuaXR0ZXN0LnB5OgorICAgICAgICAgIC0gUmVtb3ZlZCBDYXRlZ29yeUZpbHRlciB1bml0IHRl
c3RzIChtb3ZlZCB0byBmaWx0ZXJfdW5pdHRlc3QucHkpLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9maWx0ZXIucHk6IEFkZGVkLgorICAgICAgICAgIC0gQWRkZWQgQ2F0ZWdv
cnlGaWx0ZXIgY2xhc3MgKG1vdmVkIGZyb20gY2hlY2tlci5weSkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgICAg
LSBBZGRlZCBDYXRlZ29yeUZpbHRlciB1bml0IHRlc3RzIChtb3ZlZCBmcm9tIGNoZWNrZXJfdW5p
dHRlc3QucHkpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS91bml0dGVzdHMu
cHk6CisgICAgICAgICAgLSBBZGRlZCByZWZlcmVuY2UgdG8gZmlsdGVyX3VuaXR0ZXN0LnB5Lgor
CisyMDEwLTAyLTAxICBDaHJpcyBKZXJkb25layAgPGNqZXJkb25la0B3ZWJraXQub3JnPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWppLgogCiAgICAgICAgIEFkZHJlc3Nl
ZCBGSVhNRSBpbiBjaGVjay13ZWJraXQtc3R5bGUgc28gdGhhdCB0aGUgY2FycmlhZ2UtcmV0dXJu
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXgg
NmRjYTcxNS4uZGMxNGVhMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlci5weQpAQCAtMzcsNiArMzcsNyBAQCBpbXBvcnQgc3lzCiBmcm9tIC4uIHN0eWxl
X3JlZmVyZW5jZXMgaW1wb3J0IHBhcnNlX3BhdGNoCiBmcm9tIGVycm9yX2hhbmRsZXJzIGltcG9y
dCBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIKIGZyb20gZXJyb3JfaGFuZGxlcnMgaW1wb3J0IFBh
dGNoU3R5bGVFcnJvckhhbmRsZXIKK2Zyb20gZmlsdGVyIGltcG9ydCBDYXRlZ29yeUZpbHRlcgog
ZnJvbSBwcm9jZXNzb3JzLmNvbW1vbiBpbXBvcnQgY2hlY2tfbm9fY2FycmlhZ2VfcmV0dXJuCiBm
cm9tIHByb2Nlc3NvcnMuY29tbW9uIGltcG9ydCBjYXRlZ29yaWVzIGFzIENvbW1vbkNhdGVnb3Jp
ZXMKIGZyb20gcHJvY2Vzc29ycy5jcHAgaW1wb3J0IENwcFByb2Nlc3NvcgpAQCAtMTA4LDggKzEw
OSw2IEBAIFNLSVBQRURfRklMRVNfV0lUSE9VVF9XQVJOSU5HID0gWwogICAgIF0KIAogCi0jIEZJ
WE1FOiBDaGVjayB0aGF0IHRoZSBrZXlzIGFyZSBpbiBfc3R5bGVfY2F0ZWdvcmllcygpLgotIwog
IyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZXJyb3JzIHRvIHJlcG9ydCBwZXIgZmlsZSwgcGVyIGNh
dGVnb3J5LgogIyBJZiBhIGNhdGVnb3J5IGlzIG5vdCBhIGtleSwgdGhlbiBpdCBoYXMgbm8gbWF4
aW11bS4KIE1BWF9SRVBPUlRTX1BFUl9DQVRFR09SWSA9IHsKQEAgLTIwMiw3OSArMjAxLDYgQEAg
U3ludGF4OiAlKHByb2dyYW1fbmFtZSlzIFstLXZlcmJvc2U9I10gWy0tZ2l0LWNvbW1pdD08U2lu
Z2xlQ29tbWl0Pl0gWy0tb3V0cHV0PXYKICAgICByZXR1cm4gdXNhZ2UKIAogCi1jbGFzcyBDYXRl
Z29yeUZpbHRlcihvYmplY3QpOgotCi0gICAgIiIiRmlsdGVycyB3aGV0aGVyIHRvIGNoZWNrIHN0
eWxlIGNhdGVnb3JpZXMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsdGVyX3J1bGVz
PU5vbmUpOgotICAgICAgICAiIiJDcmVhdGUgYSBjYXRlZ29yeSBmaWx0ZXIuCi0KLSAgICAgICAg
VGhpcyBtZXRob2QgcGVyZm9ybXMgYXJndW1lbnQgdmFsaWRhdGlvbiBidXQgZG9lcyBub3Qgc3Ry
aXAKLSAgICAgICAgbGVhZGluZyBvciB0cmFpbGluZyB3aGl0ZSBzcGFjZS4KLQotICAgICAgICBB
cmdzOgotICAgICAgICAgIGZpbHRlcl9ydWxlczogQSBsaXN0IG9mIHN0cmluZ3MgdGhhdCBhcmUg
ZmlsdGVyIHJ1bGVzLCB3aGljaAotICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHN0cmluZ3Mg
YmVnaW5uaW5nIHdpdGggdGhlIHBsdXMgb3IgbWludXMKLSAgICAgICAgICAgICAgICAgICAgICAg
IHN5bWJvbCAoKy8tKS4gVGhlIGxpc3Qgc2hvdWxkIGluY2x1ZGUgYW55Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0IGZpbHRlciBydWxlcyBhdCB0aGUgYmVnaW5uaW5nLgotICAgICAg
ICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gdGhlIGVtcHR5IGxpc3QuCi0KLSAgICAgICAg
UmFpc2VzOgotICAgICAgICAgIFZhbHVlRXJyb3I6IEludmFsaWQgZmlsdGVyIHJ1bGUgaWYgYSBy
dWxlIGRvZXMgbm90IHN0YXJ0IHdpdGgKLSAgICAgICAgICAgICAgICAgICAgICBwbHVzICgiKyIp
IG9yIG1pbnVzICgiLSIpLgotCi0gICAgICAgICIiIgotICAgICAgICBpZiBmaWx0ZXJfcnVsZXMg
aXMgTm9uZToKLSAgICAgICAgICAgIGZpbHRlcl9ydWxlcyA9IFtdCi0KLSAgICAgICAgZm9yIHJ1
bGUgaW4gZmlsdGVyX3J1bGVzOgotICAgICAgICAgICAgaWYgbm90IChydWxlLnN0YXJ0c3dpdGgo
JysnKSBvciBydWxlLnN0YXJ0c3dpdGgoJy0nKSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignSW52YWxpZCBmaWx0ZXIgcnVsZSAiJXMiOiBldmVyeSBydWxlICcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdydWxlIGluIHRoZSAtLWZpbHRlciBmbGFnIG11c3Qg
c3RhcnQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpdGggKyBvciAtLicg
JSBydWxlKQotCi0gICAgICAgIHNlbGYuX2ZpbHRlcl9ydWxlcyA9IGZpbHRlcl9ydWxlcwotICAg
ICAgICBzZWxmLl9zaG91bGRfY2hlY2tfY2F0ZWdvcnkgPSB7fSAjIENhY2hlZCBkaWN0aW9uYXJ5
IG9mIGNhdGVnb3J5IHRvIFRydWUvRmFsc2UKLQotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAg
ICAgICByZXR1cm4gIiwiLmpvaW4oc2VsZi5fZmlsdGVyX3J1bGVzKQotCi0gICAgIyBVc2VmdWwg
Zm9yIHVuaXQgdGVzdGluZy4KLSAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAg
IiIiUmV0dXJuIHdoZXRoZXIgdGhpcyBDYXRlZ29yeUZpbHRlciBpbnN0YW5jZSBpcyBlcXVhbCB0
byBhbm90aGVyLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fZmlsdGVyX3J1bGVzID09IG90aGVy
Ll9maWx0ZXJfcnVsZXMKLQotICAgICMgVXNlZnVsIGZvciB1bml0IHRlc3RpbmcuCi0gICAgZGVm
IF9fbmVfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgICMgUHl0aG9uIGRvZXMgbm90IGF1dG9tYXRp
Y2FsbHkgZGVkdWNlIGZyb20gX19lcV9fKCkuCi0gICAgICAgIHJldHVybiBub3QgKHNlbGYgPT0g
b3RoZXIpCi0KLSAgICBkZWYgc2hvdWxkX2NoZWNrKHNlbGYsIGNhdGVnb3J5KToKLSAgICAgICAg
IiIiUmV0dXJuIHdoZXRoZXIgdGhlIGNhdGVnb3J5IHNob3VsZCBiZSBjaGVja2VkLgotCi0gICAg
ICAgIFRoZSBydWxlcyBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGNhdGVnb3J5IHNob3VsZCBi
ZSBjaGVja2VkCi0gICAgICAgIGFyZSBhcyBmb2xsb3dzLiBCeSBkZWZhdWx0IGFsbCBjYXRlZ29y
aWVzIHNob3VsZCBiZSBjaGVja2VkLgotICAgICAgICBUaGVuIGFwcGx5IHRoZSBmaWx0ZXIgcnVs
ZXMgaW4gb3JkZXIgZnJvbSBmaXJzdCB0byBsYXN0LCB3aXRoCi0gICAgICAgIGxhdGVyIGZsYWdz
IHRha2luZyBwcmVjZWRlbmNlLgotCi0gICAgICAgIEEgZmlsdGVyIHJ1bGUgYXBwbGllcyB0byBh
IGNhdGVnb3J5IGlmIHRoZSBzdHJpbmcgYWZ0ZXIgdGhlCi0gICAgICAgIGxlYWRpbmcgcGx1cy9t
aW51cyAoKy8tKSBtYXRjaGVzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNhdGVnb3J5Ci0gICAgICAg
IG5hbWUuIEEgcGx1cyAoKykgbWVhbnMgdGhlIGNhdGVnb3J5IHNob3VsZCBiZSBjaGVja2VkLCB3
aGlsZSBhCi0gICAgICAgIG1pbnVzICgtKSBtZWFucyB0aGUgY2F0ZWdvcnkgc2hvdWxkIG5vdCBi
ZSBjaGVja2VkLgotCi0gICAgICAgICIiIgotICAgICAgICBpZiBjYXRlZ29yeSBpbiBzZWxmLl9z
aG91bGRfY2hlY2tfY2F0ZWdvcnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fc2hvdWxkX2No
ZWNrX2NhdGVnb3J5W2NhdGVnb3J5XQotCi0gICAgICAgIHNob3VsZF9jaGVjayA9IFRydWUgIyBB
bGwgY2F0ZWdvcmllcyBjaGVja2VkIGJ5IGRlZmF1bHQuCi0gICAgICAgIGZvciBydWxlIGluIHNl
bGYuX2ZpbHRlcl9ydWxlczoKLSAgICAgICAgICAgIGlmIG5vdCBjYXRlZ29yeS5zdGFydHN3aXRo
KHJ1bGVbMTpdKToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgc2hvdWxk
X2NoZWNrID0gcnVsZS5zdGFydHN3aXRoKCcrJykKLSAgICAgICAgc2VsZi5fc2hvdWxkX2NoZWNr
X2NhdGVnb3J5W2NhdGVnb3J5XSA9IHNob3VsZF9jaGVjayAjIFVwZGF0ZSBjYWNoZS4KLSAgICAg
ICAgcmV0dXJuIHNob3VsZF9jaGVjawotCi0KICMgVGhpcyBjbGFzcyBzaG91bGQgbm90IGhhdmUg
a25vd2xlZGdlIG9mIHRoZSBmbGFnIGtleSBuYW1lcy4KIGNsYXNzIFByb2Nlc3Nvck9wdGlvbnMo
b2JqZWN0KToKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IDc4MmQzYzMuLjgxNGJkNDEgMTAwNzU1Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3Qu
cHkKQEAgLTM3LDY3ICszNywxMyBAQAogaW1wb3J0IHVuaXR0ZXN0CiAKIGltcG9ydCBjaGVja2Vy
IGFzIHN0eWxlCi1mcm9tIGNoZWNrZXIgaW1wb3J0IENhdGVnb3J5RmlsdGVyCiBmcm9tIGNoZWNr
ZXIgaW1wb3J0IFByb2Nlc3NvckRpc3BhdGNoZXIKIGZyb20gY2hlY2tlciBpbXBvcnQgUHJvY2Vz
c29yT3B0aW9ucwogZnJvbSBjaGVja2VyIGltcG9ydCBTdHlsZUNoZWNrZXIKK2Zyb20gZmlsdGVy
IGltcG9ydCBDYXRlZ29yeUZpbHRlcgogZnJvbSBwcm9jZXNzb3JzLmNwcCBpbXBvcnQgQ3BwUHJv
Y2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMudGV4dCBpbXBvcnQgVGV4dFByb2Nlc3NvcgogCi1jbGFz
cyBDYXRlZ29yeUZpbHRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgIiIiVGVzdHMg
Q2F0ZWdvcnlGaWx0ZXIgY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9pbml0KHNlbGYpOgotICAg
ICAgICAiIiJUZXN0IF9faW5pdF9fIGNvbnN0cnVjdG9yLiIiIgotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhWYWx1ZUVycm9yLCBDYXRlZ29yeUZpbHRlciwgWyJub19wcmVmaXgiXSkKLSAgICAg
ICAgQ2F0ZWdvcnlGaWx0ZXIoKSAjIE5vIFZhbHVlRXJyb3I6IHdvcmtzCi0gICAgICAgIENhdGVn
b3J5RmlsdGVyKFsiKyJdKSAjIE5vIFZhbHVlRXJyb3I6IHdvcmtzCi0gICAgICAgIENhdGVnb3J5
RmlsdGVyKFsiLSJdKSAjIE5vIFZhbHVlRXJyb3I6IHdvcmtzCi0KLSAgICBkZWYgdGVzdF9zdHIo
c2VsZik6Ci0gICAgICAgICIiIlRlc3QgX19zdHJfXyAidG8gc3RyaW5nIiBvcGVyYXRvci4iIiIK
LSAgICAgICAgZmlsdGVyID0gQ2F0ZWdvcnlGaWx0ZXIoWyIrYSIsICItYiJdKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzdHIoZmlsdGVyKSwgIithLC1iIikKLQotICAgIGRlZiB0ZXN0X2Vx
KHNlbGYpOgotICAgICAgICAiIiJUZXN0IF9fZXFfXyBlcXVhbGl0eSBmdW5jdGlvbi4iIiIKLSAg
ICAgICAgZmlsdGVyMSA9IENhdGVnb3J5RmlsdGVyKFsiK2EiLCAiK2IiXSkKLSAgICAgICAgZmls
dGVyMiA9IENhdGVnb3J5RmlsdGVyKFsiK2EiLCAiK2IiXSkKLSAgICAgICAgZmlsdGVyMyA9IENh
dGVnb3J5RmlsdGVyKFsiK2IiLCAiK2EiXSkKLQotICAgICAgICAjID09IGNhbGxzIF9fZXFfXy4K
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbHRlcjEgPT0gZmlsdGVyMikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShmaWx0ZXIxID09IGZpbHRlcjMpICMgQ2Fubm90IHRlc3Qgd2l0aCBhc3Nl
cnROb3RFcXVhbC4KLQotICAgIGRlZiB0ZXN0X25lKHNlbGYpOgotICAgICAgICAiIiJUZXN0IF9f
bmVfXyBpbmVxdWFsaXR5IGZ1bmN0aW9uLiIiIgotICAgICAgICAjICE9IGNhbGxzIF9fbmVfXy4K
LSAgICAgICAgIyBCeSBkZWZhdWx0LCBfX25lX18gYWx3YXlzIHJldHVybnMgdHJ1ZSBvbiBkaWZm
ZXJlbnQgb2JqZWN0cy4KLSAgICAgICAgIyBUaHVzLCBqdXN0IGNoZWNrIHRoZSBkaXN0aW5ndWlz
aGluZyBjYXNlIHRvIHZlcmlmeSB0aGF0IHRoZQotICAgICAgICAjIGNvZGUgZGVmaW5lcyBfX25l
X18uCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoQ2F0ZWdvcnlGaWx0ZXIoKSAhPSBDYXRlZ29y
eUZpbHRlcigpKQotCi0gICAgZGVmIHRlc3Rfc2hvdWxkX2NoZWNrKHNlbGYpOgotICAgICAgICAi
IiJUZXN0IHNob3VsZF9jaGVjaygpIG1ldGhvZC4iIiIKLSAgICAgICAgZmlsdGVyID0gQ2F0ZWdv
cnlGaWx0ZXIoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZmlsdGVyLnNob3VsZF9jaGVjaygi
ZXZlcnl0aGluZyIpKQotICAgICAgICAjIENoZWNrIGEgc2Vjb25kIHRpbWUgdG8gZXhlcmNpc2Ug
Y2FjaGUuCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaWx0ZXIuc2hvdWxkX2NoZWNrKCJldmVy
eXRoaW5nIikpCi0KLSAgICAgICAgZmlsdGVyID0gQ2F0ZWdvcnlGaWx0ZXIoWyItIl0pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlsdGVyLnNob3VsZF9jaGVjaygiYW55dGhpbmciKSkKLSAg
ICAgICAgIyBDaGVjayBhIHNlY29uZCB0aW1lIHRvIGV4ZXJjaXNlIGNhY2hlLgotICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKGZpbHRlci5zaG91bGRfY2hlY2soImFueXRoaW5nIikpCi0KLSAgICAg
ICAgZmlsdGVyID0gQ2F0ZWdvcnlGaWx0ZXIoWyItIiwgIithYiJdKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUoZmlsdGVyLnNob3VsZF9jaGVjaygiYWJjIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoZmlsdGVyLnNob3VsZF9jaGVjaygiYSIpKQotCi0gICAgICAgIGZpbHRlciA9IENhdGVn
b3J5RmlsdGVyKFsiKyIsICItYWIiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaWx0ZXIu
c2hvdWxkX2NoZWNrKCJhYmMiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbHRlci5zaG91
bGRfY2hlY2soImEiKSkKLQogCiBjbGFzcyBQcm9jZXNzb3JPcHRpb25zVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvZmlsdGVyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXIu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0MTQyNAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5CkBA
IC0wLDAgKzEsOTcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEwIENocmlzIEplcmRvbmVrIChjaHJp
cy5qZXJkb25la0BnbWFpbC5jb20pCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyIiIkNvbnRhaW5zIGZpbHRlci1yZWxhdGVkIGNvZGUuIiIiCisKKworY2xhc3Mg
Q2F0ZWdvcnlGaWx0ZXIob2JqZWN0KToKKworICAgICIiIkZpbHRlcnMgd2hldGhlciB0byBjaGVj
ayBzdHlsZSBjYXRlZ29yaWVzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbHRlcl9y
dWxlcz1Ob25lKToKKyAgICAgICAgIiIiQ3JlYXRlIGEgY2F0ZWdvcnkgZmlsdGVyLgorCisgICAg
ICAgIFRoaXMgbWV0aG9kIHBlcmZvcm1zIGFyZ3VtZW50IHZhbGlkYXRpb24gYnV0IGRvZXMgbm90
IHN0cmlwCisgICAgICAgIGxlYWRpbmcgb3IgdHJhaWxpbmcgd2hpdGUgc3BhY2UuCisKKyAgICAg
ICAgQXJnczoKKyAgICAgICAgICBmaWx0ZXJfcnVsZXM6IEEgbGlzdCBvZiBzdHJpbmdzIHRoYXQg
YXJlIGZpbHRlciBydWxlcywgd2hpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBzdHJp
bmdzIGJlZ2lubmluZyB3aXRoIHRoZSBwbHVzIG9yIG1pbnVzCisgICAgICAgICAgICAgICAgICAg
ICAgICBzeW1ib2wgKCsvLSkuIFRoZSBsaXN0IHNob3VsZCBpbmNsdWRlIGFueQorICAgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdCBmaWx0ZXIgcnVsZXMgYXQgdGhlIGJlZ2lubmluZy4KKyAg
ICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIHRoZSBlbXB0eSBsaXN0LgorCisgICAg
ICAgIFJhaXNlczoKKyAgICAgICAgICBWYWx1ZUVycm9yOiBJbnZhbGlkIGZpbHRlciBydWxlIGlm
IGEgcnVsZSBkb2VzIG5vdCBzdGFydCB3aXRoCisgICAgICAgICAgICAgICAgICAgICAgcGx1cyAo
IisiKSBvciBtaW51cyAoIi0iKS4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgZmlsdGVyX3J1
bGVzIGlzIE5vbmU6CisgICAgICAgICAgICBmaWx0ZXJfcnVsZXMgPSBbXQorCisgICAgICAgIGZv
ciBydWxlIGluIGZpbHRlcl9ydWxlczoKKyAgICAgICAgICAgIGlmIG5vdCAocnVsZS5zdGFydHN3
aXRoKCcrJykgb3IgcnVsZS5zdGFydHN3aXRoKCctJykpOgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0ludmFsaWQgZmlsdGVyIHJ1bGUgIiVzIjogZXZlcnkgcnVsZSAnCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncnVsZSBpbiB0aGUgLS1maWx0ZXIgZmxhZyBt
dXN0IHN0YXJ0ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aXRoICsgb3Ig
LS4nICUgcnVsZSkKKworICAgICAgICBzZWxmLl9maWx0ZXJfcnVsZXMgPSBmaWx0ZXJfcnVsZXMK
KyAgICAgICAgc2VsZi5fc2hvdWxkX2NoZWNrX2NhdGVnb3J5ID0ge30gIyBDYWNoZWQgZGljdGlv
bmFyeSBvZiBjYXRlZ29yeSB0byBUcnVlL0ZhbHNlCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToK
KyAgICAgICAgcmV0dXJuICIsIi5qb2luKHNlbGYuX2ZpbHRlcl9ydWxlcykKKworICAgICMgVXNl
ZnVsIGZvciB1bml0IHRlc3RpbmcuCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAg
ICAgICIiIlJldHVybiB3aGV0aGVyIHRoaXMgQ2F0ZWdvcnlGaWx0ZXIgaW5zdGFuY2UgaXMgZXF1
YWwgdG8gYW5vdGhlci4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbHRlcl9ydWxlcyA9PSBv
dGhlci5fZmlsdGVyX3J1bGVzCisKKyAgICAjIFVzZWZ1bCBmb3IgdW5pdCB0ZXN0aW5nLgorICAg
IGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIFB5dGhvbiBkb2VzIG5vdCBhdXRv
bWF0aWNhbGx5IGRlZHVjZSBmcm9tIF9fZXFfXygpLgorICAgICAgICByZXR1cm4gbm90IChzZWxm
ID09IG90aGVyKQorCisgICAgZGVmIHNob3VsZF9jaGVjayhzZWxmLCBjYXRlZ29yeSk6CisgICAg
ICAgICIiIlJldHVybiB3aGV0aGVyIHRoZSBjYXRlZ29yeSBzaG91bGQgYmUgY2hlY2tlZC4KKwor
ICAgICAgICBUaGUgcnVsZXMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBjYXRlZ29yeSBzaG91
bGQgYmUgY2hlY2tlZAorICAgICAgICBhcmUgYXMgZm9sbG93cy4gQnkgZGVmYXVsdCBhbGwgY2F0
ZWdvcmllcyBzaG91bGQgYmUgY2hlY2tlZC4KKyAgICAgICAgVGhlbiBhcHBseSB0aGUgZmlsdGVy
IHJ1bGVzIGluIG9yZGVyIGZyb20gZmlyc3QgdG8gbGFzdCwgd2l0aAorICAgICAgICBsYXRlciBm
bGFncyB0YWtpbmcgcHJlY2VkZW5jZS4KKworICAgICAgICBBIGZpbHRlciBydWxlIGFwcGxpZXMg
dG8gYSBjYXRlZ29yeSBpZiB0aGUgc3RyaW5nIGFmdGVyIHRoZQorICAgICAgICBsZWFkaW5nIHBs
dXMvbWludXMgKCsvLSkgbWF0Y2hlcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjYXRlZ29yeQorICAg
ICAgICBuYW1lLiBBIHBsdXMgKCspIG1lYW5zIHRoZSBjYXRlZ29yeSBzaG91bGQgYmUgY2hlY2tl
ZCwgd2hpbGUgYQorICAgICAgICBtaW51cyAoLSkgbWVhbnMgdGhlIGNhdGVnb3J5IHNob3VsZCBu
b3QgYmUgY2hlY2tlZC4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgY2F0ZWdvcnkgaW4gc2Vs
Zi5fc2hvdWxkX2NoZWNrX2NhdGVnb3J5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Nob3Vs
ZF9jaGVja19jYXRlZ29yeVtjYXRlZ29yeV0KKworICAgICAgICBzaG91bGRfY2hlY2sgPSBUcnVl
ICMgQWxsIGNhdGVnb3JpZXMgY2hlY2tlZCBieSBkZWZhdWx0LgorICAgICAgICBmb3IgcnVsZSBp
biBzZWxmLl9maWx0ZXJfcnVsZXM6CisgICAgICAgICAgICBpZiBub3QgY2F0ZWdvcnkuc3RhcnRz
d2l0aChydWxlWzE6XSk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHNo
b3VsZF9jaGVjayA9IHJ1bGUuc3RhcnRzd2l0aCgnKycpCisgICAgICAgIHNlbGYuX3Nob3VsZF9j
aGVja19jYXRlZ29yeVtjYXRlZ29yeV0gPSBzaG91bGRfY2hlY2sgIyBVcGRhdGUgY2FjaGUuCisg
ICAgICAgIHJldHVybiBzaG91bGRfY2hlY2sKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wYjEyMTIzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw4NCBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNocmlzLmplcmRvbmVrQGdt
YWlsLmNvbSkKKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIiIi
VW5pdCB0ZXN0cyBmb3IgZmlsdGVyLnB5LiIiIgorCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9t
IGZpbHRlciBpbXBvcnQgQ2F0ZWdvcnlGaWx0ZXIKKworCitjbGFzcyBDYXRlZ29yeUZpbHRlclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgIiIiVGVzdHMgQ2F0ZWdvcnlGaWx0ZXIgY2xh
c3MuIiIiCisKKyAgICBkZWYgdGVzdF9pbml0KHNlbGYpOgorICAgICAgICAiIiJUZXN0IF9faW5p
dF9fIGNvbnN0cnVjdG9yLiIiIgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBDYXRlZ29yeUZpbHRlciwgWyJub19wcmVmaXgiXSkKKyAgICAgICAgQ2F0ZWdvcnlGaWx0ZXIo
KSAjIE5vIFZhbHVlRXJyb3I6IHdvcmtzCisgICAgICAgIENhdGVnb3J5RmlsdGVyKFsiKyJdKSAj
IE5vIFZhbHVlRXJyb3I6IHdvcmtzCisgICAgICAgIENhdGVnb3J5RmlsdGVyKFsiLSJdKSAjIE5v
IFZhbHVlRXJyb3I6IHdvcmtzCisKKyAgICBkZWYgdGVzdF9zdHIoc2VsZik6CisgICAgICAgICIi
IlRlc3QgX19zdHJfXyAidG8gc3RyaW5nIiBvcGVyYXRvci4iIiIKKyAgICAgICAgZmlsdGVyID0g
Q2F0ZWdvcnlGaWx0ZXIoWyIrYSIsICItYiJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhz
dHIoZmlsdGVyKSwgIithLC1iIikKKworICAgIGRlZiB0ZXN0X2VxKHNlbGYpOgorICAgICAgICAi
IiJUZXN0IF9fZXFfXyBlcXVhbGl0eSBmdW5jdGlvbi4iIiIKKyAgICAgICAgZmlsdGVyMSA9IENh
dGVnb3J5RmlsdGVyKFsiK2EiLCAiK2IiXSkKKyAgICAgICAgZmlsdGVyMiA9IENhdGVnb3J5Rmls
dGVyKFsiK2EiLCAiK2IiXSkKKyAgICAgICAgZmlsdGVyMyA9IENhdGVnb3J5RmlsdGVyKFsiK2Ii
LCAiK2EiXSkKKworICAgICAgICAjID09IGNhbGxzIF9fZXFfXy4KKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGZpbHRlcjEgPT0gZmlsdGVyMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaWx0
ZXIxID09IGZpbHRlcjMpICMgQ2Fubm90IHRlc3Qgd2l0aCBhc3NlcnROb3RFcXVhbC4KKworICAg
IGRlZiB0ZXN0X25lKHNlbGYpOgorICAgICAgICAiIiJUZXN0IF9fbmVfXyBpbmVxdWFsaXR5IGZ1
bmN0aW9uLiIiIgorICAgICAgICAjICE9IGNhbGxzIF9fbmVfXy4KKyAgICAgICAgIyBCeSBkZWZh
dWx0LCBfX25lX18gYWx3YXlzIHJldHVybnMgdHJ1ZSBvbiBkaWZmZXJlbnQgb2JqZWN0cy4KKyAg
ICAgICAgIyBUaHVzLCBqdXN0IGNoZWNrIHRoZSBkaXN0aW5ndWlzaGluZyBjYXNlIHRvIHZlcmlm
eSB0aGF0IHRoZQorICAgICAgICAjIGNvZGUgZGVmaW5lcyBfX25lX18uCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoQ2F0ZWdvcnlGaWx0ZXIoKSAhPSBDYXRlZ29yeUZpbHRlcigpKQorCisgICAg
ZGVmIHRlc3Rfc2hvdWxkX2NoZWNrKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHNob3VsZF9jaGVj
aygpIG1ldGhvZC4iIiIKKyAgICAgICAgZmlsdGVyID0gQ2F0ZWdvcnlGaWx0ZXIoKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoZmlsdGVyLnNob3VsZF9jaGVjaygiZXZlcnl0aGluZyIpKQorICAg
ICAgICAjIENoZWNrIGEgc2Vjb25kIHRpbWUgdG8gZXhlcmNpc2UgY2FjaGUuCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShmaWx0ZXIuc2hvdWxkX2NoZWNrKCJldmVyeXRoaW5nIikpCisKKyAgICAg
ICAgZmlsdGVyID0gQ2F0ZWdvcnlGaWx0ZXIoWyItIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoZmlsdGVyLnNob3VsZF9jaGVjaygiYW55dGhpbmciKSkKKyAgICAgICAgIyBDaGVjayBhIHNl
Y29uZCB0aW1lIHRvIGV4ZXJjaXNlIGNhY2hlLgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZp
bHRlci5zaG91bGRfY2hlY2soImFueXRoaW5nIikpCisKKyAgICAgICAgZmlsdGVyID0gQ2F0ZWdv
cnlGaWx0ZXIoWyItIiwgIithYiJdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZmlsdGVyLnNo
b3VsZF9jaGVjaygiYWJjIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmlsdGVyLnNob3Vs
ZF9jaGVjaygiYSIpKQorCisgICAgICAgIGZpbHRlciA9IENhdGVnb3J5RmlsdGVyKFsiKyIsICIt
YWIiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaWx0ZXIuc2hvdWxkX2NoZWNrKCJhYmMi
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbHRlci5zaG91bGRfY2hlY2soImEiKSkKKwpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS91bml0dGVzdHMu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3VuaXR0ZXN0cy5weQppbmRl
eCA4ODNlMTM3Li5mOGUzZjcxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL3VuaXR0ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL3VuaXR0ZXN0cy5weQpAQCAtMzcsNiArMzcsNyBAQCBpbXBvcnQgdW5pdHRlc3QKIAog
ZnJvbSBjaGVja2VyX3VuaXR0ZXN0IGltcG9ydCAqCiBmcm9tIGVycm9yX2hhbmRsZXJzX3VuaXR0
ZXN0IGltcG9ydCAqCitmcm9tIGZpbHRlcl91bml0dGVzdCBpbXBvcnQgKgogZnJvbSBwcm9jZXNz
b3JzLmNvbW1vbl91bml0dGVzdCBpbXBvcnQgKgogZnJvbSBwcm9jZXNzb3JzLmNwcF91bml0dGVz
dCBpbXBvcnQgKgogZnJvbSBwcm9jZXNzb3JzLnRleHRfdW5pdHRlc3QgaW1wb3J0ICoK
</data>

          </attachment>
      

    </bug>

</bugzilla>