<?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>92804</bug_id>
          
          <creation_ts>2012-07-31 16:01:36 -0700</creation_ts>
          <short_desc>nrwt: rename worker.py to layout_test_runner.py</short_desc>
          <delta_ts>2012-07-31 16:20:17 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>89267</blocked>
    
    <blocked>92805</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>683574</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-31 16:01:36 -0700</bug_when>
    <thetext>nrwt: rename worker.py to layout_test_runner.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683576</commentid>
    <comment_count>1</comment_count>
      <attachid>155658</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-31 16:02:52 -0700</bug_when>
    <thetext>Created attachment 155658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683603</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-31 16:20:17 -0700</bug_when>
    <thetext>Committed r124267: &lt;http://trac.webkit.org/changeset/124267&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155658</attachid>
            <date>2012-07-31 16:02:52 -0700</date>
            <delta_ts>2012-07-31 16:06:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92804-20120731160235.patch</filename>
            <type>text/plain</type>
            <size>23445</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjYxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTg3ZjIwNjZhZDg2ZmEwZDE1MDg5OWViZDRiYWU5NmIz
MjAwZjI2OC4uNDBlOWI2M2ExN2U2NWU4NzY0YTNmZTA4NDA4MTYxYmZhNjNjNDgzYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQw
IEBACiAyMDEyLTA3LTMxICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHJlbmFtZSB3b3JrZXIucHkgdG8gbGF5b3V0X3Rlc3RfcnVubmVyLnB5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjgwNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhvbWUgc3RyZXRj
aCBvZiB0aGlzIHJvdW5kIG9mIG1hbmFnZXIgcmVmYWN0b3JpbmcgLi4uIEkgd2lsbCBiZQorICAg
ICAgICBtb3ZpbmcgYWxsIG9mIHRoZSBhY3R1YWwgdGVzdC1ydW5uaW5nIGNvZGUgKHdoaWNoIGlu
Y2x1ZGVzIHRoZQorICAgICAgICBjb2RlIHRoYXQgc2hhcmRzIHRoZSB0ZXN0cyBmb3IgdGhlIHdv
cmtlcnMpIGludG8gYSBkaWZmZXJlbnQKKyAgICAgICAgbW9kdWxlLCBhbmQgaXQgbWFrZXMgc2Vu
c2UgZm9yIHRoYXQgbW9kdWxlIHRvIGNvbnRhaW4gdGhlIGFjdHVhbAorICAgICAgICB3b3JrZXIg
Y29kZSwgc28gSSdtIHJlbmFtaW5nIHdvcmtlci5weSB0byBsYXlvdXRfdGVzdF9ydW5uZXIucHku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9ydW5uZXIucHk6IFJlbmFtZWQgZnJvbSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy93b3JrZXIucHkuCisgICAgICAgIChXb3JrZXIpOgor
ICAgICAgICAoV29ya2VyLl9faW5pdF9fKToKKyAgICAgICAgKFdvcmtlci5fX2RlbF9fKToKKyAg
ICAgICAgKFdvcmtlci5zdGFydCk6CisgICAgICAgIChXb3JrZXIuaGFuZGxlKToKKyAgICAgICAg
KFdvcmtlci5fdXBkYXRlX3Rlc3RfaW5wdXQpOgorICAgICAgICAoV29ya2VyLl9ydW5fdGVzdCk6
CisgICAgICAgIChXb3JrZXIuc3RvcCk6CisgICAgICAgIChXb3JrZXIuX3RpbWVvdXQpOgorICAg
ICAgICAoV29ya2VyLl9raWxsX2RyaXZlcik6CisgICAgICAgIChXb3JrZXIuX3J1bl90ZXN0X3dp
dGhfdGltZW91dCk6CisgICAgICAgIChXb3JrZXIuX2NsZWFuX3VwX2FmdGVyX3Rlc3QpOgorICAg
ICAgICAoV29ya2VyLl9ydW5fdGVzdF9pbl9hbm90aGVyX3RocmVhZCk6CisgICAgICAgIChXb3Jr
ZXIuX3J1bl90ZXN0X2luX2Fub3RoZXJfdGhyZWFkLlNpbmdsZVRlc3RUaHJlYWQpOgorICAgICAg
ICAoV29ya2VyLl9ydW5fdGVzdF9pbl9hbm90aGVyX3RocmVhZC5TaW5nbGVUZXN0VGhyZWFkLl9f
aW5pdF9fKToKKyAgICAgICAgKFdvcmtlci5fcnVuX3Rlc3RfaW5fYW5vdGhlcl90aHJlYWQuU2lu
Z2xlVGVzdFRocmVhZC5ydW4pOgorICAgICAgICAoV29ya2VyLl9ydW5fdGVzdF9pbl90aGlzX3Ro
cmVhZCk6CisgICAgICAgIChXb3JrZXIuX3J1bl9zaW5nbGVfdGVzdCk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAg
ICAgKE1hbmFnZXIuX3J1bl90ZXN0cy53b3JrZXJfZmFjdG9yeSk6CisKKzIwMTItMDctMzEgIERp
cmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgbnJ3dDogY2xlYW4g
dXAgbmFtZXMgaW4gc2hhcmRpbmcgY29kZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTI3ODUKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3Rf
cnVubmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNTgzZmZmMzM3ZjA2NzdhYzIzMGJiODE2NDIxM2M2M2Qw
NDczNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKQEAgLTAsMCArMSwyMzEgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24u
CisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisiIiJIYW5kbGUgbWVzc2FnZXMgZnJvbSB0aGUgTWFuYWdlciBh
bmQgZXhlY3V0ZXMgYWN0dWFsIHRlc3RzLiIiIgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHRo
cmVhZGluZworaW1wb3J0IHRpbWUKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJv
bGxlcnMgaW1wb3J0IHNpbmdsZV90ZXN0X3J1bm5lcgorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucworZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKKworCitfbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgV29ya2VyKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGNhbGxlciwgcmVzdWx0c19kaXJlY3RvcnksIG9wdGlvbnMpOgorICAgICAgICBz
ZWxmLl9jYWxsZXIgPSBjYWxsZXIKKyAgICAgICAgc2VsZi5fd29ya2VyX251bWJlciA9IGNhbGxl
ci53b3JrZXJfbnVtYmVyCisgICAgICAgIHNlbGYuX25hbWUgPSBjYWxsZXIubmFtZQorICAgICAg
ICBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5CisgICAgICAgIHNl
bGYuX29wdGlvbnMgPSBvcHRpb25zCisKKyAgICAgICAgIyBUaGUgcmVtYWluaW5nIGZpZWxkcyBh
cmUgaW5pdGlhbGl6ZWQgaW4gc3RhcnQoKQorICAgICAgICBzZWxmLl9ob3N0ID0gTm9uZQorICAg
ICAgICBzZWxmLl9wb3J0ID0gTm9uZQorICAgICAgICBzZWxmLl9iYXRjaF9zaXplID0gTm9uZQor
ICAgICAgICBzZWxmLl9iYXRjaF9jb3VudCA9IE5vbmUKKyAgICAgICAgc2VsZi5fZmlsZXN5c3Rl
bSA9IE5vbmUKKyAgICAgICAgc2VsZi5fZHJpdmVyID0gTm9uZQorICAgICAgICBzZWxmLl90ZXN0
c19ydW5fZmlsZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fdGVzdHNfcnVuX2ZpbGVuYW1lID0gTm9u
ZQorCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIHNlbGYuc3RvcCgpCisKKyAgICBk
ZWYgc3RhcnQoc2VsZik6CisgICAgICAgICIiIlRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRo
ZSBvYmplY3QgaXMgc3RhcnRpbmcgdG8gYmUgdXNlZCBhbmQgaXQgaXMgc2FmZQorICAgICAgICBm
b3IgdGhlIG9iamVjdCB0byBjcmVhdGUgc3RhdGUgdGhhdCBkb2VzIG5vdCBuZWVkIHRvIGJlIHBp
Y2tsZWQgKHVzdWFsbHkgdGhpcyBtZWFucworICAgICAgICBpdCBpcyBjYWxsZWQgaW4gYSBjaGls
ZCBwcm9jZXNzKS4iIiIKKyAgICAgICAgc2VsZi5faG9zdCA9IHNlbGYuX2NhbGxlci5ob3N0Cisg
ICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0KKyAgICAgICAg
c2VsZi5fcG9ydCA9IHNlbGYuX2hvc3QucG9ydF9mYWN0b3J5LmdldChzZWxmLl9vcHRpb25zLnBs
YXRmb3JtLCBzZWxmLl9vcHRpb25zKQorCisgICAgICAgIHNlbGYuX2JhdGNoX2NvdW50ID0gMAor
ICAgICAgICBzZWxmLl9iYXRjaF9zaXplID0gc2VsZi5fb3B0aW9ucy5iYXRjaF9zaXplIG9yIDAK
KyAgICAgICAgdGVzdHNfcnVuX2ZpbGVuYW1lID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYu
X3Jlc3VsdHNfZGlyZWN0b3J5LCAidGVzdHNfcnVuJWQudHh0IiAlIHNlbGYuX3dvcmtlcl9udW1i
ZXIpCisgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlID0gc2VsZi5fZmlsZXN5c3RlbS5vcGVu
X3RleHRfZmlsZV9mb3Jfd3JpdGluZyh0ZXN0c19ydW5fZmlsZW5hbWUpCisKKyAgICBkZWYgaGFu
ZGxlKHNlbGYsIG5hbWUsIHNvdXJjZSwgdGVzdF9saXN0X25hbWUsIHRlc3RfaW5wdXRzKToKKyAg
ICAgICAgYXNzZXJ0IG5hbWUgPT0gJ3Rlc3RfbGlzdCcKKyAgICAgICAgc3RhcnRfdGltZSA9IHRp
bWUudGltZSgpCisgICAgICAgIGZvciB0ZXN0X2lucHV0IGluIHRlc3RfaW5wdXRzOgorICAgICAg
ICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9pbnB1dCkKKyAgICAgICAgZWxhcHNlZF90aW1lID0g
dGltZS50aW1lKCkgLSBzdGFydF90aW1lCisgICAgICAgIHNlbGYuX2NhbGxlci5wb3N0KCdmaW5p
c2hlZF90ZXN0X2xpc3QnLCB0ZXN0X2xpc3RfbmFtZSwgbGVuKHRlc3RfaW5wdXRzKSwgZWxhcHNl
ZF90aW1lKQorCisgICAgZGVmIF91cGRhdGVfdGVzdF9pbnB1dChzZWxmLCB0ZXN0X2lucHV0KToK
KyAgICAgICAgaWYgdGVzdF9pbnB1dC5yZWZlcmVuY2VfZmlsZXMgaXMgTm9uZToKKyAgICAgICAg
ICAgICMgTGF6eSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgICAgIHRlc3RfaW5wdXQucmVmZXJl
bmNlX2ZpbGVzID0gc2VsZi5fcG9ydC5yZWZlcmVuY2VfZmlsZXModGVzdF9pbnB1dC50ZXN0X25h
bWUpCisgICAgICAgIGlmIHRlc3RfaW5wdXQucmVmZXJlbmNlX2ZpbGVzOgorICAgICAgICAgICAg
dGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBUcnVlCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IHNlbGYuX3BvcnQu
c2hvdWxkX3J1bl9hc19waXhlbF90ZXN0KHRlc3RfaW5wdXQpCisKKyAgICBkZWYgX3J1bl90ZXN0
KHNlbGYsIHRlc3RfaW5wdXQpOgorICAgICAgICBzZWxmLl91cGRhdGVfdGVzdF9pbnB1dCh0ZXN0
X2lucHV0KQorICAgICAgICB0ZXN0X3RpbWVvdXRfc2VjID0gc2VsZi5fdGltZW91dCh0ZXN0X2lu
cHV0KQorICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCisgICAgICAgIHNlbGYuX2NhbGxlci5w
b3N0KCdzdGFydGVkX3Rlc3QnLCB0ZXN0X2lucHV0LCB0ZXN0X3RpbWVvdXRfc2VjKQorCisgICAg
ICAgIHJlc3VsdCA9IHNlbGYuX3J1bl90ZXN0X3dpdGhfdGltZW91dCh0ZXN0X2lucHV0LCB0ZXN0
X3RpbWVvdXRfc2VjKQorCisgICAgICAgIGVsYXBzZWRfdGltZSA9IHRpbWUudGltZSgpIC0gc3Rh
cnQKKyAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QoJ2ZpbmlzaGVkX3Rlc3QnLCByZXN1bHQsIGVs
YXBzZWRfdGltZSkKKworICAgICAgICBzZWxmLl9jbGVhbl91cF9hZnRlcl90ZXN0KHRlc3RfaW5w
dXQsIHJlc3VsdCkKKworICAgIGRlZiBzdG9wKHNlbGYpOgorICAgICAgICBfbG9nLmRlYnVnKCIl
cyBjbGVhbmluZyB1cCIgJSBzZWxmLl9uYW1lKQorICAgICAgICBzZWxmLl9raWxsX2RyaXZlcigp
CisgICAgICAgIGlmIHNlbGYuX3Rlc3RzX3J1bl9maWxlOgorICAgICAgICAgICAgc2VsZi5fdGVz
dHNfcnVuX2ZpbGUuY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5fdGVzdHNfcnVuX2ZpbGUgPSBO
b25lCisKKyAgICBkZWYgX3RpbWVvdXQoc2VsZiwgdGVzdF9pbnB1dCk6CisgICAgICAgICIiIkNv
bXB1dGUgdGhlIGFwcHJvcHJpYXRlIHRpbWVvdXQgdmFsdWUgZm9yIGEgdGVzdC4iIiIKKyAgICAg
ICAgIyBUaGUgRHVtcFJlbmRlclRyZWUgd2F0Y2hkb2cgdXNlcyAyLjV4IHRoZSB0aW1lb3V0OyB3
ZSB3YW50IHRvIGJlCisgICAgICAgICMgbGFyZ2VyIHRoYW4gdGhhdC4gV2UgYWxzbyBhZGQgYSBs
aXR0bGUgbW9yZSBwYWRkaW5nIGlmIHdlJ3JlCisgICAgICAgICMgcnVubmluZyB0ZXN0cyBpbiBh
IHNlcGFyYXRlIHRocmVhZC4KKyAgICAgICAgIworICAgICAgICAjIE5vdGUgdGhhdCB3ZSBuZWVk
IHRvIGNvbnZlcnQgdGhlIHRlc3QgdGltZW91dCBmcm9tIGEKKyAgICAgICAgIyBzdHJpbmcgdmFs
dWUgaW4gbWlsbGlzZWNvbmRzIHRvIGEgZmxvYXQgZm9yIFB5dGhvbi4KKyAgICAgICAgZHJpdmVy
X3RpbWVvdXRfc2VjID0gMy4wICogZmxvYXQodGVzdF9pbnB1dC50aW1lb3V0KSAvIDEwMDAuMAor
ICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5ydW5fc2luZ2x5OgorICAgICAgICAgICAgcmV0
dXJuIGRyaXZlcl90aW1lb3V0X3NlYworCisgICAgICAgIHRocmVhZF9wYWRkaW5nX3NlYyA9IDEu
MAorICAgICAgICB0aHJlYWRfdGltZW91dF9zZWMgPSBkcml2ZXJfdGltZW91dF9zZWMgKyB0aHJl
YWRfcGFkZGluZ19zZWMKKyAgICAgICAgcmV0dXJuIHRocmVhZF90aW1lb3V0X3NlYworCisgICAg
ZGVmIF9raWxsX2RyaXZlcihzZWxmKToKKyAgICAgICAgIyBCZSBjYXJlZnVsIGFib3V0IGhvdyBh
bmQgd2hlbiB3ZSBraWxsIHRoZSBkcml2ZXI7IGlmIGRyaXZlci5zdG9wKCkKKyAgICAgICAgIyBy
YWlzZXMgYW4gZXhjZXB0aW9uLCB0aGlzIHJvdXRpbmUgbWF5IGdldCByZS1lbnRlcmVkIHZpYSBf
X2RlbF9fLgorICAgICAgICBkcml2ZXIgPSBzZWxmLl9kcml2ZXIKKyAgICAgICAgc2VsZi5fZHJp
dmVyID0gTm9uZQorICAgICAgICBpZiBkcml2ZXI6CisgICAgICAgICAgICBfbG9nLmRlYnVnKCIl
cyBraWxsaW5nIGRyaXZlciIgJSBzZWxmLl9uYW1lKQorICAgICAgICAgICAgZHJpdmVyLnN0b3Ao
KQorCisgICAgZGVmIF9ydW5fdGVzdF93aXRoX3RpbWVvdXQoc2VsZiwgdGVzdF9pbnB1dCwgdGlt
ZW91dCk6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMucnVuX3NpbmdseToKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLl9ydW5fdGVzdF9pbl9hbm90aGVyX3RocmVhZCh0ZXN0X2lucHV0LCB0aW1l
b3V0KQorICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3Rlc3RfaW5fdGhpc190aHJlYWQodGVzdF9p
bnB1dCkKKworICAgIGRlZiBfY2xlYW5fdXBfYWZ0ZXJfdGVzdChzZWxmLCB0ZXN0X2lucHV0LCBy
ZXN1bHQpOgorICAgICAgICBzZWxmLl9iYXRjaF9jb3VudCArPSAxCisgICAgICAgIHRlc3RfbmFt
ZSA9IHRlc3RfaW5wdXQudGVzdF9uYW1lCisgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlLndy
aXRlKHRlc3RfbmFtZSArICJcbiIpCisKKyAgICAgICAgaWYgcmVzdWx0LmZhaWx1cmVzOgorICAg
ICAgICAgICAgIyBDaGVjayBhbmQga2lsbCBEdW1wUmVuZGVyVHJlZSBpZiB3ZSBuZWVkIHRvLgor
ICAgICAgICAgICAgaWYgYW55KFtmLmRyaXZlcl9uZWVkc19yZXN0YXJ0KCkgZm9yIGYgaW4gcmVz
dWx0LmZhaWx1cmVzXSk6CisgICAgICAgICAgICAgICAgc2VsZi5fa2lsbF9kcml2ZXIoKQorICAg
ICAgICAgICAgICAgICMgUmVzZXQgdGhlIGJhdGNoIGNvdW50IHNpbmNlIHRoZSBzaGVsbCBqdXN0
IGJvdW5jZWQuCisgICAgICAgICAgICAgICAgc2VsZi5fYmF0Y2hfY291bnQgPSAwCisKKyAgICAg
ICAgICAgICMgUHJpbnQgdGhlIGVycm9yIG1lc3NhZ2UocykuCisgICAgICAgICAgICBfbG9nLmRl
YnVnKCIlcyAlcyBmYWlsZWQ6IiAlIChzZWxmLl9uYW1lLCB0ZXN0X25hbWUpKQorICAgICAgICAg
ICAgZm9yIGYgaW4gcmVzdWx0LmZhaWx1cmVzOgorICAgICAgICAgICAgICAgIF9sb2cuZGVidWco
IiVzICAlcyIgJSAoc2VsZi5fbmFtZSwgZi5tZXNzYWdlKCkpKQorICAgICAgICBlbGlmIHJlc3Vs
dC50eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLlNLSVA6CisgICAgICAgICAgICBfbG9nLmRlYnVn
KCIlcyAlcyBza2lwcGVkIiAlIChzZWxmLl9uYW1lLCB0ZXN0X25hbWUpKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgX2xvZy5kZWJ1ZygiJXMgJXMgcGFzc2VkIiAlIChzZWxmLl9uYW1lLCB0
ZXN0X25hbWUpKQorCisgICAgICAgIGlmIHNlbGYuX2JhdGNoX3NpemUgPiAwIGFuZCBzZWxmLl9i
YXRjaF9jb3VudCA+PSBzZWxmLl9iYXRjaF9zaXplOgorICAgICAgICAgICAgc2VsZi5fa2lsbF9k
cml2ZXIoKQorICAgICAgICAgICAgc2VsZi5fYmF0Y2hfY291bnQgPSAwCisKKyAgICBkZWYgX3J1
bl90ZXN0X2luX2Fub3RoZXJfdGhyZWFkKHNlbGYsIHRlc3RfaW5wdXQsIHRocmVhZF90aW1lb3V0
X3NlYyk6CisgICAgICAgICIiIlJ1biBhIHRlc3QgaW4gYSBzZXBhcmF0ZSB0aHJlYWQsIGVuZm9y
Y2luZyBhIGhhcmQgdGltZSBsaW1pdC4KKworICAgICAgICBTaW5jZSB3ZSBjYW4gb25seSBkZXRl
Y3QgdGhlIHRlcm1pbmF0aW9uIG9mIGEgdGhyZWFkLCBub3QgYW55IGludGVybmFsCisgICAgICAg
IHN0YXRlIG9yIHByb2dyZXNzLCB3ZSBjYW4gb25seSBydW4gcGVyLXRlc3QgdGltZW91dHMgd2hl
biBydW5uaW5nIHRlc3QKKyAgICAgICAgZmlsZXMgc2luZ2x5LgorCisgICAgICAgIEFyZ3M6Cisg
ICAgICAgICAgdGVzdF9pbnB1dDogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUg
YW5kIHRpbWVvdXQKKyAgICAgICAgICB0aHJlYWRfdGltZW91dF9zZWM6IHRpbWUgdG8gd2FpdCBi
ZWZvcmUga2lsbGluZyB0aGUgZHJpdmVyIHByb2Nlc3MuCisgICAgICAgIFJldHVybnM6CisgICAg
ICAgICAgQSBUZXN0UmVzdWx0CisgICAgICAgICIiIgorICAgICAgICB3b3JrZXIgPSBzZWxmCisK
KyAgICAgICAgZHJpdmVyID0gc2VsZi5fcG9ydC5jcmVhdGVfZHJpdmVyKHNlbGYuX3dvcmtlcl9u
dW1iZXIpCisKKyAgICAgICAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFk
KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICB0aHJl
YWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCisgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQg
PSBOb25lCisKKyAgICAgICAgICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgICAgICAgICAgc2Vs
Zi5yZXN1bHQgPSB3b3JrZXIuX3J1bl9zaW5nbGVfdGVzdChkcml2ZXIsIHRlc3RfaW5wdXQpCisK
KyAgICAgICAgdGhyZWFkID0gU2luZ2xlVGVzdFRocmVhZCgpCisgICAgICAgIHRocmVhZC5zdGFy
dCgpCisgICAgICAgIHRocmVhZC5qb2luKHRocmVhZF90aW1lb3V0X3NlYykKKyAgICAgICAgcmVz
dWx0ID0gdGhyZWFkLnJlc3VsdAorICAgICAgICBpZiB0aHJlYWQuaXNBbGl2ZSgpOgorICAgICAg
ICAgICAgIyBJZiBqb2luKCkgcmV0dXJuZWQgd2l0aCB0aGUgdGhyZWFkIHN0aWxsIHJ1bm5pbmcs
IHRoZQorICAgICAgICAgICAgIyBEdW1wUmVuZGVyVHJlZSBpcyBjb21wbGV0ZWx5IGh1bmcgYW5k
IHRoZXJlJ3Mgbm90aGluZworICAgICAgICAgICAgIyBtb3JlIHdlIGNhbiBkbyB3aXRoIGl0LiAg
V2UgaGF2ZSB0byBraWxsIGFsbCB0aGUKKyAgICAgICAgICAgICMgRHVtcFJlbmRlclRyZWVzIHRv
IGZyZWUgaXQgdXAuIElmIHdlJ3JlIHJ1bm5pbmcgbW9yZSB0aGFuCisgICAgICAgICAgICAjIG9u
ZSBEdW1wUmVuZGVyVHJlZSB0aHJlYWQsIHdlJ2xsIGVuZCB1cCBraWxsaW5nIHRoZSBvdGhlcgor
ICAgICAgICAgICAgIyBEdW1wUmVuZGVyVHJlZXMgdG9vLCBpbnRyb2R1Y2luZyBzcHVyaW91cyBj
cmFzaGVzLiBXZSBhY2NlcHQKKyAgICAgICAgICAgICMgdGhhdCB0cmFkZW9mZiBpbiBvcmRlciB0
byBhdm9pZCBsb3NpbmcgdGhlIHJlc3Qgb2YgdGhpcworICAgICAgICAgICAgIyB0aHJlYWQncyBy
ZXN1bHRzLgorICAgICAgICAgICAgX2xvZy5lcnJvcignVGVzdCB0aHJlYWQgaHVuZzoga2lsbGlu
ZyBhbGwgRHVtcFJlbmRlclRyZWVzJykKKworICAgICAgICBkcml2ZXIuc3RvcCgpCisKKyAgICAg
ICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RfcmVzdWx0cy5UZXN0
UmVzdWx0KHRlc3RfaW5wdXQudGVzdF9uYW1lLCBmYWlsdXJlcz1bXSwgdGVzdF9ydW5fdGltZT0w
KQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgX3J1bl90ZXN0X2luX3RoaXNfdGhy
ZWFkKHNlbGYsIHRlc3RfaW5wdXQpOgorICAgICAgICAiIiJSdW4gYSBzaW5nbGUgdGVzdCBmaWxl
IHVzaW5nIGEgc2hhcmVkIER1bXBSZW5kZXJUcmVlIHByb2Nlc3MuCisKKyAgICAgICAgQXJnczoK
KyAgICAgICAgICB0ZXN0X2lucHV0OiBPYmplY3QgY29udGFpbmluZyB0aGUgdGVzdCBmaWxlbmFt
ZSwgdXJpIGFuZCB0aW1lb3V0CisKKyAgICAgICAgUmV0dXJuczogYSBUZXN0UmVzdWx0IG9iamVj
dC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlciBhbmQgc2VsZi5fZHJpdmVy
Lmhhc19jcmFzaGVkKCk6CisgICAgICAgICAgICBzZWxmLl9raWxsX2RyaXZlcigpCisgICAgICAg
IGlmIG5vdCBzZWxmLl9kcml2ZXI6CisgICAgICAgICAgICBzZWxmLl9kcml2ZXIgPSBzZWxmLl9w
b3J0LmNyZWF0ZV9kcml2ZXIoc2VsZi5fd29ya2VyX251bWJlcikKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3J1bl9zaW5nbGVfdGVzdChzZWxmLl9kcml2ZXIsIHRlc3RfaW5wdXQpCisKKyAgICBkZWYg
X3J1bl9zaW5nbGVfdGVzdChzZWxmLCBkcml2ZXIsIHRlc3RfaW5wdXQpOgorICAgICAgICByZXR1
cm4gc2luZ2xlX3Rlc3RfcnVubmVyLnJ1bl9zaW5nbGVfdGVzdChzZWxmLl9wb3J0LCBzZWxmLl9v
cHRpb25zLAorICAgICAgICAgICAgdGVzdF9pbnB1dCwgZHJpdmVyLCBzZWxmLl9uYW1lKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
bWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL21hbmFnZXIucHkKaW5kZXggM2IzMjJlNzg1OWJlODUzZDRkYTE5OWY2NTlmMDFhZTc4NWRj
Yjc3YS4uZmI3NDVmZDdlN2M2YjA4ZGFhMzZlMTdkYzI0MzhiYjA3MmJiM2E1YiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdl
ci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyLnB5CkBAIC00NSw3ICs0NSw3IEBAIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAK
IGZyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBtZXNzYWdlX3Bvb2wKLWZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzIGltcG9ydCB3b3JrZXIKK2Zyb20gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLmNvbnRyb2xsZXJzLmxheW91dF90ZXN0X3J1bm5lciBpbXBvcnQgV29ya2VyCiBm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5maW5kZXIgaW1wb3J0IExheW91
dFRlc3RGaW5kZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzLnRlc3Rf
cmVzdWx0X3dyaXRlciBpbXBvcnQgVGVzdFJlc3VsdFdyaXRlcgogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IGpzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJh
dG9yCkBAIC02MDgsNyArNjA4LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICBz
ZWxmLl9wcmludGVyLnByaW50X3dvcmtlcnNfYW5kX3NoYXJkcyhudW1fd29ya2VycywgbGVuKGFs
bF9zaGFyZHMpLCBsZW4obG9ja2VkX3NoYXJkcykpCiAKICAgICAgICAgZGVmIHdvcmtlcl9mYWN0
b3J5KHdvcmtlcl9jb25uZWN0aW9uKToKLSAgICAgICAgICAgIHJldHVybiB3b3JrZXIuV29ya2Vy
KHdvcmtlcl9jb25uZWN0aW9uLCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX29wdGlv
bnMpCisgICAgICAgICAgICByZXR1cm4gV29ya2VyKHdvcmtlcl9jb25uZWN0aW9uLCBzZWxmLnJl
c3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX29wdGlvbnMpCiAKICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy5kcnlfcnVuOgogICAgICAgICAgICAgcmV0dXJuIChrZXlib2FyZF9pbnRlcnJ1cHRlZCwg
aW50ZXJydXB0ZWQsIHNlbGYuX3dvcmtlcl9zdGF0cy52YWx1ZXMoKSwgc2VsZi5fZ3JvdXBfc3Rh
dHMsIHNlbGYuX2FsbF9yZXN1bHRzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvd29ya2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvd29ya2VyLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiMTU4M2ZmZjMzN2YwNjc3YWMyMzBiYjgxNjQyMTNjNjNkMDQ3MzQ5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3dvcmtlci5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDIzMSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIiIiSGFuZGxlIG1lc3Nh
Z2VzIGZyb20gdGhlIE1hbmFnZXIgYW5kIGV4ZWN1dGVzIGFjdHVhbCB0ZXN0cy4iIiIKLQotaW1w
b3J0IGxvZ2dpbmcKLWltcG9ydCB0aHJlYWRpbmcKLWltcG9ydCB0aW1lCi0KLWZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzIGltcG9ydCBzaW5nbGVfdGVzdF9ydW5uZXIKLWZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMK
LWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1bHRzCi0K
LQotX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLWNsYXNzIFdvcmtlcihv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYWxsZXIsIHJlc3VsdHNfZGlyZWN0b3J5
LCBvcHRpb25zKToKLSAgICAgICAgc2VsZi5fY2FsbGVyID0gY2FsbGVyCi0gICAgICAgIHNlbGYu
X3dvcmtlcl9udW1iZXIgPSBjYWxsZXIud29ya2VyX251bWJlcgotICAgICAgICBzZWxmLl9uYW1l
ID0gY2FsbGVyLm5hbWUKLSAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSByZXN1bHRz
X2RpcmVjdG9yeQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgICAgICMg
VGhlIHJlbWFpbmluZyBmaWVsZHMgYXJlIGluaXRpYWxpemVkIGluIHN0YXJ0KCkKLSAgICAgICAg
c2VsZi5faG9zdCA9IE5vbmUKLSAgICAgICAgc2VsZi5fcG9ydCA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fYmF0Y2hfc2l6ZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fYmF0Y2hfY291bnQgPSBOb25lCi0g
ICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBOb25lCi0gICAgICAgIHNlbGYuX2RyaXZlciA9IE5v
bmUKLSAgICAgICAgc2VsZi5fdGVzdHNfcnVuX2ZpbGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3Rl
c3RzX3J1bl9maWxlbmFtZSA9IE5vbmUKLQotICAgIGRlZiBfX2RlbF9fKHNlbGYpOgotICAgICAg
ICBzZWxmLnN0b3AoKQotCi0gICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIG1l
dGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YXJ0aW5nIHRvIGJlIHVzZWQgYW5k
IGl0IGlzIHNhZmUKLSAgICAgICAgZm9yIHRoZSBvYmplY3QgdG8gY3JlYXRlIHN0YXRlIHRoYXQg
ZG9lcyBub3QgbmVlZCB0byBiZSBwaWNrbGVkICh1c3VhbGx5IHRoaXMgbWVhbnMKLSAgICAgICAg
aXQgaXMgY2FsbGVkIGluIGEgY2hpbGQgcHJvY2VzcykuIiIiCi0gICAgICAgIHNlbGYuX2hvc3Qg
PSBzZWxmLl9jYWxsZXIuaG9zdAotICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gc2VsZi5faG9z
dC5maWxlc3lzdGVtCi0gICAgICAgIHNlbGYuX3BvcnQgPSBzZWxmLl9ob3N0LnBvcnRfZmFjdG9y
eS5nZXQoc2VsZi5fb3B0aW9ucy5wbGF0Zm9ybSwgc2VsZi5fb3B0aW9ucykKLQotICAgICAgICBz
ZWxmLl9iYXRjaF9jb3VudCA9IDAKLSAgICAgICAgc2VsZi5fYmF0Y2hfc2l6ZSA9IHNlbGYuX29w
dGlvbnMuYmF0Y2hfc2l6ZSBvciAwCi0gICAgICAgIHRlc3RzX3J1bl9maWxlbmFtZSA9IHNlbGYu
X2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgInRlc3RzX3J1biVkLnR4
dCIgJSBzZWxmLl93b3JrZXJfbnVtYmVyKQotICAgICAgICBzZWxmLl90ZXN0c19ydW5fZmlsZSA9
IHNlbGYuX2ZpbGVzeXN0ZW0ub3Blbl90ZXh0X2ZpbGVfZm9yX3dyaXRpbmcodGVzdHNfcnVuX2Zp
bGVuYW1lKQotCi0gICAgZGVmIGhhbmRsZShzZWxmLCBuYW1lLCBzb3VyY2UsIHRlc3RfbGlzdF9u
YW1lLCB0ZXN0X2lucHV0cyk6Ci0gICAgICAgIGFzc2VydCBuYW1lID09ICd0ZXN0X2xpc3QnCi0g
ICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQotICAgICAgICBmb3IgdGVzdF9pbnB1dCBp
biB0ZXN0X2lucHV0czoKLSAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCi0g
ICAgICAgIGVsYXBzZWRfdGltZSA9IHRpbWUudGltZSgpIC0gc3RhcnRfdGltZQotICAgICAgICBz
ZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdF9saXN0JywgdGVzdF9saXN0X25hbWUsIGxl
bih0ZXN0X2lucHV0cyksIGVsYXBzZWRfdGltZSkKLQotICAgIGRlZiBfdXBkYXRlX3Rlc3RfaW5w
dXQoc2VsZiwgdGVzdF9pbnB1dCk6Ci0gICAgICAgIGlmIHRlc3RfaW5wdXQucmVmZXJlbmNlX2Zp
bGVzIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIExhenkgaW5pdGlhbGl6YXRpb24uCi0gICAgICAg
ICAgICB0ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxlcyA9IHNlbGYuX3BvcnQucmVmZXJlbmNlX2Zp
bGVzKHRlc3RfaW5wdXQudGVzdF9uYW1lKQotICAgICAgICBpZiB0ZXN0X2lucHV0LnJlZmVyZW5j
ZV9maWxlczoKLSAgICAgICAgICAgIHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0g
VHJ1ZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3Bp
eGVsX3Rlc3QgPSBzZWxmLl9wb3J0LnNob3VsZF9ydW5fYXNfcGl4ZWxfdGVzdCh0ZXN0X2lucHV0
KQotCi0gICAgZGVmIF9ydW5fdGVzdChzZWxmLCB0ZXN0X2lucHV0KToKLSAgICAgICAgc2VsZi5f
dXBkYXRlX3Rlc3RfaW5wdXQodGVzdF9pbnB1dCkKLSAgICAgICAgdGVzdF90aW1lb3V0X3NlYyA9
IHNlbGYuX3RpbWVvdXQodGVzdF9pbnB1dCkKLSAgICAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQot
ICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnc3RhcnRlZF90ZXN0JywgdGVzdF9pbnB1dCwgdGVz
dF90aW1lb3V0X3NlYykKLQotICAgICAgICByZXN1bHQgPSBzZWxmLl9ydW5fdGVzdF93aXRoX3Rp
bWVvdXQodGVzdF9pbnB1dCwgdGVzdF90aW1lb3V0X3NlYykKLQotICAgICAgICBlbGFwc2VkX3Rp
bWUgPSB0aW1lLnRpbWUoKSAtIHN0YXJ0Ci0gICAgICAgIHNlbGYuX2NhbGxlci5wb3N0KCdmaW5p
c2hlZF90ZXN0JywgcmVzdWx0LCBlbGFwc2VkX3RpbWUpCi0KLSAgICAgICAgc2VsZi5fY2xlYW5f
dXBfYWZ0ZXJfdGVzdCh0ZXN0X2lucHV0LCByZXN1bHQpCi0KLSAgICBkZWYgc3RvcChzZWxmKToK
LSAgICAgICAgX2xvZy5kZWJ1ZygiJXMgY2xlYW5pbmcgdXAiICUgc2VsZi5fbmFtZSkKLSAgICAg
ICAgc2VsZi5fa2lsbF9kcml2ZXIoKQotICAgICAgICBpZiBzZWxmLl90ZXN0c19ydW5fZmlsZToK
LSAgICAgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlLmNsb3NlKCkKLSAgICAgICAgICAgIHNl
bGYuX3Rlc3RzX3J1bl9maWxlID0gTm9uZQotCi0gICAgZGVmIF90aW1lb3V0KHNlbGYsIHRlc3Rf
aW5wdXQpOgotICAgICAgICAiIiJDb21wdXRlIHRoZSBhcHByb3ByaWF0ZSB0aW1lb3V0IHZhbHVl
IGZvciBhIHRlc3QuIiIiCi0gICAgICAgICMgVGhlIER1bXBSZW5kZXJUcmVlIHdhdGNoZG9nIHVz
ZXMgMi41eCB0aGUgdGltZW91dDsgd2Ugd2FudCB0byBiZQotICAgICAgICAjIGxhcmdlciB0aGFu
IHRoYXQuIFdlIGFsc28gYWRkIGEgbGl0dGxlIG1vcmUgcGFkZGluZyBpZiB3ZSdyZQotICAgICAg
ICAjIHJ1bm5pbmcgdGVzdHMgaW4gYSBzZXBhcmF0ZSB0aHJlYWQuCi0gICAgICAgICMKLSAgICAg
ICAgIyBOb3RlIHRoYXQgd2UgbmVlZCB0byBjb252ZXJ0IHRoZSB0ZXN0IHRpbWVvdXQgZnJvbSBh
Ci0gICAgICAgICMgc3RyaW5nIHZhbHVlIGluIG1pbGxpc2Vjb25kcyB0byBhIGZsb2F0IGZvciBQ
eXRob24uCi0gICAgICAgIGRyaXZlcl90aW1lb3V0X3NlYyA9IDMuMCAqIGZsb2F0KHRlc3RfaW5w
dXQudGltZW91dCkgLyAxMDAwLjAKLSAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMucnVuX3Np
bmdseToKLSAgICAgICAgICAgIHJldHVybiBkcml2ZXJfdGltZW91dF9zZWMKLQotICAgICAgICB0
aHJlYWRfcGFkZGluZ19zZWMgPSAxLjAKLSAgICAgICAgdGhyZWFkX3RpbWVvdXRfc2VjID0gZHJp
dmVyX3RpbWVvdXRfc2VjICsgdGhyZWFkX3BhZGRpbmdfc2VjCi0gICAgICAgIHJldHVybiB0aHJl
YWRfdGltZW91dF9zZWMKLQotICAgIGRlZiBfa2lsbF9kcml2ZXIoc2VsZik6Ci0gICAgICAgICMg
QmUgY2FyZWZ1bCBhYm91dCBob3cgYW5kIHdoZW4gd2Uga2lsbCB0aGUgZHJpdmVyOyBpZiBkcml2
ZXIuc3RvcCgpCi0gICAgICAgICMgcmFpc2VzIGFuIGV4Y2VwdGlvbiwgdGhpcyByb3V0aW5lIG1h
eSBnZXQgcmUtZW50ZXJlZCB2aWEgX19kZWxfXy4KLSAgICAgICAgZHJpdmVyID0gc2VsZi5fZHJp
dmVyCi0gICAgICAgIHNlbGYuX2RyaXZlciA9IE5vbmUKLSAgICAgICAgaWYgZHJpdmVyOgotICAg
ICAgICAgICAgX2xvZy5kZWJ1ZygiJXMga2lsbGluZyBkcml2ZXIiICUgc2VsZi5fbmFtZSkKLSAg
ICAgICAgICAgIGRyaXZlci5zdG9wKCkKLQotICAgIGRlZiBfcnVuX3Rlc3Rfd2l0aF90aW1lb3V0
KHNlbGYsIHRlc3RfaW5wdXQsIHRpbWVvdXQpOgotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnJ1
bl9zaW5nbHk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3Rlc3RfaW5fYW5vdGhlcl90
aHJlYWQodGVzdF9pbnB1dCwgdGltZW91dCkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl90ZXN0
X2luX3RoaXNfdGhyZWFkKHRlc3RfaW5wdXQpCi0KLSAgICBkZWYgX2NsZWFuX3VwX2FmdGVyX3Rl
c3Qoc2VsZiwgdGVzdF9pbnB1dCwgcmVzdWx0KToKLSAgICAgICAgc2VsZi5fYmF0Y2hfY291bnQg
Kz0gMQotICAgICAgICB0ZXN0X25hbWUgPSB0ZXN0X2lucHV0LnRlc3RfbmFtZQotICAgICAgICBz
ZWxmLl90ZXN0c19ydW5fZmlsZS53cml0ZSh0ZXN0X25hbWUgKyAiXG4iKQotCi0gICAgICAgIGlm
IHJlc3VsdC5mYWlsdXJlczoKLSAgICAgICAgICAgICMgQ2hlY2sgYW5kIGtpbGwgRHVtcFJlbmRl
clRyZWUgaWYgd2UgbmVlZCB0by4KLSAgICAgICAgICAgIGlmIGFueShbZi5kcml2ZXJfbmVlZHNf
cmVzdGFydCgpIGZvciBmIGluIHJlc3VsdC5mYWlsdXJlc10pOgotICAgICAgICAgICAgICAgIHNl
bGYuX2tpbGxfZHJpdmVyKCkKLSAgICAgICAgICAgICAgICAjIFJlc2V0IHRoZSBiYXRjaCBjb3Vu
dCBzaW5jZSB0aGUgc2hlbGwganVzdCBib3VuY2VkLgotICAgICAgICAgICAgICAgIHNlbGYuX2Jh
dGNoX2NvdW50ID0gMAotCi0gICAgICAgICAgICAjIFByaW50IHRoZSBlcnJvciBtZXNzYWdlKHMp
LgotICAgICAgICAgICAgX2xvZy5kZWJ1ZygiJXMgJXMgZmFpbGVkOiIgJSAoc2VsZi5fbmFtZSwg
dGVzdF9uYW1lKSkKLSAgICAgICAgICAgIGZvciBmIGluIHJlc3VsdC5mYWlsdXJlczoKLSAgICAg
ICAgICAgICAgICBfbG9nLmRlYnVnKCIlcyAgJXMiICUgKHNlbGYuX25hbWUsIGYubWVzc2FnZSgp
KSkKLSAgICAgICAgZWxpZiByZXN1bHQudHlwZSA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQOgot
ICAgICAgICAgICAgX2xvZy5kZWJ1ZygiJXMgJXMgc2tpcHBlZCIgJSAoc2VsZi5fbmFtZSwgdGVz
dF9uYW1lKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIF9sb2cuZGVidWcoIiVzICVzIHBh
c3NlZCIgJSAoc2VsZi5fbmFtZSwgdGVzdF9uYW1lKSkKLQotICAgICAgICBpZiBzZWxmLl9iYXRj
aF9zaXplID4gMCBhbmQgc2VsZi5fYmF0Y2hfY291bnQgPj0gc2VsZi5fYmF0Y2hfc2l6ZToKLSAg
ICAgICAgICAgIHNlbGYuX2tpbGxfZHJpdmVyKCkKLSAgICAgICAgICAgIHNlbGYuX2JhdGNoX2Nv
dW50ID0gMAotCi0gICAgZGVmIF9ydW5fdGVzdF9pbl9hbm90aGVyX3RocmVhZChzZWxmLCB0ZXN0
X2lucHV0LCB0aHJlYWRfdGltZW91dF9zZWMpOgotICAgICAgICAiIiJSdW4gYSB0ZXN0IGluIGEg
c2VwYXJhdGUgdGhyZWFkLCBlbmZvcmNpbmcgYSBoYXJkIHRpbWUgbGltaXQuCi0KLSAgICAgICAg
U2luY2Ugd2UgY2FuIG9ubHkgZGV0ZWN0IHRoZSB0ZXJtaW5hdGlvbiBvZiBhIHRocmVhZCwgbm90
IGFueSBpbnRlcm5hbAotICAgICAgICBzdGF0ZSBvciBwcm9ncmVzcywgd2UgY2FuIG9ubHkgcnVu
IHBlci10ZXN0IHRpbWVvdXRzIHdoZW4gcnVubmluZyB0ZXN0Ci0gICAgICAgIGZpbGVzIHNpbmds
eS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIHRlc3RfaW5wdXQ6IE9iamVjdCBjb250YWlu
aW5nIHRoZSB0ZXN0IGZpbGVuYW1lIGFuZCB0aW1lb3V0Ci0gICAgICAgICAgdGhyZWFkX3RpbWVv
dXRfc2VjOiB0aW1lIHRvIHdhaXQgYmVmb3JlIGtpbGxpbmcgdGhlIGRyaXZlciBwcm9jZXNzLgot
ICAgICAgICBSZXR1cm5zOgotICAgICAgICAgIEEgVGVzdFJlc3VsdAotICAgICAgICAiIiIKLSAg
ICAgICAgd29ya2VyID0gc2VsZgotCi0gICAgICAgIGRyaXZlciA9IHNlbGYuX3BvcnQuY3JlYXRl
X2RyaXZlcihzZWxmLl93b3JrZXJfbnVtYmVyKQotCi0gICAgICAgIGNsYXNzIFNpbmdsZVRlc3RU
aHJlYWQodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZik6
Ci0gICAgICAgICAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAg
ICAgICAgICAgIHNlbGYucmVzdWx0ID0gTm9uZQotCi0gICAgICAgICAgICBkZWYgcnVuKHNlbGYp
OgotICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gd29ya2VyLl9ydW5fc2luZ2xlX3Rlc3Qo
ZHJpdmVyLCB0ZXN0X2lucHV0KQotCi0gICAgICAgIHRocmVhZCA9IFNpbmdsZVRlc3RUaHJlYWQo
KQotICAgICAgICB0aHJlYWQuc3RhcnQoKQotICAgICAgICB0aHJlYWQuam9pbih0aHJlYWRfdGlt
ZW91dF9zZWMpCi0gICAgICAgIHJlc3VsdCA9IHRocmVhZC5yZXN1bHQKLSAgICAgICAgaWYgdGhy
ZWFkLmlzQWxpdmUoKToKLSAgICAgICAgICAgICMgSWYgam9pbigpIHJldHVybmVkIHdpdGggdGhl
IHRocmVhZCBzdGlsbCBydW5uaW5nLCB0aGUKLSAgICAgICAgICAgICMgRHVtcFJlbmRlclRyZWUg
aXMgY29tcGxldGVseSBodW5nIGFuZCB0aGVyZSdzIG5vdGhpbmcKLSAgICAgICAgICAgICMgbW9y
ZSB3ZSBjYW4gZG8gd2l0aCBpdC4gIFdlIGhhdmUgdG8ga2lsbCBhbGwgdGhlCi0gICAgICAgICAg
ICAjIER1bXBSZW5kZXJUcmVlcyB0byBmcmVlIGl0IHVwLiBJZiB3ZSdyZSBydW5uaW5nIG1vcmUg
dGhhbgotICAgICAgICAgICAgIyBvbmUgRHVtcFJlbmRlclRyZWUgdGhyZWFkLCB3ZSdsbCBlbmQg
dXAga2lsbGluZyB0aGUgb3RoZXIKLSAgICAgICAgICAgICMgRHVtcFJlbmRlclRyZWVzIHRvbywg
aW50cm9kdWNpbmcgc3B1cmlvdXMgY3Jhc2hlcy4gV2UgYWNjZXB0Ci0gICAgICAgICAgICAjIHRo
YXQgdHJhZGVvZmYgaW4gb3JkZXIgdG8gYXZvaWQgbG9zaW5nIHRoZSByZXN0IG9mIHRoaXMKLSAg
ICAgICAgICAgICMgdGhyZWFkJ3MgcmVzdWx0cy4KLSAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1Rl
c3QgdGhyZWFkIGh1bmc6IGtpbGxpbmcgYWxsIER1bXBSZW5kZXJUcmVlcycpCi0KLSAgICAgICAg
ZHJpdmVyLnN0b3AoKQotCi0gICAgICAgIGlmIG5vdCByZXN1bHQ6Ci0gICAgICAgICAgICByZXN1
bHQgPSB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0X2lucHV0LnRlc3RfbmFtZSwgZmFpbHVy
ZXM9W10sIHRlc3RfcnVuX3RpbWU9MCkKLSAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0gICAgZGVm
IF9ydW5fdGVzdF9pbl90aGlzX3RocmVhZChzZWxmLCB0ZXN0X2lucHV0KToKLSAgICAgICAgIiIi
UnVuIGEgc2luZ2xlIHRlc3QgZmlsZSB1c2luZyBhIHNoYXJlZCBEdW1wUmVuZGVyVHJlZSBwcm9j
ZXNzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdGVzdF9pbnB1dDogT2JqZWN0IGNvbnRh
aW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUsIHVyaSBhbmQgdGltZW91dAotCi0gICAgICAgIFJldHVy
bnM6IGEgVGVzdFJlc3VsdCBvYmplY3QuCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLl9k
cml2ZXIgYW5kIHNlbGYuX2RyaXZlci5oYXNfY3Jhc2hlZCgpOgotICAgICAgICAgICAgc2VsZi5f
a2lsbF9kcml2ZXIoKQotICAgICAgICBpZiBub3Qgc2VsZi5fZHJpdmVyOgotICAgICAgICAgICAg
c2VsZi5fZHJpdmVyID0gc2VsZi5fcG9ydC5jcmVhdGVfZHJpdmVyKHNlbGYuX3dvcmtlcl9udW1i
ZXIpCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fc2luZ2xlX3Rlc3Qoc2VsZi5fZHJpdmVyLCB0
ZXN0X2lucHV0KQotCi0gICAgZGVmIF9ydW5fc2luZ2xlX3Rlc3Qoc2VsZiwgZHJpdmVyLCB0ZXN0
X2lucHV0KToKLSAgICAgICAgcmV0dXJuIHNpbmdsZV90ZXN0X3J1bm5lci5ydW5fc2luZ2xlX3Rl
c3Qoc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucywKLSAgICAgICAgICAgIHRlc3RfaW5wdXQsIGRy
aXZlciwgc2VsZi5fbmFtZSkK
</data>
<flag name="review"
          id="165162"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>