<?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>163804</bug_id>
          
          <creation_ts>2016-10-21 11:48:27 -0700</creation_ts>
          <short_desc>JavaScriptCore tests should have a mode to use a shared jsc process</short_desc>
          <delta_ts>2018-02-14 15:16:33 -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>WebKit Nightly Build</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Christopher Reid">chris.reid</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>fpizlo</cc>
    
    <cc>fujii</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lforschler</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1243020</commentid>
    <comment_count>0</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2016-10-21 11:48:27 -0700</bug_when>
    <thetext>This problem is a bit specific to us, we have a huge ~6s overhead for launching processes. jsc-stress-tests takes over 24 hours to run due to each test launching its own process.
We would like a way to share a jsc process between tests.

The approach we were thinking of implementing was to use stdio on a shared process for tests. Because the test runner uses shell scripts and ruby, it doesn&apos;t seem possible on all platforms to send input to that process across multiple shell scripts.
We would likely need a way to use only ruby to run tests for this to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243121</commentid>
    <comment_count>1</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2016-10-21 15:17:36 -0700</bug_when>
    <thetext>An alternative solution would be to write a client and server wrapping jsc. This would avoid having to re-write the test scripts with ruby but it&apos;s adding a potentially unwanted layer of complexity.

Are there any preferred approaches to this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243129</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-10-21 15:38:57 -0700</bug_when>
    <thetext>DumpRenderTree accepts a series of file names through stdio and runs them sequentially. I think it would be fine to add a command-line option for that to jsc.cpp.

I&apos;m not sure how to solve your broader problem of not being able to launch processes for the scripted testing harness. Our test harness is pretty strongly designed around being able to launch processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254962</commentid>
    <comment_count>3</comment_count>
      <attachid>295764</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2016-11-30 14:01:13 -0800</bug_when>
    <thetext>Created attachment 295764
Patch

The batch mode param is right now a lot more coupled in to the jsc-tests than I would like. I was mainly wanting some initial feedback on what would like to be seen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254963</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-30 14:03:47 -0800</bug_when>
    <thetext>Attachment 295764 did not pass style-queue:


ERROR: Source/JavaScriptCore/jsc.cpp:2856:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jsc.cpp:2867:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/jsc.cpp:2867:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/jsc.cpp:2891:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/jsc.cpp:2891:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/jsc.cpp:3180:  Extra space before )  [whitespace/parens] [2]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254967</commentid>
    <comment_count>5</comment_count>
      <attachid>295764</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-30 14:12:14 -0800</bug_when>
    <thetext>Comment on attachment 295764
Patch

This is a very invasive change to the test harness, and most JSC developers have platforms that have fast process start.  We rely on the fact that tests are isolated in a lot of subtle ways, including relying on shell scripts that wrap each test.  I don&apos;t want to lose this invariant in the test harness, because it will make all of our other test hacking harder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399138</commentid>
    <comment_count>6</comment_count>
      <attachid>295764</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-02-14 10:36:08 -0800</bug_when>
    <thetext>Comment on attachment 295764
Patch

Patches that have been up for review since 2016 are almost certainly too stale to be relevant to trunk in their current form.

If this patch is still important please rebase it and post it for review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399285</commentid>
    <comment_count>7</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2018-02-14 15:16:33 -0800</bug_when>
    <thetext>Closing this as it is no longer relevant.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295764</attachid>
            <date>2016-11-30 14:01:13 -0800</date>
            <delta_ts>2018-02-14 10:36:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>163804.diff</filename>
            <type>text/plain</type>
            <size>22313</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDAyNmU2OTAuLjc5NDdkNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTExLTI5ICBDaHJpc3RvcGhlciBS
ZWlkICA8Q2hyaXN0b3BoZXIuUmVpZEBhbS5zb255LmNvbT4KKworICAgICAgICBKYXZhU2NyaXB0
Q29yZSB0ZXN0cyBzaG91bGQgaGF2ZSBhIG1vZGUgdG8gdXNlIGEgc2hhcmVkIGpzYyBwcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM4MDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcg
YW4gb3B0aW9uIC0tYmF0Y2gtZmlsZT08ZmlsZT4gYW5kIC1iIDxmaWxlPiB0byBydW4gYWxsIHNj
cmlwdHMgbGlzdGVkIGluIHRoZSBmaWxlLgorICAgICAgICBDdXJyZW50bHkgb25seSBvbmUgYmF0
Y2ggZmlsZSBpcyBzdXBwb3J0ZWQuCisKKyAgICAgICAgKiBqc2MuY3BwOgorCiAyMDE2LTExLTI5
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEVuYWJs
ZSB0d28gY2xhbmcgd2FybmluZ3MgcmVjb21tZW5kZWQgYnkgWGNvZGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKaW5kZXggMmQ5NWQ2NC4uYmRiZTNkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTEwMTMs
NyArMTAxMyw4IEBAIHN0cnVjdCBTY3JpcHQgewogCiAgICAgZW51bSBjbGFzcyBTY3JpcHRUeXBl
IHsKICAgICAgICAgU2NyaXB0LAotICAgICAgICBNb2R1bGUKKyAgICAgICAgTW9kdWxlLAorICAg
ICAgICBCYXRjaEZpbGUKICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBDb2RlU291cmNlIHsKQEAg
LTEwNDcsNiArMTA0OCw4IEBAIHB1YmxpYzoKICAgICBib29sIG1faW50ZXJhY3RpdmUgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9kdW1wIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW9kdWxlIHsgZmFs
c2UgfTsKKyAgICBib29sIG1fYmF0Y2ggeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNCYXRjaEZp
bGVzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZXhpdENvZGUgeyBmYWxzZSB9OwogICAgIFZlY3Rv
cjxTY3JpcHQ+IG1fc2NyaXB0czsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2FyZ3VtZW50czsKQEAg
LTI4NDEsNiArMjg0NCw1NCBAQCBzdGF0aWMgYm9vbCBydW5XaXRoU2NyaXB0cyhHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFNjcmlwdD4mIHNjcgogICAgIHJldHVybiBz
dWNjZXNzOwogfQogCitzdGF0aWMgYm9vbCBydW5XaXRoQmF0Y2hTY3JpcHRzKEdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8U2NyaXB0PiYgc2NyaXB0cywgY29uc3QgU3Ry
aW5nJiB1bmNhdWdodEV4Y2VwdGlvbk5hbWUsIGJvb2wgYWx3YXlzRHVtcFVuY2F1Z2h0RXhjZXB0
aW9uLCBib29sIGR1bXAsIGJvb2wgbW9kdWxlLCBib29sIGJhdGNoKSB7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KHZtKTsKKworICAgIFN0cmluZyBmaWxlTmFtZTsKKyAgICBWZWN0b3I8U2NyaXB0PiBzY3JpcHRz
VG9SdW47CisgICAgVmVjdG9yPFZlY3RvcjxjaGFyPj4gZmlsZU5hbWVzOworCisgICAgc2l6ZV90
IGJhdGNoU2NyaXB0SWR4ID0gMDsgLy8gV2Ugb25seSBleHBlY3QgdGhlcmUgdG8gYmUgb25lIGJh
dGNoIGZpbGUKKyAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOworCisgICAgZm9yIChzaXplX3QgaT0w
OyBpPHNjcmlwdHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgYm9vbCBpc0JhdGNoID0gYmF0Y2gg
fHwgc2NyaXB0c1tpXS5zY3JpcHRUeXBlID09IFNjcmlwdDo6U2NyaXB0VHlwZTo6QmF0Y2hGaWxl
OworCisgICAgICAgIGlmIChpc0JhdGNoKSB7CisgICAgICAgICAgICBWZWN0b3I8Y2hhcj4gZmls
ZURhdGE7CisgICAgICAgICAgICBpZiAoIWZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5c3RlbShz
Y3JpcHRzW2ldLmFyZ3VtZW50LCBmaWxlRGF0YSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgICAgICBWZWN0b3I8Y2hhcj4gZmlsZU5hbWU7CisgICAgICAgICAgICBm
b3IgKFZlY3RvcjxjaGFyPjo6aXRlcmF0b3IgaXQgPSBmaWxlRGF0YS5iZWdpbigpOyBpdCAhPSBm
aWxlRGF0YS5lbmQoKTsgaXQrKykgeworICAgICAgICAgICAgICAgIGlmICgqaXQgIT0gJ1xyJyAm
JiAqaXQgIT0gJ1xuJykKKyAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWUuYXBwZW5kKCppdCk7
CisgICAgICAgICAgICAgICAgaWYgKCppdCA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAg
IGZpbGVOYW1lLmFwcGVuZCgnXDAnKTsKKyAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWVzLmFw
cGVuZChmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lLmNsZWFyKCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBiYXRjaFNjcmlw
dElkeCA9IGk7CisgICAgICAgIH0KKyAgICAgICAgc2NyaXB0c1RvUnVuLmFwcGVuZChzY3JpcHRz
W2ldKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpPTA7IGk8ZmlsZU5hbWVzLnNpemUoKTsg
aSsrKSB7CisgICAgICAgIHNjcmlwdHNUb1J1bltiYXRjaFNjcmlwdElkeF0gPSBTY3JpcHQoU2Ny
aXB0OjpTdHJpY3RNb2RlOjpTbG9wcHksIFNjcmlwdDo6Q29kZVNvdXJjZTo6RmlsZSwgU2NyaXB0
OjpTY3JpcHRUeXBlOjpTY3JpcHQsIGZpbGVOYW1lc1tpXS5kYXRhKCkpOworCisgICAgICAgIEds
b2JhbE9iamVjdCogbmV3R2xvYmFsT2JqZWN0ID0gR2xvYmFsT2JqZWN0OjpjcmVhdGUodm0sIEds
b2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBqc051bGwoKSksIFZlY3RvcjxTdHJpbmc+
KCkpOworICAgICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBydW5XaXRoU2NyaXB0cyhuZXdHbG9i
YWxPYmplY3QsIHNjcmlwdHNUb1J1biwgdW5jYXVnaHRFeGNlcHRpb25OYW1lLCBhbHdheXNEdW1w
VW5jYXVnaHRFeGNlcHRpb24sIGR1bXAsIG1vZHVsZSk7CisKKyAgICAgICAgdm0uZHJhaW5NaWNy
b3Rhc2tzKCk7CisgICAgICAgIHZtLmhlYXAucmVwb3J0QWJhbmRvbmVkT2JqZWN0R3JhcGgoKTsK
KyAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICB9CisgICAgcmV0dXJuIHN1Y2Nl
c3M7Cit9CisKICNkZWZpbmUgUlVOTklOR19GUk9NX1hDT0RFIDAKIAogc3RhdGljIHZvaWQgcnVu
SW50ZXJhY3RpdmUoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCkBAIC0yOTEwLDYgKzI5NjEs
NyBAQCBzdGF0aWMgdm9pZCBydW5JbnRlcmFjdGl2ZShHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKIHN0YXRpYyBOT19SRVRVUk4gdm9pZCBwcmludFVzYWdlU3RhdGVtZW50KGJvb2wgaGVscCA9
IGZhbHNlKQogewogICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6IGpzYyBbb3B0aW9uc10gW2Zp
bGVzXSBbLS0gYXJndW1lbnRzXVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC1iICAgICAg
ICAgVHJlYXQgYWxsIGdpdmVuIGZpbGVzIGFzIGJhdGNoZWQgZmlsZXNcbiIpOwogICAgIGZwcmlu
dGYoc3RkZXJyLCAiICAtZCAgICAgICAgIER1bXBzIGJ5dGVjb2RlIChkZWJ1ZyBidWlsZHMgb25s
eSlcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAtZSAgICAgICAgIEV2YWx1YXRlIGFyZ3Vt
ZW50IGFzIHNjcmlwdCBjb2RlXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWYgICAgICAg
ICBTcGVjaWZpZXMgYSBzb3VyY2UgZmlsZSAoZGVwcmVjYXRlZClcbiIpOwpAQCAtMjkzMSw2ICsy
OTgzLDcgQEAgc3RhdGljIE5PX1JFVFVSTiB2b2lkIHByaW50VXNhZ2VTdGF0ZW1lbnQoYm9vbCBo
ZWxwID0gZmFsc2UpCiAgICAgZnByaW50ZihzdGRlcnIsICIgIC0tb3B0aW9ucyAgICAgICAgICAg
ICAgICAgIER1bXBzIGFsbCBKU0MgVk0gb3B0aW9ucyBhbmQgZXhpdHNcbiIpOwogICAgIGZwcmlu
dGYoc3RkZXJyLCAiICAtLWR1bXBPcHRpb25zICAgICAgICAgICAgICBEdW1wcyBhbGwgbm9uLWRl
ZmF1bHQgSlNDIFZNIG9wdGlvbnMgYmVmb3JlIGNvbnRpbnVpbmdcbiIpOwogICAgIGZwcmludGYo
c3RkZXJyLCAiICAtLTxqc2MgVk0gb3B0aW9uPj08dmFsdWU+ICBTZXRzIHRoZSBzcGVjaWZpZWQg
SlNDIFZNIG9wdGlvblxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tYmF0Y2gtZmlsZT08
ZmlsZT4gICAgICAgIFJ1biBhbGwgc2NyaXB0cyBsaXN0ZWQgaW4gdGhlIHNwZWNpZmllZCBmaWxl
XG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CiAKICAgICBqc2NFeGl0KGhlbHAgPyBF
WElUX1NVQ0NFU1MgOiBFWElUX0ZBSUxVUkUpOwpAQCAtMjk3OCw2ICszMDMxLDExIEBAIHZvaWQg
Q29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAg
ICAgICAgIG1fbW9kdWxlID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CisgICAgICAgIGlmICghc3RyY21wKGFyZywgIi1iIikpIHsKKyAgICAgICAgICAgIG1fYmF0Y2gg
PSB0cnVlOworICAgICAgICAgICAgbV9oYXNCYXRjaEZpbGVzID0gdHJ1ZTsKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgIGlmICghc3RyY21wKGFyZywgIi1zIikpIHsK
ICNpZiBIQVZFKFNJR05BTF9IKQogICAgICAgICAgICAgc2lnbmFsKFNJR0lMTCwgX2V4aXQpOwpA
QCAtMzA0NSw2ICszMTAzLDEzIEBAIHZvaWQgQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
KyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGJhdGNoRmlsZVN0ckxlbmd0aCA9IHN0cmxl
bigiLS1iYXRjaC1maWxlPSIpOworICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1iYXRjaC1m
aWxlPSIsIGJhdGNoRmlsZVN0ckxlbmd0aCkpIHsKKyAgICAgICAgICAgIG1fc2NyaXB0cy5hcHBl
bmQoU2NyaXB0KFNjcmlwdDo6U3RyaWN0TW9kZTo6U2xvcHB5LCBTY3JpcHQ6OkNvZGVTb3VyY2U6
OkZpbGUsIFNjcmlwdDo6U2NyaXB0VHlwZTo6QmF0Y2hGaWxlLCBhcmd2W2ldICsgYmF0Y2hGaWxl
U3RyTGVuZ3RoKSk7CisgICAgICAgICAgICBtX2hhc0JhdGNoRmlsZXMgPSB0cnVlOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIXN0cmNtcChhcmcsICIt
LWR1bXBFeGNlcHRpb24iKSkgewogICAgICAgICAgICAgbV9hbHdheXNEdW1wVW5jYXVnaHRFeGNl
cHRpb24gPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CkBAIC0zMTAxLDcgKzMxNjYsMTEg
QEAgc3RhdGljIGludCBORVZFUl9JTkxJTkUgcnVuSlNDKFZNKiB2bSwgQ29tbWFuZExpbmUgb3B0
aW9ucykKIAogICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gR2xvYmFsT2JqZWN0Ojpj
cmVhdGUoKnZtLCBHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdm0sIGpzTnVsbCgpKSwg
b3B0aW9ucy5tX2FyZ3VtZW50cyk7CiAgICAgZ2xvYmFsT2JqZWN0LT5zZXRSZW1vdGVEZWJ1Z2dp
bmdFbmFibGVkKG9wdGlvbnMubV9lbmFibGVSZW1vdGVEZWJ1Z2dpbmcpOwotICAgIGJvb2wgc3Vj
Y2VzcyA9IHJ1bldpdGhTY3JpcHRzKGdsb2JhbE9iamVjdCwgb3B0aW9ucy5tX3NjcmlwdHMsIG9w
dGlvbnMubV91bmNhdWdodEV4Y2VwdGlvbk5hbWUsIG9wdGlvbnMubV9hbHdheXNEdW1wVW5jYXVn
aHRFeGNlcHRpb24sIG9wdGlvbnMubV9kdW1wLCBvcHRpb25zLm1fbW9kdWxlKTsKKyAgICBib29s
IHN1Y2Nlc3M7CisgICAgaWYgKG9wdGlvbnMubV9oYXNCYXRjaEZpbGVzKQorICAgICAgICBzdWNj
ZXNzID0gcnVuV2l0aEJhdGNoU2NyaXB0cyhnbG9iYWxPYmplY3QsIG9wdGlvbnMubV9zY3JpcHRz
LCBvcHRpb25zLm1fdW5jYXVnaHRFeGNlcHRpb25OYW1lLCBvcHRpb25zLm1fYWx3YXlzRHVtcFVu
Y2F1Z2h0RXhjZXB0aW9uLCBvcHRpb25zLm1fZHVtcCwgb3B0aW9ucy5tX21vZHVsZSwgb3B0aW9u
cy5tX2JhdGNoICk7CisgICAgZWxzZQorICAgICAgICBzdWNjZXNzID0gcnVuV2l0aFNjcmlwdHMo
Z2xvYmFsT2JqZWN0LCBvcHRpb25zLm1fc2NyaXB0cywgb3B0aW9ucy5tX3VuY2F1Z2h0RXhjZXB0
aW9uTmFtZSwgb3B0aW9ucy5tX2Fsd2F5c0R1bXBVbmNhdWdodEV4Y2VwdGlvbiwgb3B0aW9ucy5t
X2R1bXAsIG9wdGlvbnMubV9tb2R1bGUpOwogICAgIGlmIChvcHRpb25zLm1faW50ZXJhY3RpdmUg
JiYgc3VjY2VzcykKICAgICAgICAgcnVuSW50ZXJhY3RpdmUoZ2xvYmFsT2JqZWN0KTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0M2ZmOWMu
LjM0YWQwOGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNi0xMS0yOSAgQ2hyaXN0b3BoZXIgUmVpZCAgPENocmlz
dG9waGVyLlJlaWRAYW0uc29ueS5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdENvcmUgdGVzdHMg
c2hvdWxkIGhhdmUgYSBtb2RlIHRvIHVzZSBhIHNoYXJlZCBqc2MgcHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzODA0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGluaXRpYWwgc3Vw
cG9ydCBmb3IgYSAtLWJhdGNoIGFyZ3VtZW50IHdoaWNoIHVzZXMgb25lIGpzYyBwcm9jZXNzIHRv
IHJ1biBtdWx0aXBsZSB0ZXN0cy4KKyAgICAgICAgVGhlIGdvYWwgZm9yIHRoaXMgbW9kZSBpcyB0
byBtaW5pbWl6ZSBvdmVyaGVhZCBvbiBwbGF0Zm9ybXMgd2l0aCBhIGxhcmdlIHByb2Nlc3Mgc3Rh
cnR1cCB0aW1lLgorICAgICAgICBUZXN0cyBhcmUgYmF0Y2hlZCB0b2dldGhlciBiYXNlZCBvbiB0
aGUgZGlyZWN0b3J5IGl0IHJ1bnMgaW4sIHRoZSBjb21tYW5kIGl0J3MgcnVuIHdpdGgsCisgICAg
ICAgIGFuZCB0aGUgdGVzdCBjYXNlJ3MgY29sbGVjdGlvbiBkYXRhLgorICAgICAgICBDaGFrcmFj
b3JlIGFuZCBNb3ppbGxhIHRlc3Qgc3VpdGVzIGFyZSBub3QgYmF0Y2hlZCB0b28gd2VsbCBjdXJy
ZW50bHkgYXMgZXhwZWN0ZWQgb3V0cHV0cyBhcmUKKyAgICAgICAgcGFzc2VkIGluIHdpdGggdGhl
IGNvbW1hbmQgYW5kIHRoZXJlJ3Mgbm8gZWFzeSB3YXkgdG8gaXNvbGF0ZSB0aGUgZXhwZWN0ZWQg
b3V0cHV0IGZpbGVzIGF0IHRoZQorICAgICAgICB0aW1lIHRlc3RzIGFyZSBiYXRjaGVkLgorCisg
ICAgICAgICogU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgICogU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAxNi0xMS0yOSAgQ2FybG9zIEFsYmVydG8g
TG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTGludXhdIHJ1bi1i
ZW5jaG1hcmsgc2hvdWxkIGJlIGFibGUgdG8gZXhlY3V0ZSB0aGUgYmVuY2htYXJrcyB3aXRoIG1v
cmUgYnJvd3NlcnMuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCmluZGV4IGYw
MDFmZDIuLjZiNDRlN2IgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRj
b3JlLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCkBA
IC01Myw2ICs1Myw3IEBAIG15ICRjaGlsZFByb2Nlc3NlczsKIG15ICRzaGVsbFJ1bm5lcjsKIG15
ICRtYWtlUnVubmVyOwogbXkgJG1lbW9yeUxpbWl0ZWQ7CitteSAkYmF0Y2hNb2RlOwogCiBteSAk
YnVpbGRKU0MgPSAxOwogCkBAIC0xNDEsNiArMTQyLDcgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBb
b3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVhY2ggZW52aXJvbm1lbnQgdmFyaWFibGUgc2hvdWxkIGJlIHNl
cGFyYXRlZCBieSBhIHNwYWNlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmcu
IFwiZm9vPWJhciB4PXlcIiAobm8gcXVvdGVzKS4KICAgLS1nbWFsbG9jOiAgICAgICAgICAgICAg
ICAgICAgUnVuIHRlc3RzIHdpdGggR3VhcmQgTWFsbG9jIGVuYWJsZWQgKGlmIG5vIHBhdGggaXMg
Z2l2ZW46ICRnbWFsbG9jRGVmYXVsdFBhdGggaXMgdXNlZCkKKyAgLS1iYXRjaCAgICAgICAgICAg
ICAgICAgICAgICAgVXNlIG9ubHkgb25lIEphdmFTY3JpcHRDb3JlIHByb2Nlc3MgdG8gcnVuIG11
bHRpcGxlIHRlc3RzLgogCiBFbnZpcm9ubWVudCBWYXJpYWJsZXM6CiAgIC0gc2V0IFJVTl9KQVZB
U0NSSVBUQ09SRV9URVNUU19URVNUQVBJIHRvICJ0cnVlIiBvciAiZmFsc2UiIChubyBxdW90ZXMp
IHRvIGRldGVybWluZSBpZiB3ZSBydW4gdGhlIHRlc3RhcGkgdGVzdHMuCkBAIC0xNzAsNiArMTcy
LDcgQEAgR2V0T3B0aW9ucygKICAgICAnaGVscCcgPT4gXCRzaG93SGVscCwKICAgICAnZW52LXZh
cnM9cycgPT4gXCRlbnZWYXJzLAogICAgICdnbWFsbG9jOnMnID0+IFwkZ21hbGxvY1BhdGgsCisg
ICAgJ2JhdGNoJyA9PiBcJGJhdGNoTW9kZSwKICk7CiAKICMgQXNzdW1lIGFueSBhcmd1bWVudHMg
bGVmdCBvdmVyIGZyb20gR2V0T3B0aW9ucyBhcmUgYXNzdW1lZCB0byBiZSBidWlsZCBhcmd1bWVu
dHMKQEAgLTM1NCw2ICszNTcsMTAgQEAgc3ViIHJ1bkpTQ1N0cmVzc1Rlc3RzCiAgICAgICAgIHB1
c2goQGpzY1N0cmVzc0RyaXZlckNtZCwgJGZpbHRlcik7CiAgICAgfQogCisgICAgaWYgKCRiYXRj
aE1vZGUpIHsKKyAgICAgICAgcHVzaChAanNjU3RyZXNzRHJpdmVyQ21kLCAiLS1iYXRjaCIpOwor
ICAgIH0KKwogICAgICMgRW5kIG9wdGlvbiBwcm9jZXNzaW5nLCB0aGUgcmVzdCBvZiB0aGUgYXJn
dW1lbnRzIGFyZSB0ZXN0cwogICAgIHB1c2goQGpzY1N0cmVzc0RyaXZlckNtZCwgIi0tIik7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IGRkMDI2OWIuLjA1ODNkZTAgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtMTE4LDYgKzExOCw3IEBAICRmaWx0ZXIgPSBu
aWwKICRlbnZWYXJzID0gW10KICRxdWlja01vZGUgPSBmYWxzZQogJGJ1aWxkVHlwZSA9ICJyZWxl
YXNlIgorJGJhdGNoTW9kZSA9IGZhbHNlCiAKIAogZGVmIHVzYWdlCkBAIC0xNTAsNiArMTUxLDcg
QEAgZGVmIHVzYWdlCiAgICAgcHV0cyAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuZy4g
XCJmb289YmFyIHg9eVwiIChubyBxdW90ZXMpLiBOb3RlLCBpZiB5b3UgcGFzcyBEWUxEX0ZSQU1F
V09SS19QQVRIIgogICAgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdCB3aWxs
IG92ZXJyaWRlIHRoZSBkZWZhdWx0IHZhbHVlLiIKICAgICBwdXRzICItLXF1aWNrICAgICAgICAg
ICAgICAoLXEpICAgT25seSBydW4gd2l0aCB0aGUgZGVmYXVsdCBhbmQgbm8tY2ppdC12YWxpZGF0
ZSBtb2Rlcy4iCisgICAgcHV0cyAiLS1iYXRjaCAgICAgICAgICAgICAgICAgICAgIFVzZSBvbmx5
IG9uZSBKYXZhU2NyaXB0Q29yZSBwcm9jZXNzIHRvIHJ1biBtdWx0aXBsZSB0ZXN0cy4iCiAgICAg
ZXhpdCAxCiBlbmQKIApAQCAtMTc2LDcgKzE3OCw4IEBAIEdldG9wdExvbmcubmV3KFsnLS1oZWxw
JywgJy1oJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAogICAgICAgICAgICAgICAgWyctLWVu
di12YXJzJywgR2V0b3B0TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAogICAgICAgICAgICAgICAg
WyctLWRlYnVnJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAogICAgICAgICAgICAgICAgWyct
LXJlbGVhc2UnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0sCi0gICAgICAgICAgICAgICBbJy0t
cXVpY2snLCAnLXEnLCBHZXRvcHRMb25nOjpOT19BUkdVTUVOVF0pLmVhY2ggeworICAgICAgICAg
ICAgICAgWyctLXF1aWNrJywgJy1xJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAorICAgICAg
ICAgICAgICAgWyctLWJhdGNoJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdKS5lYWNoIHsKICAg
ICB8IG9wdCwgYXJnIHwKICAgICBjYXNlIG9wdAogICAgIHdoZW4gJy0taGVscCcKQEAgLTIwNSw2
ICsyMDgsOCBAQCBHZXRvcHRMb25nLm5ldyhbJy0taGVscCcsICctaCcsIEdldG9wdExvbmc6Ok5P
X0FSR1VNRU5UXSwKICAgICAgICAgJHRlc3RSdW5uZXJUeXBlID0gOnNoZWxsCiAgICAgd2hlbiAn
LS1tYWtlLXJ1bm5lcicKICAgICAgICAgJHRlc3RSdW5uZXJUeXBlID0gOm1ha2UKKyAgICB3aGVu
ICctLWJhdGNoJworICAgICAgICAkYmF0Y2hNb2RlID0gdHJ1ZQogICAgIHdoZW4gJy0tcmVtb3Rl
JwogICAgICAgICAkY29weVZNID0gdHJ1ZQogICAgICAgICAkdGFyYmFsbCA9IHRydWUKQEAgLTQy
NSw2ICs0MzAsMTAgQEAgRUFHRVJfT1BUSU9OUyA9IFsiLS10aHJlc2hvbGRGb3JKSVRBZnRlcldh
cm1VcD0xMCIsICItLXRocmVzaG9sZEZvckpJVFNvb249MTAiLAogTk9fQ0pJVF9PUFRJT05TID0g
WyItLXVzZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS10aHJlc2hvbGRGb3JKSVRBZnRlcldhcm1V
cD0xMDAiLCAiLS1zY3JpYmJsZUZyZWVDZWxscz10cnVlIl0KIEZUTF9PUFRJT05TID0gWyItLXVz
ZUZUTEpJVD10cnVlIl0KIAorZGVmIGJhdGNoT3B0aW9ucworICAgICRiYXRjaE1vZGU/IFsiLWIi
XSA6IFtdCitlbmQKKwogJHJ1bmxpc3QgPSBbXQogCiBkZWYgZnJhbWV3b3JrRnJvbUpTQ1BhdGgo
anNjUGF0aCkKQEAgLTUzOSw3ICs1NDgsOCBAQCBkZWYgZGlmZkVycm9ySGFuZGxlcihleHBlY3Rl
ZEZpbGVuYW1lKQogICAgICAgICAKICAgICAgICAgb3V0cC5wdXRzICJpZiB0ZXN0IC1lICN7cGxh
bi5mYWlsRmlsZX0iCiAgICAgICAgIG91dHAucHV0cyAidGhlbiIKLSAgICAgICAgb3V0cC5wdXRz
ICIgICAgKGNhdCAje291dHB1dEZpbGVuYW1lfSAmJiBlY2hvIEVSUk9SOiBVbmV4cGVjdGVkIGV4
aXQgY29kZTogYGNhdCAje3BsYW4uZmFpbEZpbGV9YCkgfCAiICsgcmVkaXJlY3RBbmRQcmVmaXhD
b21tYW5kKHBsYW4ubmFtZSkKKyAgICAgICAgb3V0cC5wdXRzICIgICAgKGNhdCAje291dHB1dEZp
bGVuYW1lfSAmJiBlY2hvIEVSUk9SOiBVbmV4cGVjdGVkIGV4aXQgY29kZTogYGNhdCAje3BsYW4u
ZmFpbEZpbGV9YCkgfCAiICsgcmVkaXJlY3RBbmRQcmVmaXhDb21tYW5kKHBsYW4ubmFtZSkgaWYg
ISRiYXRjaE1vZGUKKyAgICAgICAgb3V0cC5wdXRzICIgICAgKHRhaWwgLTMwICN7b3V0cHV0Rmls
ZW5hbWV9ICYmIGVjaG8gRVJST1I6IFVuZXhwZWN0ZWQgZXhpdCBjb2RlOiBgY2F0ICN7cGxhbi5m
YWlsRmlsZX1gKSB8ICIgKyByZWRpcmVjdEFuZFByZWZpeENvbW1hbmQocGxhbi5uYW1lKSBpZiAk
YmF0Y2hNb2RlCiAgICAgICAgIG91dHAucHV0cyAiICAgICIgKyBwbGFuLmZhaWxDb21tYW5kCiAg
ICAgICAgIG91dHAucHV0cyAiZWxpZiB0ZXN0IC1lIC4uLyN7U2hlbGx3b3Jkcy5zaGVsbGVzY2Fw
ZShleHBlY3RlZEZpbGVuYW1lKX0iCiAgICAgICAgIG91dHAucHV0cyAidGhlbiIKQEAgLTU0OCw3
ICs1NTgsOCBAQCBkZWYgZGlmZkVycm9ySGFuZGxlcihleHBlY3RlZEZpbGVuYW1lKQogICAgICAg
ICBvdXRwLnB1dHMgIiAgICB0aGVuIgogICAgICAgICBvdXRwLnB1dHMgIiAgICAiICsgcGxhbi5z
dWNjZXNzQ29tbWFuZAogICAgICAgICBvdXRwLnB1dHMgIiAgICBlbHNlIgotICAgICAgICBvdXRw
LnB1dHMgIiAgICAgICAgKGVjaG8gXCJESUZGIEZBSUxVUkUhXCIgJiYgY2F0ICN7ZGlmZkZpbGVu
YW1lfSkgfCAiICsgcmVkaXJlY3RBbmRQcmVmaXhDb21tYW5kKHBsYW4ubmFtZSkKKyAgICAgICAg
b3V0cC5wdXRzICIgICAgICAgIChlY2hvIFwiRElGRiBGQUlMVVJFIVwiICYmIGNhdCAje2RpZmZG
aWxlbmFtZX0pIHwgIiArIHJlZGlyZWN0QW5kUHJlZml4Q29tbWFuZChwbGFuLm5hbWUpIGlmICEk
YmF0Y2hNb2RlCisgICAgICAgIG91dHAucHV0cyAiICAgICAgICAoZWNobyBcIkRJRkYgRkFJTFVS
RSFcIiAmJiBoZWFkIC0zMCAje2RpZmZGaWxlbmFtZX0pIHwgIiArIHJlZGlyZWN0QW5kUHJlZml4
Q29tbWFuZChwbGFuLm5hbWUpIGlmICRiYXRjaE1vZGUKICAgICAgICAgb3V0cC5wdXRzICIgICAg
ICAgICIgKyBwbGFuLmZhaWxDb21tYW5kCiAgICAgICAgIG91dHAucHV0cyAiICAgIGZpIgogICAg
ICAgICBvdXRwLnB1dHMgImVsc2UiCkBAIC03ODgsNyArNzk5LDcgQEAgZGVmIHNsb3chCiBlbmQK
IAogZGVmIHJ1bihraW5kLCAqb3B0aW9ucykKLSAgICBhZGRSdW5Db21tYW5kKGtpbmQsIFtwYXRo
VG9WTS50b19zXSArIEJBU0VfT1BUSU9OUyArIG9wdGlvbnMgKyBbJGJlbmNobWFyay50b19zXSwg
c2lsZW50T3V0cHV0SGFuZGxlciwgc2ltcGxlRXJyb3JIYW5kbGVyKQorICAgIGFkZFJ1bkNvbW1h
bmQoa2luZCwgW3BhdGhUb1ZNLnRvX3NdICsgQkFTRV9PUFRJT05TICsgb3B0aW9ucyArIGJhdGNo
T3B0aW9ucyArIFskYmVuY2htYXJrLnRvX3NdLCBzaWxlbnRPdXRwdXRIYW5kbGVyLCBzaW1wbGVF
cnJvckhhbmRsZXIpCiBlbmQKIAogZGVmIHJ1bk5vRlRMKCpvcHRpb25hbFRlc3RTcGVjaWZpY09w
dGlvbnMpCkBAIC0xMDI3LDEyICsxMDM4LDEyIEBAIGRlZiBydW5Qcm9maWxlcgogZW5kCiAKIGRl
ZiBydW5FeGNlcHRpb25GdXp6Ci0gICAgc3ViQ29tbWFuZCA9IGVzY2FwZUFsbChbcGF0aFRvVk0u
dG9fcywgJGJlbmNobWFyay50b19zXSkKKyAgICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKFtwYXRo
VG9WTS50b19zLCAkYmVuY2htYXJrLnRvX3NdICsgYmF0Y2hPcHRpb25zKQogICAgIGFkZFJ1bkNv
bW1hbmQoImV4Y2VwdGlvbi1mdXp6IiwgWyJwZXJsIiwgKHBhdGhUb0hlbHBlcnMgKyAianMtZXhj
ZXB0aW9uLWZ1enoiKS50b19zLCBzdWJDb21tYW5kXSwgc2lsZW50T3V0cHV0SGFuZGxlciwgc2lt
cGxlRXJyb3JIYW5kbGVyKQogZW5kCiAKIGRlZiBydW5FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enoo
bmFtZSwgKm9wdGlvbnMpCi0gICAgc3ViQ29tbWFuZCA9IGVzY2FwZUFsbChbcGF0aFRvVk0udG9f
cywgJGJlbmNobWFyay50b19zXSArIG9wdGlvbnMpCisgICAgc3ViQ29tbWFuZCA9IGVzY2FwZUFs
bChbcGF0aFRvVk0udG9fcywgJGJlbmNobWFyay50b19zXSArIG9wdGlvbnMgKyBiYXRjaE9wdGlv
bnMpCiAgICAgYWRkUnVuQ29tbWFuZCgiZXhlY3V0YWJsZS1hbGxvY2F0aW9uLWZ1enotIiArIG5h
bWUsIFsicGVybCIsIChwYXRoVG9IZWxwZXJzICsgImpzLWV4ZWN1dGFibGUtYWxsb2NhdGlvbi1m
dXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNpbGVudE91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9y
SGFuZGxlcikKIGVuZAogCkBAIC0xMTAyLDYgKzExMTMsOCBAQCBkZWYgcnVuVGVzdDI2Mihtb2Rl
LCBleGNlcHRpb24sIGluY2x1ZGVGaWxlcywgZmxhZ3MpCiAgICAgICAgIGtpbmQgPSAiZGVmYXVs
dCIKICAgICAgICAgaWYgaXNNb2R1bGUKICAgICAgICAgICAgIGFyZ3MgPDwgIi0tbW9kdWxlLWZp
bGU9I3skYmVuY2htYXJrfSIKKyAgICAgICAgZWxzaWYgJGJhdGNoTW9kZQorICAgICAgICAgICAg
YXJncyA8PCAiLS1iYXRjaC1maWxlPSN7YmVuY2htYXJrfSIKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgYXJncyA8PCAkYmVuY2htYXJrLnRvX3MKICAgICAgICAgZW5kCkBAIC0xMTE2LDcgKzEx
MjksNyBAQCBkZWYgcHJlcGFyZVRlc3QyNjJGaXh0dXJlCiBlbmQKIAogZGVmIHJ1bkVTNihtb2Rl
KQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyBbJGJlbmNobWFy
ay50b19zXQorICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyBiYXRj
aE9wdGlvbnMgKyBbJGJlbmNobWFyay50b19zXQogICAgIGNhc2UgbW9kZQogICAgIHdoZW4gOm5v
cm1hbAogICAgICAgICBlcnJvckhhbmRsZXIgPSBzaW1wbGVFcnJvckhhbmRsZXIKQEAgLTExNjQs
NyArMTE3Nyw3IEBAIGRlZiBydW5XZWJBc3NlbWJseQogZW5kCiAKIGRlZiBydW5DaGFrcmEobW9k
ZSwgZXhjZXB0aW9uLCBiYXNlbGluZUZpbGUsIGV4dHJhRmlsZXMpCi0gICAgcmFpc2UgdW5sZXNz
ICRiZW5jaG1hcmsudG9fcyA9fiAvXC5qcyQvCisgICAgcmFpc2UgdW5sZXNzICRiZW5jaG1hcmsu
dG9fcyA9fiAvXC5qcyQvIG9yICgkYmVuY2htYXJrLnRvX3MgPX4gL1wudHh0JC8gYW5kICRiYXRj
aE1vZGUpCiAgICAgZmFpbHNXaXRoRXhjZXB0aW9uID0gZXhjZXB0aW9uICE9ICJOb0V4Y2VwdGlv
biIKICAgICB0ZXN0TmFtZSA9ICR+LnByZV9tYXRjaAogCkBAIC0xMTgwLDcgKzExOTMsMTYgQEAg
ZGVmIHJ1bkNoYWtyYShtb2RlLCBleGNlcHRpb24sIGJhc2VsaW5lRmlsZSwgZXh0cmFGaWxlcykK
IAogICAgIGNhc2UgbW9kZQogICAgIHdoZW4gOmJhc2VsaW5lCi0gICAgICAgIHByZXBhcmVFeHRy
YVJlbGF0aXZlRmlsZXMoWyhQYXRobmFtZSgiLi4iKSArIGJhc2VsaW5lRmlsZSkudG9fc10sICRj
b2xsZWN0aW9uKQorICAgICAgICBpZiAoJGJhdGNoTW9kZSkKKyAgICAgICAgICAgIGV4cGVjdGVk
RmlsZXMgPSBbXQorICAgICAgICAgICAgJGJhdGNoVGVzdHMuZWFjaCB7CisgICAgICAgICAgICAg
ICAgfCB0ZXN0IHwKKyAgICAgICAgICAgICAgICBleHBlY3RlZEZpbGVzLnB1c2goKFBhdGhuYW1l
KCIuLiIpICsgYmFzZWxpbmVGaWxlKS50b19zKQorICAgICAgICAgICAgfQorICAgICAgICAgICAg
cHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlc0FwcGVuZChleHBlY3RlZEZpbGVzLCAkY29sbGVjdGlv
biwgKFBhdGhuYW1lKCIuLiIpICsgYmFzZWxpbmVGaWxlKS50b19zKQorICAgICAgICBlbHNlCisg
ICAgICAgICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKFsoUGF0aG5hbWUoIi4uIikgKyBi
YXNlbGluZUZpbGUpLnRvX3NdLCAkY29sbGVjdGlvbikKKyAgICAgICAgZW5kCiAgICAgICAgIGVy
cm9ySGFuZGxlciA9IGRpZmZFcnJvckhhbmRsZXIoKCRiZW5jaG1hcmtEaXJlY3RvcnkgKyBiYXNl
bGluZUZpbGUpLnRvX3MpCiAgICAgICAgIG91dHB1dEhhbmRsZXIgPSBub2lzeU91dHB1dEhhbmRs
ZXIKICAgICB3aGVuIDpwYXNzCkBAIC0xMTkzLDEzICsxMjE1LDEzIEBAIGRlZiBydW5DaGFrcmEo
bW9kZSwgZXhjZXB0aW9uLCBiYXNlbGluZUZpbGUsIGV4dHJhRmlsZXMpCiAgICAgZW5kCiAKICAg
ICBraW5kID0gImRlZmF1bHQiCi0gICAgYXJncyA8PCAkYmVuY2htYXJrLnRvX3MKKyAgICBhcmdz
IDw8ICgkYmF0Y2hNb2RlID8gIi0tYmF0Y2gtZmlsZT0iIDogIiIpICsgJGJlbmNobWFyay50b19z
CiAKICAgICBhZGRSdW5Db21tYW5kKGtpbmQsIGFyZ3MsIG91dHB1dEhhbmRsZXIsIGVycm9ySGFu
ZGxlcikKIGVuZAogCiBkZWYgcnVuTGF5b3V0VGVzdChraW5kLCAqb3B0aW9ucykKLSAgICByYWlz
ZSB1bmxlc3MgJGJlbmNobWFyay50b19zID1+IC9cLmpzJC8KKyAgICByYWlzZSB1bmxlc3MgJGJl
bmNobWFyay50b19zID1+IC9cLmpzJC8gfHwgKCRiYXRjaE1vZGUgYW5kICRiZW5jaG1hcmsudG9f
cyA9fiAvLnR4dC8pCiAgICAgdGVzdE5hbWUgPSAkfi5wcmVfbWF0Y2gKICAgICBpZiBraW5kCiAg
ICAgICAgIGtpbmQgPSAibGF5b3V0LSIgKyBraW5kCkBAIC0xMjA3LDEyICsxMjI5LDIzIEBAIGRl
ZiBydW5MYXlvdXRUZXN0KGtpbmQsICpvcHRpb25zKQogICAgICAgICBraW5kID0gImxheW91dCIK
ICAgICBlbmQKIAotICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoWyIuLi8je3Rlc3ROYW1l
fS1leHBlY3RlZC50eHQiXSwgJGJlbmNobWFya0RpcmVjdG9yeSkKKyAgICBpZiAoISRiYXRjaE1v
ZGUpCisgICAgICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoWyIuLi8je3Rlc3ROYW1lfS1l
eHBlY3RlZC50eHQiXSwgJGJlbmNobWFya0RpcmVjdG9yeSkKKyAgICBlbHNlCisgICAgICAgIGV4
cGVjdGVkRmlsZXMgPSBbXQorICAgICAgICAkYmF0Y2hUZXN0cy5lYWNoIHsKKyAgICAgICAgICAg
IHwgdGVzdCB8CisgICAgICAgICAgICByYWlzZSB1bmxlc3MgdGVzdC5iYXNlbmFtZS50b19zID1+
IC9cLmpzJC8KKyAgICAgICAgICAgIG5hbWUgPSAkfi5wcmVfbWF0Y2gKKyAgICAgICAgICAgIGV4
cGVjdGVkRmlsZXMucHVzaCgiLi4vLi4vI3tuYW1lfS1leHBlY3RlZC50eHQiKQorICAgICAgICB9
CisgICAgICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXNBcHBlbmQoZXhwZWN0ZWRGaWxlcywg
JGJlbmNobWFya0RpcmVjdG9yeSwgIi4uLyN7dGVzdE5hbWV9LWV4cGVjdGVkLnR4dCIpCisgICAg
ZW5kCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhMQVlPVVRURVNUU19QQVRILCBbInJl
c291cmNlcy9zdGFuZGFsb25lLXByZS5qcyIsICJyZXNvdXJjZXMvc3RhbmRhbG9uZS1wb3N0Lmpz
Il0pCiAKICAgICBhcmdzID0gW3BhdGhUb1ZNLnRvX3NdICsgQkFTRV9PUFRJT05TICsgb3B0aW9u
cyArCiAgICAgICAgIFsoUGF0aG5hbWUubmV3KCJyZXNvdXJjZXMiKSArICJzdGFuZGFsb25lLXBy
ZS5qcyIpLnRvX3MsCi0gICAgICAgICAkYmVuY2htYXJrLnRvX3MsCisgICAgICAgICAoJGJhdGNo
TW9kZT8gIi0tYmF0Y2gtZmlsZT0iIDogIiIpICsgJGJlbmNobWFyay50b19zLAogICAgICAgICAg
KFBhdGhuYW1lLm5ldygicmVzb3VyY2VzIikgKyAic3RhbmRhbG9uZS1wb3N0LmpzIikudG9fc10K
ICAgICBhZGRSdW5Db21tYW5kKGtpbmQsIGFyZ3MsIG5vaXN5T3V0cHV0SGFuZGxlciwgZGlmZkVy
cm9ySGFuZGxlcigoJGJlbmNobWFya0RpcmVjdG9yeSArICIuLi8je3Rlc3ROYW1lfS1leHBlY3Rl
ZC50eHQiKS50b19zKSkKIGVuZApAQCAtMTMyMiw2ICsxMzU1LDI4IEBAIGRlZiBwcmVwYXJlRXh0
cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMsIGRlc3RpbmF0aW9uKQogICAgIH0KIGVuZAogCitk
ZWYgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlc0FwcGVuZChleHRyYUZpbGVzLCBkZXN0aW5hdGlv
biwgZGVzdE5hbWUpCisgICAgRGlyLmNoZGlyKCRvdXRwdXREaXIpIHsKKyAgICAgICAgZGVzdCA9
IGRlc3RpbmF0aW9uICsgZGVzdE5hbWUKKyAgICAgICAgd3JpdHRlbiA9IGZhbHNlCisgICAgICAg
IGV4dHJhRmlsZXMuZWFjaCB7CisgICAgICAgICAgICB8IGZpbGUgfAorICAgICAgICAgICAgc3Jj
ID0gJGV4dHJhRmlsZXNCYXNlRGlyICsgZmlsZQorICAgICAgICAgICAgRmlsZVV0aWxzLm1rZGly
X3AoZGVzdC5kaXJuYW1lKQorICAgICAgICAgICAgaWYgIXdyaXR0ZW4KKyAgICAgICAgICAgICAg
ICBGaWxlVXRpbHMuY3Agc3JjLCBkZXN0CisgICAgICAgICAgICAgICAgd3JpdHRlbiA9IHRydWUK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkYXRhID0gRmlsZS5yZWFkKHNyYykK
KyAgICAgICAgICAgICAgICBGaWxlLm9wZW4oZGVzdCwgImEiKSB7CisgICAgICAgICAgICAgICAg
ICAgIHxvdXR8CisgICAgICAgICAgICAgICAgICAgIG91dC5wdXRzIGRhdGEKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorICAgIH0KK2VuZAorCiBkZWYgYmFz
ZURpckZvckNvbGxlY3Rpb24oY29sbGVjdGlvbk5hbWUpCiAgICAgUGF0aG5hbWUoIi50ZXN0cyIp
ICsgY29sbGVjdGlvbk5hbWUKIGVuZApAQCAtMTM0Niw3ICsxNDAxLDggQEAgZGVmIHJ1bk1vemls
bGFUZXN0KGtpbmQsIG1vZGUsIGV4dHJhRmlsZXMsICpvcHRpb25zKQogICAgICAgICBraW5kID0g
Im1vemlsbGEiCiAgICAgZW5kCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhleHRyYUZp
bGVzLm1hcHt8dnwgKFBhdGhuYW1lKCIuLiIpICsgdikudG9fc30sICRjb2xsZWN0aW9uKQotICAg
IGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyBvcHRpb25zICsgZXh0cmFG
aWxlcy5tYXB7fHZ8IHYudG9fc30gKyBbJGJlbmNobWFyay50b19zXQorICAgIGFyZ3MgPSBbcGF0
aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyBvcHRpb25zICsgZXh0cmFGaWxlcy5tYXB7fHZ8
IHYudG9fc30gKyBbKCRiYXRjaE1vZGU/ICItLWJhdGNoLWZpbGU9IiA6ICIiKSArICRiZW5jaG1h
cmsudG9fc10KKwogICAgIGNhc2UgbW9kZQogICAgIHdoZW4gOm5vcm1hbAogICAgICAgICBlcnJv
ckhhbmRsZXIgPSBtb3ppbGxhRXJyb3JIYW5kbGVyCkBAIC0xNDE0LDcgKzE0NzAsNyBAQCBkZWYg
ZGVmYXVsdFJ1bk1vemlsbGFUZXN0KG1vZGUsICpleHRyYUZpbGVzKQogZW5kCiAKIGRlZiBydW5O
b2lzeVRlc3Qoa2luZCwgKm9wdGlvbnMpCi0gICAgYWRkUnVuQ29tbWFuZChraW5kLCBbcGF0aFRv
Vk0udG9fc10gKyBCQVNFX09QVElPTlMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG5v
aXN5T3V0cHV0SGFuZGxlciwgbm9pc3lFcnJvckhhbmRsZXIpCisgICAgYWRkUnVuQ29tbWFuZChr
aW5kLCBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyBvcHRpb25zICsgYmF0Y2hPcHRp
b25zICsgWyRiZW5jaG1hcmsudG9fc10sIG5vaXN5T3V0cHV0SGFuZGxlciwgbm9pc3lFcnJvckhh
bmRsZXIpCiBlbmQKIAogZGVmIHJ1bk5vaXN5VGVzdERlZmF1bHQKQEAgLTE1MjIsNiArMTU3OCw4
IEBAIGRlZiBoYW5kbGVDb2xsZWN0aW9uRmlsZShjb2xsZWN0aW9uKQogICAgIGNvbGxlY3Rpb25O
YW1lID0gc2ltcGxpZnlDb2xsZWN0aW9uTmFtZShjb2xsZWN0aW9uKQogICAgCiAgICAgcGF0aHMg
PSB7fQorICAgIGJhdGNoRGF0YSA9IFN0cnVjdC5uZXcoOmRpciwgOmNtZCwgOmNvbGxlY3Rpb25T
b3VyY2UsIDpjb2xsZWN0aW9uRGVzdCwgOmNvbGxlY3Rpb25OYW1lKQorICAgIGJhdGNoVGVzdHMg
PSB7fQogICAgIHN1YkNvbGxlY3Rpb25zID0gW10KICAgICBZQU1MOjpsb2FkKElPOjpyZWFkKGNv
bGxlY3Rpb24pKS5lYWNoIHsKICAgICAgICAgfCBlbnRyeSB8CkBAIC0xNTU1LDYgKzE2MTMsNyBA
QCBkZWYgaGFuZGxlQ29sbGVjdGlvbkZpbGUoY29sbGVjdGlvbikKICAgICAgICAgfQogICAgICAg
ICAkY29sbGVjdGlvbk5hbWUgPSAkY29sbGVjdGlvbk5hbWUudG9fcwogICAgICAgICAKKyAgICAg
ICAgY29sbGVjdGlvblNvdXJjZSA9ICRjb2xsZWN0aW9uLmRpcmVjdG9yeT8gPyAkY29sbGVjdGlv
bi5yZWFscGF0aCA6ICRjb2xsZWN0aW9uLnJlYWxwYXRoLmRpcm5hbWUKICAgICAgICAgcHJlcGFy
ZUNvbGxlY3Rpb24oJGNvbGxlY3Rpb25OYW1lKQogICAgICAgCiAgICAgICAgIERpci5jaGRpcigk
b3V0cHV0RGlyKSB7CkBAIC0xNTc2LDEzICsxNjM1LDQ3IEBAIGRlZiBoYW5kbGVDb2xsZWN0aW9u
RmlsZShjb2xsZWN0aW9uKQogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgJGJlbmNobWFyayA9IHBhdGguYmFzZW5hbWUKICAgICAgICAgICAgICAgICAgICAgJGJlbmNo
bWFya0RpcmVjdG9yeSA9IHBhdGguZGlybmFtZQotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgJHJ1bkNvbW1hbmRPcHRpb25zID0ge30KLSAgICAgICAgICAgICAgICAg
ICAgZXZhbCBlbnRyeVsiY21kIl0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRiYXRjaE1vZGUp
CisgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uRGVzdCA9ICRjb2xsZWN0aW9uLmRp
cmVjdG9yeT8gPyAkY29sbGVjdGlvbi5yZWFscGF0aCA6ICRjb2xsZWN0aW9uLnJlYWxwYXRoLmRp
cm5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBiYXRjaERhdGEubmV3KCRiZW5j
aG1hcmtEaXJlY3RvcnksIGVudHJ5WyJjbWQiXSwgY29sbGVjdGlvblNvdXJjZSwgY29sbGVjdGlv
bkRlc3QsICRjb2xsZWN0aW9uTmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBi
YXRjaFRlc3RzLmhhc19rZXk/KGRhdGEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmF0
Y2hUZXN0c1tkYXRhXSA9IEFycmF5Lm5ldygpCisgICAgICAgICAgICAgICAgICAgICAgICBlbmQK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNoVGVzdHNbZGF0YV0ucHVzaChwYXRoKQorICAg
ICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAkcnVuQ29tbWFu
ZE9wdGlvbnMgPSB7fQorICAgICAgICAgICAgICAgICAgICAgICAgZXZhbCBlbnRyeVsiY21kIl0K
KyAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQorICAgIGlmICgkYmF0Y2hNb2RlKQorICAgICAgICB0ZXN0ID0g
MAorICAgICAgICBEaXIuY2hkaXIoJG91dHB1dERpcikgeworICAgICAgICAgICAgYmF0Y2hUZXN0
cy5lYWNoX2tleSB7CisgICAgICAgICAgICAgICAgfGRhdGF8CisgICAgICAgICAgICAgICAgdGVz
dCArPSAxCisgICAgICAgICAgICAgICAgZGlyID0gZGF0YS5kaXIKKyAgICAgICAgICAgICAgICBj
bWQgPSBkYXRhLmNtZAorICAgICAgICAgICAgICAgICRiZW5jaG1hcmsgPSAiYmF0Y2gje3Rlc3R9
LnR4dCIKKyAgICAgICAgICAgICAgICAkYmVuY2htYXJrRGlyZWN0b3J5ID0gZGlyCisgICAgICAg
ICAgICAgICAgJGJhdGNoVGVzdHMgPSBiYXRjaFRlc3RzW2RhdGFdCisgICAgICAgICAgICAgICAg
JGV4dHJhRmlsZXNCYXNlRGlyID0gZGF0YS5jb2xsZWN0aW9uU291cmNlICsgJGJlbmNobWFyawor
ICAgICAgICAgICAgICAgICRjb2xsZWN0aW9uID0gZGF0YS5jb2xsZWN0aW9uRGVzdCArICRiZW5j
aG1hcmsKKyAgICAgICAgICAgICAgICAkY29sbGVjdGlvbk5hbWUgPSBkYXRhLmNvbGxlY3Rpb25O
YW1lCisKKyAgICAgICAgICAgICAgICBGaWxlLm9wZW4oJGJlbmNobWFya0RpcmVjdG9yeSArICRi
ZW5jaG1hcmssICJhIikgeworICAgICAgICAgICAgICAgICAgICB8IG91dHAgfAorICAgICAgICAg
ICAgICAgICAgICBiYXRjaFRlc3RzW2RhdGFdLmVhY2ggeworICAgICAgICAgICAgICAgICAgICAg
ICAgfHRlc3R8CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIiN7dGVzdC5iYXNl
bmFtZX1cbiIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBldmFsIGNtZC50b19zCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBl
bmQKICAgICAKICAgICBzdWJDb2xsZWN0aW9ucy5lYWNoIHsKICAgICAgICAgfCBzdWJDb2xsZWN0
aW9uIHwKQEAgLTE1OTksMTQgKzE2OTIsMjUgQEAgZGVmIGhhbmRsZUNvbGxlY3Rpb25EaXJlY3Rv
cnkoY29sbGVjdGlvbikKICAgIAogICAgIERpci5jaGRpcigkb3V0cHV0RGlyKSB7CiAgICAgICAg
ICRiZW5jaG1hcmtEaXJlY3RvcnkgPSAkY29sbGVjdGlvbgorICAgICAgICBiYXRjaEZpbGUgPSAk
b3V0cHV0RGlyICsgJGJlbmNobWFya0RpcmVjdG9yeSArICJiYXRjaC50eHQiCiAgICAgICAgIGFs
bEpTRmlsZXMoJGNvbGxlY3Rpb24pLmVhY2ggewogICAgICAgICAgICAgfCBwYXRoIHwKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgJGJlbmNobWFyayA9IHBhdGguYmFzZW5hbWUKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgJHJ1bkNvbW1hbmRPcHRpb25zID0ge30KLSAgICAgICAgICAgIGRl
ZmF1bHRSdW4gdW5sZXNzIHBhcnNlUnVuQ29tbWFuZHMKKyAgICAgICAgICAgIGlmICgkYmF0Y2hN
b2RlKQorICAgICAgICAgICAgICAgIEZpbGUub3BlbihiYXRjaEZpbGUsICJhIikgeworICAgICAg
ICAgICAgICAgICAgICB8IG91dHAgfAorICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMgJGJl
bmNobWFyaworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAkcnVuQ29tbWFuZE9wdGlvbnMgPSB7fQorICAgICAgICAgICAgICAgIGRlZmF1bHRSdW4g
dW5sZXNzIHBhcnNlUnVuQ29tbWFuZHMKKyAgICAgICAgICAgIGVuZAogICAgICAgICB9CisgICAg
ICAgIGlmICgkYmF0Y2hNb2RlKQorICAgICAgICAgICAgJGJlbmNobWFyayA9IGJhdGNoRmlsZS5i
YXNlbmFtZQorICAgICAgICAgICAgZGVmYXVsdFJ1biB1bmxlc3MgcGFyc2VSdW5Db21tYW5kcwor
ICAgICAgICBlbmQKICAgICB9CiBlbmQKIAo=
</data>
<flag name="review"
          id="318300"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>