<?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>33764</bug_id>
          
          <creation_ts>2010-01-16 12:23:35 -0800</creation_ts>
          <short_desc>check-webkit-style: Finish eliminating need for global _CppStyleState instance.</short_desc>
          <delta_ts>2010-01-17 19:17:34 -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>
          <dependson>33678</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>181542</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-16 12:23:35 -0800</bug_when>
    <thetext>Only verbose_level is left now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181546</commentid>
    <comment_count>1</comment_count>
      <attachid>46746</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-16 13:04:24 -0800</bug_when>
    <thetext>Created attachment 46746
Proposed patch

The diff for this patch assumes the patch for bug 33678 has been committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181550</commentid>
    <comment_count>2</comment_count>
      <attachid>46748</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-16 13:17:21 -0800</bug_when>
    <thetext>Created attachment 46748
Proposed patch 2

Missed a change in checker.process_patch() and added a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181645</commentid>
    <comment_count>3</comment_count>
      <attachid>46767</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-17 16:12:24 -0800</bug_when>
    <thetext>Created attachment 46767
Proposed patch 2 (resubmit)

Resubmitting the latest patch to trigger the style-check, etc. now that the patch in bug 33678 has been committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181670</commentid>
    <comment_count>4</comment_count>
      <attachid>46767</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-01-17 17:33:18 -0800</bug_when>
    <thetext>Comment on attachment 46767
Proposed patch 2 (resubmit)

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181683</commentid>
    <comment_count>5</comment_count>
      <attachid>46767</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-17 18:22:50 -0800</bug_when>
    <thetext>Comment on attachment 46767
Proposed patch 2 (resubmit)

Clearing flags on attachment: 46767

Committed r53382: &lt;http://trac.webkit.org/changeset/53382&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181684</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-17 18:22:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181697</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-17 19:17:34 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 46767 [details])
&gt; Looks good.

Thanks a lot, Shinichiro.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46746</attachid>
            <date>2010-01-16 13:04:24 -0800</date>
            <delta_ts>2010-01-16 13:17:21 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-33764-1.txt</filename>
            <type>text/plain</type>
            <size>25936</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlZWE0MzhiLi41OWQ4ZjUyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDEt
MTYgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluaXNoZWQgZWxpbWluYXRpbmcg
X2NwcF9zdHlsZV9zdGF0ZSBnbG9iYWwgc3RhdGUgdmFyaWFibGUgZnJvbQorICAgICAgICBjaGVj
ay13ZWJraXQtc3R5bGUgY29kZSBhbmQgZWxpbWluYXRpbmcgX0NwcFN0eWxlU3RhdGUgY2xhc3Mu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNzY0
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAg
ICAgLSBNaW5vciB1cGRhdGVzIGNhdXNlZCBieSBjaGFuZ2VzIHRvIGNwcF9zdHlsZS5weS4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5OgorICAgICAgICAg
IC0gUmVtb3ZlZCBfQ3BwU3R5bGVTdGF0ZSBjbGFzcy4KKyAgICAgICAgICAtIFJlbW92ZWQgdmVy
Ym9zZV9sZXZlbCBmdW5jdGlvbnMuCisgICAgICAgICAgLSBBZGRlZCB2ZXJib3NpdHkgYXMgYSBw
YXJhbWV0ZXIgdG8gX0Z1bmN0aW9uU3RhdGUgY29uc3RydWN0b3IuCisgICAgICAgICAgLSBBZGRl
ZCB2ZXJib3NpdHkgYXMgYSBwYXJhbWV0ZXIgdG8gcHJvY2Vzc19maWxlKCkuCisgICAgICAgICAg
LSBBZGRlZCB2ZXJib3NpdHkgYXMgYSBwYXJhbWV0ZXIgdG8gcHJvY2Vzc19maWxlX2RhdGEoKS4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5
OgorICAgICAgICAgIC0gQWRkZWQgaGVscGVyIGZ1bmN0aW9ucyB0byBzZXQgdmVyYm9zaXR5IHdo
aWxlIHJ1bm5pbmcgdGVzdHMuCisKIDIwMTAtMDEtMTUgIENocmlzIEplcmRvbmVrICA8Y2plcmRv
bmVrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggYzQ2
YTU0NS4uNDJmMWUyMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQpAQCAtNjQ1LDkgKzY0NSw2IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3Qp
OgogICAgICAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIHNlbGYuZXJyb3JfY291
bnQgPSAwCiAKLSAgICAgICAgIyBGSVhNRTogRWxpbWluYXRlIHRoZSBuZWVkIHRvIHNldCBnbG9i
YWwgc3RhdGUgaGVyZS4KLSAgICAgICAgY3BwX3N0eWxlLl9zZXRfdmVyYm9zZV9sZXZlbChvcHRp
b25zLnZlcmJvc2l0eSkKLQogICAgIGRlZiBfaGFuZGxlX2Vycm9yKHNlbGYsIGZpbGVuYW1lLCBs
aW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAiIiJI
YW5kbGUgdGhlIG9jY3VycmVuY2Ugb2YgYSBzdHlsZSBlcnJvciB3aGlsZSBjaGVja2luZy4KIApA
QCAtNjg4LDcgKzY4NSw3IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3QpOgogCiAgICAgICAg
ICIiIgogICAgICAgICBpZiBjcHBfc3R5bGUuY2FuX2hhbmRsZShmaWxlbmFtZSkgb3IgZmlsZW5h
bWUgPT0gJy0nOgotICAgICAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZShmaWxlbmFtZSwg
c2VsZi5faGFuZGxlX2Vycm9yKQorICAgICAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZShm
aWxlbmFtZSwgc2VsZi5faGFuZGxlX2Vycm9yLCBzZWxmLm9wdGlvbnMudmVyYm9zaXR5KQogICAg
ICAgICBlbGlmIHRleHRfc3R5bGUuY2FuX2hhbmRsZShmaWxlbmFtZSk6CiAgICAgICAgICAgICB0
ZXh0X3N0eWxlLnByb2Nlc3NfZmlsZShmaWxlbmFtZSwgc2VsZi5faGFuZGxlX2Vycm9yKQogCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NwcF9zdHlsZS5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5CmluZGV4
IDM5NDBhNzUuLjNjMDcxOGUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY3BwX3N0eWxlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY3BwX3N0eWxlLnB5CkBAIC0yNDIsMzkgKzI0MiwxOSBAQCBjbGFzcyBfSW5jbHVkZVN0
YXRlKGRpY3QpOgogICAgICAgICByZXR1cm4gZXJyb3JfbWVzc2FnZQogCiAKLWNsYXNzIF9DcHBT
dHlsZVN0YXRlKG9iamVjdCk6Ci0gICAgIiIiTWFpbnRhaW5zIG1vZHVsZS13aWRlIHN0YXRlLi4i
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi52ZXJib3NlX2xldmVs
ID0gMSAgIyBnbG9iYWwgc2V0dGluZy4KLQotICAgIGRlZiBzZXRfdmVyYm9zZV9sZXZlbChzZWxm
LCBsZXZlbCk6Ci0gICAgICAgICIiIlNldHMgdGhlIG1vZHVsZSdzIHZlcmJvc2l0eSwgYW5kIHJl
dHVybnMgdGhlIHByZXZpb3VzIHNldHRpbmcuIiIiCi0gICAgICAgIGxhc3RfdmVyYm9zZV9sZXZl
bCA9IHNlbGYudmVyYm9zZV9sZXZlbAotICAgICAgICBzZWxmLnZlcmJvc2VfbGV2ZWwgPSBsZXZl
bAotICAgICAgICByZXR1cm4gbGFzdF92ZXJib3NlX2xldmVsCi0KLQotX2NwcF9zdHlsZV9zdGF0
ZSA9IF9DcHBTdHlsZVN0YXRlKCkKLQotCi1kZWYgX3ZlcmJvc2VfbGV2ZWwoKToKLSAgICAiIiJS
ZXR1cm5zIHRoZSBtb2R1bGUncyB2ZXJib3NpdHkgc2V0dGluZy4iIiIKLSAgICByZXR1cm4gX2Nw
cF9zdHlsZV9zdGF0ZS52ZXJib3NlX2xldmVsCi0KLQotZGVmIF9zZXRfdmVyYm9zZV9sZXZlbChs
ZXZlbCk6Ci0gICAgIiIiU2V0cyB0aGUgbW9kdWxlJ3MgdmVyYm9zaXR5LCBhbmQgcmV0dXJucyB0
aGUgcHJldmlvdXMgc2V0dGluZy4iIiIKLSAgICByZXR1cm4gX2NwcF9zdHlsZV9zdGF0ZS5zZXRf
dmVyYm9zZV9sZXZlbChsZXZlbCkKK2NsYXNzIF9GdW5jdGlvblN0YXRlKG9iamVjdCk6CisgICAg
IiIiVHJhY2tzIGN1cnJlbnQgZnVuY3Rpb24gbmFtZSBhbmQgdGhlIG51bWJlciBvZiBsaW5lcyBp
biBpdHMgYm9keS4KIAorICAgIEF0dHJpYnV0ZXM6CisgICAgICB2ZXJib3NpdHk6IFRoZSB2ZXJi
b3NpdHkgbGV2ZWwgdG8gdXNlIHdoaWxlIGNoZWNraW5nIHN0eWxlLgogCi1jbGFzcyBfRnVuY3Rp
b25TdGF0ZShvYmplY3QpOgotICAgICIiIlRyYWNrcyBjdXJyZW50IGZ1bmN0aW9uIG5hbWUgYW5k
IHRoZSBudW1iZXIgb2YgbGluZXMgaW4gaXRzIGJvZHkuIiIiCisgICAgIiIiCiAKICAgICBfTk9S
TUFMX1RSSUdHRVIgPSAyNTAgICMgZm9yIC0tdj0wLCA1MDAgZm9yIC0tdj0xLCBldGMuCiAgICAg
X1RFU1RfVFJJR0dFUiA9IDQwMCAgICAjIGFib3V0IDUwJSBtb3JlIHRoYW4gX05PUk1BTF9UUklH
R0VSLgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2
ZXJib3NpdHkpOgorICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IHZlcmJvc2l0eQogICAgICAgICBz
ZWxmLmluX2FfZnVuY3Rpb24gPSBGYWxzZQogICAgICAgICBzZWxmLmxpbmVzX2luX2Z1bmN0aW9u
ID0gMAogICAgICAgICBzZWxmLmN1cnJlbnRfZnVuY3Rpb24gPSAnJwpAQCAtMzA2LDcgKzI4Niw3
IEBAIGNsYXNzIF9GdW5jdGlvblN0YXRlKG9iamVjdCk6CiAgICAgICAgICAgICBiYXNlX3RyaWdn
ZXIgPSBzZWxmLl9URVNUX1RSSUdHRVIKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGJhc2Vf
dHJpZ2dlciA9IHNlbGYuX05PUk1BTF9UUklHR0VSCi0gICAgICAgIHRyaWdnZXIgPSBiYXNlX3Ry
aWdnZXIgKiAyICoqIF92ZXJib3NlX2xldmVsKCkKKyAgICAgICAgdHJpZ2dlciA9IGJhc2VfdHJp
Z2dlciAqIDIgKiogc2VsZi52ZXJib3NpdHkKIAogICAgICAgICBpZiBzZWxmLmxpbmVzX2luX2Z1
bmN0aW9uID4gdHJpZ2dlcjoKICAgICAgICAgICAgIGVycm9yX2xldmVsID0gaW50KG1hdGgubG9n
KHNlbGYubGluZXNfaW5fZnVuY3Rpb24gLyBiYXNlX3RyaWdnZXIsIDIpKQpAQCAtMjgyMyw3ICsy
ODAzLDcgQEAgZGVmIHByb2Nlc3NfbGluZShmaWxlbmFtZSwgZmlsZV9leHRlbnNpb24sCiAgICAg
Y2hlY2tfaW52YWxpZF9pbmNyZW1lbnQoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lLCBlcnJv
cikKIAogCi1kZWYgcHJvY2Vzc19maWxlX2RhdGEoZmlsZW5hbWUsIGZpbGVfZXh0ZW5zaW9uLCBs
aW5lcywgZXJyb3IpOgorZGVmIHByb2Nlc3NfZmlsZV9kYXRhKGZpbGVuYW1lLCBmaWxlX2V4dGVu
c2lvbiwgbGluZXMsIGVycm9yLCB2ZXJib3NpdHkpOgogICAgICIiIlBlcmZvcm1zIGxpbnQgY2hl
Y2tzIGFuZCByZXBvcnRzIGFueSBlcnJvcnMgdG8gdGhlIGdpdmVuIGVycm9yIGZ1bmN0aW9uLgog
CiAgICAgQXJnczoKQEAgLTI4MzcsNyArMjgxNyw3IEBAIGRlZiBwcm9jZXNzX2ZpbGVfZGF0YShm
aWxlbmFtZSwgZmlsZV9leHRlbnNpb24sIGxpbmVzLCBlcnJvcik6CiAgICAgICAgICAgICAgWycv
LyBtYXJrZXIgc28gbGluZSBudW1iZXJzIGVuZCBpbiBhIGtub3duIHdheSddKQogCiAgICAgaW5j
bHVkZV9zdGF0ZSA9IF9JbmNsdWRlU3RhdGUoKQotICAgIGZ1bmN0aW9uX3N0YXRlID0gX0Z1bmN0
aW9uU3RhdGUoKQorICAgIGZ1bmN0aW9uX3N0YXRlID0gX0Z1bmN0aW9uU3RhdGUodmVyYm9zaXR5
KQogICAgIGNsYXNzX3N0YXRlID0gX0NsYXNzU3RhdGUoKQogICAgIGZpbGVfc3RhdGUgPSBfRmls
ZVN0YXRlKCkKIApAQCAtMjg2MiwxMiArMjg0MiwxNCBAQCBkZWYgcHJvY2Vzc19maWxlX2RhdGEo
ZmlsZW5hbWUsIGZpbGVfZXh0ZW5zaW9uLCBsaW5lcywgZXJyb3IpOgogICAgIGNoZWNrX2Zvcl9u
ZXdfbGluZV9hdF9lb2YoZmlsZW5hbWUsIGxpbmVzLCBlcnJvcikKIAogCi1kZWYgcHJvY2Vzc19m
aWxlKGZpbGVuYW1lLCBlcnJvcik6CitkZWYgcHJvY2Vzc19maWxlKGZpbGVuYW1lLCBlcnJvciwg
dmVyYm9zaXR5KToKICAgICAiIiJQZXJmb3JtcyBjcHBfc3R5bGUgb24gYSBzaW5nbGUgZmlsZS4K
IAogICAgIEFyZ3M6CiAgICAgICBmaWxlbmFtZTogVGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gcGFy
c2UuCiAgICAgICBlcnJvcjogVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2l0aCBhbnkgZXJyb3JzIGZv
dW5kLgorICAgICAgdmVyYm9zaXR5OiBBbiBpbnRlZ2VyIHRoYXQgaXMgdGhlIHZlcmJvc2l0eSBs
ZXZlbCB0byB1c2Ugd2hpbGUKKyAgICAgICAgICAgICAgICAgY2hlY2tpbmcgc3R5bGUuCiAgICAg
IiIiCiAgICAgdHJ5OgogICAgICAgICAjIFN1cHBvcnQgdGhlIFVOSVggY29udmVudGlvbiBvZiB1
c2luZyAiLSIgZm9yIHN0ZGluLiAgTm90ZSB0aGF0CkBAIC0yOTA4LDcgKzI4OTAsNyBAQCBkZWYg
cHJvY2Vzc19maWxlKGZpbGVuYW1lLCBlcnJvcik6CiAgICAgaWYgKGZpbGVuYW1lICE9ICctJyBh
bmQgbm90IGNhbl9oYW5kbGUoZmlsZW5hbWUpKToKICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgn
SWdub3JpbmcgJXM7IG5vdCBhIC5jcHAsIC5jIG9yIC5oIGZpbGVcbicgJSBmaWxlbmFtZSkKICAg
ICBlbHNlOgotICAgICAgICBwcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwgZmlsZV9leHRlbnNp
b24sIGxpbmVzLCBlcnJvcikKKyAgICAgICAgcHJvY2Vzc19maWxlX2RhdGEoZmlsZW5hbWUsIGZp
bGVfZXh0ZW5zaW9uLCBsaW5lcywgZXJyb3IsIHZlcmJvc2l0eSkKICAgICAgICAgaWYgY2Fycmlh
Z2VfcmV0dXJuX2ZvdW5kIGFuZCBvcy5saW5lc2VwICE9ICdcclxuJzoKICAgICAgICAgICAgICMg
VXNlIDAgZm9yIGxpbmVfbnVtYmVyIHNpbmNlIG91dHB1dGluZyBvbmx5IG9uZSBlcnJvciBmb3Ig
cG90ZW50aWFsbHkKICAgICAgICAgICAgICMgc2V2ZXJhbCBsaW5lcy4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVfdW5pdHRlc3QucHkK
aW5kZXggNGQyZjJlNi4uMzUxYmI4ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVfdW5pdHRlc3QucHkKQEAgLTEwOSw3ICsxMDks
MjMgQEAgY2xhc3MgTW9ja0lvOgogCiAKIGNsYXNzIENwcFN0eWxlVGVzdEJhc2UodW5pdHRlc3Qu
VGVzdENhc2UpOgotICAgICIiIlByb3ZpZGVzIHNvbWUgdXNlZnVsIGhlbHBlciBmdW5jdGlvbnMg
Zm9yIGNwcF9zdHlsZSB0ZXN0cy4iIiIKKyAgICAiIiJQcm92aWRlcyBzb21lIHVzZWZ1bCBoZWxw
ZXIgZnVuY3Rpb25zIGZvciBjcHBfc3R5bGUgdGVzdHMuCisKKyAgICBBdHRyaWJ1dGVzOgorICAg
ICAgdmVyYm9zaXR5OiBBbiBpbnRlZ2VyIHRoYXQgaXMgdGhlIGN1cnJlbnQgdmVyYm9zaXR5IGxl
dmVsIGZvcgorICAgICAgICAgICAgICAgICB0aGUgdGVzdHMuCisKKyAgICAiIiIKKworICAgICMg
RklYTUU6IFJlZmFjdG9yIHRoZSB1bml0IHRlc3RzIHNvIHRoZSB2ZXJib3NpdHkgbGV2ZWwgaXMg
cGFzc2VkCisgICAgIyAgICAgICAgZXhwbGljaXRseSwganVzdCBsaWtlIGl0IGlzIGluIHRoZSBy
ZWFsIGNvZGUuCisgICAgdmVyYm9zaXR5ID0gMTsKKworICAgICMgSGVscGVyIGZ1bmN0aW9uIHRv
IGF2b2lkIG5lZWRpbmcgdG8gZXhwbGljaXRseSBwYXNzIHZlcmJvc2l0eQorICAgICMgaW4gYWxs
IHRoZSB1bml0IHRlc3QgY2FsbHMgdG8gY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKCkuCisg
ICAgZGVmIHByb2Nlc3NfZmlsZV9kYXRhKHNlbGYsIGZpbGVuYW1lLCBmaWxlX2V4dGVuc2lvbiwg
bGluZXMsIGVycm9yKToKKyAgICAgICAgIiIiQ2FsbCBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2Rh
dGEoKSB3aXRoIHRoZSBjdXJyZW50IHZlcmJvc2l0eS4iIiIKKyAgICAgICAgcmV0dXJuIGNwcF9z
dHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwgZmlsZV9leHRlbnNpb24sIGxpbmVzLCBl
cnJvciwgc2VsZi52ZXJib3NpdHkpCiAKICAgICAjIFBlcmZvcm0gbGludCBvbiBzaW5nbGUgbGlu
ZSBvZiBpbnB1dCBhbmQgcmV0dXJuIHRoZSBlcnJvciBtZXNzYWdlLgogICAgIGRlZiBwZXJmb3Jt
X3NpbmdsZV9saW5lX2xpbnQoc2VsZiwgY29kZSwgZmlsZV9uYW1lKToKQEAgLTExOCw3ICsxMzQs
NyBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
Y3BwX3N0eWxlLnJlbW92ZV9tdWx0aV9saW5lX2NvbW1lbnRzKGZpbGVfbmFtZSwgbGluZXMsIGVy
cm9yX2NvbGxlY3RvcikKICAgICAgICAgY2xlYW5fbGluZXMgPSBjcHBfc3R5bGUuQ2xlYW5zZWRM
aW5lcyhsaW5lcykKICAgICAgICAgaW5jbHVkZV9zdGF0ZSA9IGNwcF9zdHlsZS5fSW5jbHVkZVN0
YXRlKCkKLSAgICAgICAgZnVuY3Rpb25fc3RhdGUgPSBjcHBfc3R5bGUuX0Z1bmN0aW9uU3RhdGUo
KQorICAgICAgICBmdW5jdGlvbl9zdGF0ZSA9IGNwcF9zdHlsZS5fRnVuY3Rpb25TdGF0ZShzZWxm
LnZlcmJvc2l0eSkKICAgICAgICAgZXh0ID0gZmlsZV9uYW1lW2ZpbGVfbmFtZS5yZmluZCgnLicp
ICsgMTpdCiAgICAgICAgIGNsYXNzX3N0YXRlID0gY3BwX3N0eWxlLl9DbGFzc1N0YXRlKCkKICAg
ICAgICAgZmlsZV9zdGF0ZSA9IGNwcF9zdHlsZS5fRmlsZVN0YXRlKCkKQEAgLTE3OCw3ICsxOTQs
NyBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
IiIiCiAgICAgICAgIGZpbGVfbmFtZSA9ICdmb28uY3BwJwogICAgICAgICBlcnJvcl9jb2xsZWN0
b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGZ1bmN0aW9uX3N0YXRl
ID0gY3BwX3N0eWxlLl9GdW5jdGlvblN0YXRlKCkKKyAgICAgICAgZnVuY3Rpb25fc3RhdGUgPSBj
cHBfc3R5bGUuX0Z1bmN0aW9uU3RhdGUoc2VsZi52ZXJib3NpdHkpCiAgICAgICAgIGxpbmVzID0g
Y29kZS5zcGxpdCgnXG4nKQogICAgICAgICBjcHBfc3R5bGUucmVtb3ZlX211bHRpX2xpbmVfY29t
bWVudHMoZmlsZV9uYW1lLCBsaW5lcywgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBsaW5lcyA9
IGNwcF9zdHlsZS5DbGVhbnNlZExpbmVzKGxpbmVzKQpAQCAtMjM2LDcgKzI1Miw3IEBAIGNsYXNz
IENwcFN0eWxlVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIGFzc2VydF9i
bGFua19saW5lc19jaGVjayhzZWxmLCBsaW5lcywgc3RhcnRfZXJyb3JzLCBlbmRfZXJyb3JzKToK
ICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQot
ICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAnLCAnY3BwJywgbGlu
ZXMsIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YSgnZm9v
LmNwcCcsICdjcHAnLCBsaW5lcywgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscygKICAgICAgICAgICAgIHN0YXJ0X2Vycm9ycywKICAgICAgICAgICAgIGVycm9yX2Nv
bGxlY3Rvci5yZXN1bHRzKCkuY291bnQoCkBAIC02OTQsMTAgKzcxMCwxMCBAQCBjbGFzcyBDcHBT
dHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIGZpbGVfcGF0aCA9ICdteWRpci9m
b28uY3BwJwogCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYu
YXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwg
J2NwcCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2NvbnN0IGNoYXIq
IHN0ciA9ICJUaGlzIGlzIGFcXCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJyBtdWx0aWxpbmUgc3RyaW5nLiI7J10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEo
ZmlsZV9wYXRoLCAnY3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2NvbnN0
IGNoYXIqIHN0ciA9ICJUaGlzIGlzIGFcXCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICcgbXVsdGlsaW5lIHN0cmluZy4iOyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVycm9yX2NvbGxlY3RvcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAg
ICAgICAyLCAgIyBPbmUgcGVyIGxpbmUuCiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVz
dWx0X2xpc3QoKS5jb3VudChtdWx0aWxpbmVfc3RyaW5nX2Vycm9yX21lc3NhZ2UpKQpAQCAtMTQw
OCw4ICsxNDI0LDggQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAg
IGRlZiB0ZXN0X25ld2xpbmVfYXRfZW9mKHNlbGYpOgogICAgICAgICBkZWYgZG9fdGVzdChzZWxm
LCBkYXRhLCBpc19taXNzaW5nX2VvZik6CiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBF
cnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgICAgICBjcHBfc3R5bGUucHJvY2Vz
c19maWxlX2RhdGEoJ2Zvby5jcHAnLCAnY3BwJywgZGF0YS5zcGxpdCgnXG4nKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAg
ICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcsIGRhdGEuc3BsaXQo
J1xuJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rv
cikKICAgICAgICAgICAgICMgVGhlIHdhcm5pbmcgYXBwZWFycyBvbmx5IG9uY2UuCiAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgICAgICBpbnQoaXNfbWlzc2luZ19l
b2YpLApAQCAtMTQyMywxMCArMTQzOSw5IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRl
c3RCYXNlKToKICAgICBkZWYgdGVzdF9pbnZhbGlkX3V0Zjgoc2VsZik6CiAgICAgICAgIGRlZiBk
b190ZXN0KHNlbGYsIHJhd19ieXRlcywgaGFzX2ludmFsaWRfdXRmOCk6CiAgICAgICAgICAgICBl
cnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgICAg
ICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoCi0gICAgICAgICAgICAgICAgJ2Zvby5jcHAn
LCAnY3BwJywKLSAgICAgICAgICAgICAgICB1bmljb2RlKHJhd19ieXRlcywgJ3V0ZjgnLCAncmVw
bGFjZScpLnNwbGl0KCdcbicpLAotICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKKyAg
ICAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAnLCAnY3BwJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZShyYXdfYnl0ZXMsICd1dGY4Jywg
J3JlcGxhY2UnKS5zcGxpdCgnXG4nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICAgICAgIyBUaGUgd2FybmluZyBhcHBlYXJzIG9u
bHkgb25jZS4KICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAgICAg
IGludChoYXNfaW52YWxpZF91dGY4KSwKQEAgLTE0NTksNDAgKzE0NzQsNDAgQEAgY2xhc3MgQ3Bw
U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgZGVmIHRlc3RfYWxsb3dfYmxhbmtf
bGluZV9iZWZvcmVfY2xvc2luZ19uYW1lc3BhY2Uoc2VsZik6CiAgICAgICAgIGVycm9yX2NvbGxl
Y3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnBy
b2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJ25hbWVzcGFjZSB7JywgJycsICd9ICAvLyBuYW1lc3BhY2UnXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKKyAgICAg
ICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsnbmFtZXNwYWNlIHsnLCAnJywgJ30gIC8vIG5hbWVzcGFjZSdd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoMCwgZXJyb3JfY29sbGVjdG9yLnJlc3VsdHMoKS5jb3VudCgK
ICAgICAgICAgICAgICdCbGFuayBsaW5lIGF0IHRoZSBlbmQgb2YgYSBjb2RlIGJsb2NrLiAgSXMg
dGhpcyBuZWVkZWQ/JwogICAgICAgICAgICAgJyAgW3doaXRlc3BhY2UvYmxhbmtfbGluZV0gWzNd
JykpCiAKICAgICBkZWYgdGVzdF9hbGxvd19ibGFua19saW5lX2JlZm9yZV9pZl9lbHNlX2NoYWlu
KHNlbGYpOgogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFz
c2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YSgnZm9vLmNwcCcsICdj
cHAnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydpZiAoaG9nZSkgeycs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsICAjIE5vIHdhcm5pbmcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSBlbHNlIGlmIChwaXlvKSB7
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgICMgTm8gd2Fybmlu
ZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IGVsc2UgaWYgKHBpeW9w
aXlvKSB7JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBob2dlID0g
dHJ1ZTsnLCAgIyBObyB3YXJuaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ30gZWxzZSB7JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywg
ICMgV2FybmluZyBvbiB0aGlzIGxpbmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnfSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29s
bGVjdG9yKQorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydpZiAoaG9nZSkgeycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcnLCAgIyBObyB3YXJuaW5nCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd9IGVsc2UgaWYgKHBpeW8pIHsnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnJywgICMgTm8gd2FybmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnfSBlbHNlIGlmIChwaXlvcGl5bykgeycsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcgIGhvZ2UgPSB0cnVlOycsICAjIE5vIHdhcm5pbmcKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ30gZWxzZSB7JywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJycsICAjIFdhcm5pbmcgb24gdGhpcyBsaW5lCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICd9J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jf
Y29sbGVjdG9yKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBlcnJvcl9jb2xsZWN0b3Iu
cmVzdWx0cygpLmNvdW50KAogICAgICAgICAgICAgJ0JsYW5rIGxpbmUgYXQgdGhlIGVuZCBvZiBh
IGNvZGUgYmxvY2suICBJcyB0aGlzIG5lZWRlZD8nCiAgICAgICAgICAgICAnICBbd2hpdGVzcGFj
ZS9ibGFua19saW5lXSBbM10nKSkKIAogICAgIGRlZiB0ZXN0X2Vsc2Vfb25fc2FtZV9saW5lX2Fz
X2Nsb3NpbmdfYnJhY2VzKHNlbGYpOgogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNv
bGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0
YSgnZm9vLmNwcCcsICdjcHAnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WydpZiAoaG9nZSkgeycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30nLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcgZWxzZSB7JyAgIyBXYXJuaW5nIG9uIHRoaXMgbGlu
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd9J10sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2Rh
dGEoJ2Zvby5jcHAnLCAnY3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2lm
IChob2dlKSB7JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd9JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJyBlbHNlIHsnICAjIFdhcm5pbmcgb24gdGhpcyBsaW5lCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSdd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgZXJyb3JfY29sbGVjdG9yLnJlc3VsdHMoKS5jb3VudCgK
ICAgICAgICAgICAgICdBbiBlbHNlIHNob3VsZCBhcHBlYXIgb24gdGhlIHNhbWUgbGluZSBhcyB0
aGUgcHJlY2VkaW5nIH0nCiAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9uZXdsaW5lXSBbNF0n
KSkKQEAgLTE2MzYsNyArMTY1MSw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RC
YXNlKToKICAgICAgICAgIyBkb2Vzbid0IGFsbG93IHVzIHRvIHRlc3QgdGhlIHN1Z2dlc3RlZCBo
ZWFkZXIgZ3VhcmQsIGJ1dCBpdCBkb2VzIGxldCB1cwogICAgICAgICAjIHRlc3QgYWxsIHRoZSBv
dGhlciBoZWFkZXIgdGVzdHMuCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVj
dG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZp
bGVfcGF0aCwgJ2gnLCBbXSwgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLnByb2Nlc3Nf
ZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLCBbXSwgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBl
eHBlY3RlZF9ndWFyZCA9ICcnCiAgICAgICAgIG1hdGNoZXIgPSByZS5jb21waWxlKAogICAgICAg
ICAgICAgJ05vIFwjaWZuZGVmIGhlYWRlciBndWFyZCBmb3VuZFwsIHN1Z2dlc3RlZCBDUFAgdmFy
aWFibGUgaXNcOiAoW0EtWmEtel8wLTldKykgJykKQEAgLTE2NTEsOCArMTY2Niw4IEBAIGNsYXNz
IENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKIAogICAgICAgICAjIFdyb25nIGd1YXJk
CiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykK
LSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycjaWZuZGVmIEZPT19IJywgJyNkZWZp
bmUgRk9PX0gnXSwgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9k
YXRhKGZpbGVfcGF0aCwgJ2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lm
bmRlZiBGT09fSCcsICcjZGVmaW5lIEZPT19IJ10sIGVycm9yX2NvbGxlY3RvcikKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICAxLAogICAgICAgICAgICAgZXJyb3JfY29s
bGVjdG9yLnJlc3VsdF9saXN0KCkuY291bnQoCkBAIC0xNjYyLDggKzE2NzcsOCBAQCBjbGFzcyBD
cHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAKICAgICAgICAgIyBObyBkZWZpbmUKICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAg
ICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0ZWRfZ3Vh
cmRdLCBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoZmls
ZV9wYXRoLCAnaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycjaWZuZGVmICVz
JyAlIGV4cGVjdGVkX2d1YXJkXSwgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVz
dWx0X2xpc3QoKS5jb3VudCgKQEAgLTE2NzMsMTAgKzE2ODgsMTAgQEAgY2xhc3MgQ3BwU3R5bGVU
ZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgICAgICMgTWlzbWF0Y2hlZCBkZWZpbmUKICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAg
ICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0ZWRfZ3Vh
cmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNkZWZpbmUgRk9PX0gn
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikK
KyAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0ZWRfZ3VhcmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lIEZPT19IJ10sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3Iu
cmVzdWx0X2xpc3QoKS5jb3VudCgKQEAgLTE2ODYsMjIgKzE3MDEsMjIgQEAgY2xhc3MgQ3BwU3R5
bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgICAgICMgTm8gaGVhZGVyIGd1YXJkIGVy
cm9ycwogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2Vy
dF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRlZiAlcycgJSBleHBl
Y3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2RlZmlu
ZSAlcycgJSBleHBlY3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnI2VuZGlmIC8vICVzJyAlIGV4cGVjdGVkX2d1YXJkXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAgc2VsZi5wcm9jZXNz
X2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0ZWRfZ3VhcmQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICcjZGVmaW5lICVzJyAlIGV4cGVjdGVkX2d1YXJkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnI2VuZGlmIC8vICVzJyAlIGV4cGVjdGVkX2d1YXJkXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAgIGZvciBs
aW5lIGluIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpOgogICAgICAgICAgICAgaWYgbGlu
ZS5maW5kKCdidWlsZC9oZWFkZXJfZ3VhcmQnKSAhPSAtMToKICAgICAgICAgICAgICAgICBzZWxm
LmZhaWwoJ1VuZXhwZWN0ZWQgZXJyb3I6ICVzJyAlIGxpbmUpCiAKICAgICAgICAgIyBDb21wbGV0
ZWx5IGluY29ycmVjdCBoZWFkZXIgZ3VhcmQKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJy
b3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxl
X2RhdGEoZmlsZV9wYXRoLCAnaCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJyNpZm5kZWYgRk9PJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
I2RlZmluZSBGT08nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZW5k
aWYgIC8vIEZPTyddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jf
Y29sbGVjdG9yKQorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRlZiBGT08nLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnI2RlZmluZSBGT08nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnI2VuZGlmICAvLyBGT08nXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAog
ICAgICAgICAgICAgMSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgp
LmNvdW50KApAQCAtMTg0MywxMyArMTg1OCwxMyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5
bGVUZXN0QmFzZSk6CiAKICAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUgYSBjb3B5cmlnaHQgbWVz
c2FnZSBpbiB0aGUgZmlyc3QgMTAgbGluZXMKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJy
b3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxl
X2RhdGEoZmlsZV9wYXRoLCAnY3BwJywgW10sIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAgc2Vs
Zi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdjcHAnLCBbXSwgZXJyb3JfY29sbGVjdG9y
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAg
ICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudChsZWdhbF9jb3B5cmlnaHRfbWVz
c2FnZSkpCiAKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5h
c3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoCisgICAgICAgIHNl
bGYucHJvY2Vzc19maWxlX2RhdGEoCiAgICAgICAgICAgICBmaWxlX3BhdGgsICdjcHAnLAogICAg
ICAgICAgICAgWycnIGZvciB1bnVzZWRfaSBpbiByYW5nZSgxMCldICsgW2NvcHlyaWdodF9saW5l
XSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKQEAgLTE4NTksMTMgKzE4NzQsMTMgQEAg
Y2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgICAgICMgVGVzdCB0
aGF0IHdhcm5pbmcgaXNuJ3QgaXNzdWVkIGlmIENvcHlyaWdodCBsaW5lIGFwcGVhcnMgZWFybHkg
ZW5vdWdoLgogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFz
c2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdj
cHAnLCBbY29weXJpZ2h0X2xpbmVdLCBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJv
Y2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnY3BwJywgW2NvcHlyaWdodF9saW5lXSwgZXJyb3Jf
Y29sbGVjdG9yKQogICAgICAgICBmb3IgbWVzc2FnZSBpbiBlcnJvcl9jb2xsZWN0b3IucmVzdWx0
X2xpc3QoKToKICAgICAgICAgICAgIGlmIG1lc3NhZ2UuZmluZCgnbGVnYWwvY29weXJpZ2h0Jykg
IT0gLTE6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVkIGVycm9yOiAlcycg
JSBtZXNzYWdlKQogCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNl
bGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKAorICAgICAg
ICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKAogICAgICAgICAgICAgZmlsZV9wYXRoLCAnY3BwJywK
ICAgICAgICAgICAgIFsnJyBmb3IgdW51c2VkX2kgaW4gcmFuZ2UoOSldICsgW2NvcHlyaWdodF9s
aW5lXSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKQEAgLTIxOTUsNiArMjIxMCwxMyBA
QCBjbGFzcyBDaGVja0ZvckZ1bmN0aW9uTGVuZ3Roc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAg
ICAgICAgIGNwcF9zdHlsZS5fRnVuY3Rpb25TdGF0ZS5fTk9STUFMX1RSSUdHRVIgPSBzZWxmLm9s
ZF9ub3JtYWxfdHJpZ2dlcgogICAgICAgICBjcHBfc3R5bGUuX0Z1bmN0aW9uU3RhdGUuX1RFU1Rf
VFJJR0dFUiA9IHNlbGYub2xkX3Rlc3RfdHJpZ2dlcgogCisgICAgIyBGSVhNRTogRWxpbWluYXRl
IHRoZSBuZWVkIGZvciB0aGlzIGZ1bmN0aW9uLgorICAgIGRlZiBzZXRfdmVyYm9zaXR5KHNlbGYs
IHZlcmJvc2l0eSk6CisgICAgICAgICIiIlNldCBuZXcgdGVzdCB2ZXJib3NpdHkgYW5kIHJldHVy
biBvbGQgdGVzdCB2ZXJib3NpdHkuIiIiCisgICAgICAgIG9sZF92ZXJib3NpdHkgPSBzZWxmLnZl
cmJvc2l0eQorICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IHZlcmJvc2l0eQorICAgICAgICByZXR1
cm4gb2xkX3ZlcmJvc2l0eQorCiAgICAgZGVmIGFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNr
KHNlbGYsIGNvZGUsIGV4cGVjdGVkX21lc3NhZ2UpOgogICAgICAgICAiIiJDaGVjayB3YXJuaW5n
cyBmb3IgbG9uZyBmdW5jdGlvbiBib2RpZXMgYXJlIGFzIGV4cGVjdGVkLgogCkBAIC0yMjM0LDcg
KzIyNTYsNyBAQCBjbGFzcyBDaGVja0ZvckZ1bmN0aW9uTGVuZ3Roc1Rlc3QoQ3BwU3R5bGVUZXN0
QmFzZSk6CiAgICAgICAgICAgbGluZXM6IE51bWJlciBvZiBsaW5lcyB0byBnZW5lcmF0ZS4KICAg
ICAgICAgICBlcnJvcl9sZXZlbDogIC0tdiBzZXR0aW5nIGZvciBjcHBfc3R5bGUuCiAgICAgICAg
ICIiIgotICAgICAgICB0cmlnZ2VyX2xldmVsID0gc2VsZi50cmlnZ2VyX2xpbmVzKGNwcF9zdHls
ZS5fdmVyYm9zZV9sZXZlbCgpKQorICAgICAgICB0cmlnZ2VyX2xldmVsID0gc2VsZi50cmlnZ2Vy
X2xpbmVzKHNlbGYudmVyYm9zaXR5KQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5n
dGhzX2NoZWNrKAogICAgICAgICAgICAgJ3ZvaWQgdGVzdChpbnQgeCknICsgc2VsZi5mdW5jdGlv
bl9ib2R5KGxpbmVzKSwKICAgICAgICAgICAgICgnU21hbGwgYW5kIGZvY3VzZWQgZnVuY3Rpb25z
IGFyZSBwcmVmZXJyZWQ6ICcKQEAgLTIzMTcsMjkgKzIzMzksMjkgQEAgY2xhc3MgQ2hlY2tGb3JG
dW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgJycpCiAK
ICAgICBkZWYgdGVzdF9mdW5jdGlvbl9sZW5ndGhfY2hlY2tfZGVmaW5pdGlvbl9iZWxvd19zZXZl
cml0eTAoc2VsZik6Ci0gICAgICAgIG9sZF92ZXJib3NpdHkgPSBjcHBfc3R5bGUuX3NldF92ZXJi
b3NlX2xldmVsKDApCisgICAgICAgIG9sZF92ZXJib3NpdHkgPSBzZWxmLnNldF92ZXJib3NpdHko
MCkKICAgICAgICAgc2VsZi5hc3NlcnRfZnVuY3Rpb25fbGVuZ3RoX2NoZWNrX2RlZmluaXRpb25f
b2soc2VsZi50cmlnZ2VyX2xpbmVzKDApIC0gMSkKLSAgICAgICAgY3BwX3N0eWxlLl9zZXRfdmVy
Ym9zZV9sZXZlbChvbGRfdmVyYm9zaXR5KQorICAgICAgICBzZWxmLnNldF92ZXJib3NpdHkob2xk
X3ZlcmJvc2l0eSkKIAogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19kZWZpbml0
aW9uX2F0X3NldmVyaXR5MChzZWxmKToKLSAgICAgICAgb2xkX3ZlcmJvc2l0eSA9IGNwcF9zdHls
ZS5fc2V0X3ZlcmJvc2VfbGV2ZWwoMCkKKyAgICAgICAgb2xkX3ZlcmJvc2l0eSA9IHNlbGYuc2V0
X3ZlcmJvc2l0eSgwKQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhfY2hlY2tf
ZGVmaW5pdGlvbl9vayhzZWxmLnRyaWdnZXJfbGluZXMoMCkpCi0gICAgICAgIGNwcF9zdHlsZS5f
c2V0X3ZlcmJvc2VfbGV2ZWwob2xkX3ZlcmJvc2l0eSkKKyAgICAgICAgc2VsZi5zZXRfdmVyYm9z
aXR5KG9sZF92ZXJib3NpdHkpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9sZW5ndGhfY2hlY2tf
ZGVmaW5pdGlvbl9hYm92ZV9zZXZlcml0eTAoc2VsZik6Ci0gICAgICAgIG9sZF92ZXJib3NpdHkg
PSBjcHBfc3R5bGUuX3NldF92ZXJib3NlX2xldmVsKDApCisgICAgICAgIG9sZF92ZXJib3NpdHkg
PSBzZWxmLnNldF92ZXJib3NpdHkoMCkKICAgICAgICAgc2VsZi5hc3NlcnRfZnVuY3Rpb25fbGVu
Z3RoX2NoZWNrX2Fib3ZlX2Vycm9yX2xldmVsKDApCi0gICAgICAgIGNwcF9zdHlsZS5fc2V0X3Zl
cmJvc2VfbGV2ZWwob2xkX3ZlcmJvc2l0eSkKKyAgICAgICAgc2VsZi5zZXRfdmVyYm9zaXR5KG9s
ZF92ZXJib3NpdHkpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9sZW5ndGhfY2hlY2tfZGVmaW5p
dGlvbl9iZWxvd19zZXZlcml0eTF2MChzZWxmKToKLSAgICAgICAgb2xkX3ZlcmJvc2l0eSA9IGNw
cF9zdHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwoMCkKKyAgICAgICAgb2xkX3ZlcmJvc2l0eSA9IHNl
bGYuc2V0X3ZlcmJvc2l0eSgwKQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhf
Y2hlY2tfYmVsb3dfZXJyb3JfbGV2ZWwoMSkKLSAgICAgICAgY3BwX3N0eWxlLl9zZXRfdmVyYm9z
ZV9sZXZlbChvbGRfdmVyYm9zaXR5KQorICAgICAgICBzZWxmLnNldF92ZXJib3NpdHkob2xkX3Zl
cmJvc2l0eSkKIAogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19kZWZpbml0aW9u
X2F0X3NldmVyaXR5MXYwKHNlbGYpOgotICAgICAgICBvbGRfdmVyYm9zaXR5ID0gY3BwX3N0eWxl
Ll9zZXRfdmVyYm9zZV9sZXZlbCgwKQorICAgICAgICBvbGRfdmVyYm9zaXR5ID0gc2VsZi5zZXRf
dmVyYm9zaXR5KDApCiAgICAgICAgIHNlbGYuYXNzZXJ0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19h
dF9lcnJvcl9sZXZlbCgxKQotICAgICAgICBjcHBfc3R5bGUuX3NldF92ZXJib3NlX2xldmVsKG9s
ZF92ZXJib3NpdHkpCisgICAgICAgIHNlbGYuc2V0X3ZlcmJvc2l0eShvbGRfdmVyYm9zaXR5KQog
CiAgICAgZGVmIHRlc3RfZnVuY3Rpb25fbGVuZ3RoX2NoZWNrX2RlZmluaXRpb25fYmVsb3dfc2V2
ZXJpdHkxKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhfY2hlY2tf
ZGVmaW5pdGlvbl9vayhzZWxmLnRyaWdnZXJfbGluZXMoMSkgLSAxKQpAQCAtMjM1Myw3ICsyMzc1
LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2Up
OgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19kZWZpbml0aW9uX3NldmVyaXR5
MV9wbHVzX2JsYW5rcyhzZWxmKToKICAgICAgICAgZXJyb3JfbGV2ZWwgPSAxCiAgICAgICAgIGVy
cm9yX2xpbmVzID0gc2VsZi50cmlnZ2VyX2xpbmVzKGVycm9yX2xldmVsKSArIDEKLSAgICAgICAg
dHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2
ZWwoKSkKKyAgICAgICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl9saW5lcyhzZWxmLnZl
cmJvc2l0eSkKICAgICAgICAgc2VsZi5hc3NlcnRfZnVuY3Rpb25fbGVuZ3Roc19jaGVjaygKICAg
ICAgICAgICAgICd2b2lkIHRlc3RfYmxhbmtzKGludCB4KScgKyBzZWxmLmZ1bmN0aW9uX2JvZHko
ZXJyb3JfbGluZXMpLAogICAgICAgICAgICAgKCdTbWFsbCBhbmQgZm9jdXNlZCBmdW5jdGlvbnMg
YXJlIHByZWZlcnJlZDogJwpAQCAtMjM2NSw3ICsyMzg3LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5j
dGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
X2xlbmd0aF9jaGVja19jb21wbGV4X2RlZmluaXRpb25fc2V2ZXJpdHkxKHNlbGYpOgogICAgICAg
ICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxmLnRyaWdnZXJfbGlu
ZXMoZXJyb3JfbGV2ZWwpICsgMQotICAgICAgICB0cmlnZ2VyX2xldmVsID0gc2VsZi50cmlnZ2Vy
X2xpbmVzKGNwcF9zdHlsZS5fdmVyYm9zZV9sZXZlbCgpKQorICAgICAgICB0cmlnZ2VyX2xldmVs
ID0gc2VsZi50cmlnZ2VyX2xpbmVzKHNlbGYudmVyYm9zaXR5KQogICAgICAgICBzZWxmLmFzc2Vy
dF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAgKCdteV9uYW1lc3BhY2U6Om15
X290aGVyX25hbWVzcGFjZTo6TXlWZXJ5TG9uZ1R5cGVOYW1lKlxuJwogICAgICAgICAgICAgICdt
eV9uYW1lc3BhY2U6Om15X290aGVyX25hbWVzcGFjZTo6TXlGdW5jdGlvbihpbnQgYXJnMSwgY2hh
ciogYXJnMiknCkBAIC0yMzgwLDcgKzI0MDIsNyBAQCBjbGFzcyBDaGVja0ZvckZ1bmN0aW9uTGVu
Z3Roc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfZnVuY3Rpb25fbGVuZ3Ro
X2NoZWNrX2RlZmluaXRpb25fc2V2ZXJpdHkxX2Zvcl90ZXN0KHNlbGYpOgogICAgICAgICBlcnJv
cl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxmLnRyaWdnZXJfdGVzdF9saW5l
cyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2ZWwgPSBzZWxmLnRyaWdnZXJf
dGVzdF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAgICAgdHJpZ2dlcl9s
ZXZlbCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNlbGYudmVyYm9zaXR5KQogICAgICAgICBz
ZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAgJ1RFU1RfRihU
ZXN0LCBNdXRhdG9yKScgKyBzZWxmLmZ1bmN0aW9uX2JvZHkoZXJyb3JfbGluZXMpLAogICAgICAg
ICAgICAgKCdTbWFsbCBhbmQgZm9jdXNlZCBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZDogJwpAQCAt
MjM5Miw3ICsyNDE0LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0
eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19kZWZpbml0
aW9uX3NldmVyaXR5MV9mb3Jfc3BsaXRfbGluZV90ZXN0KHNlbGYpOgogICAgICAgICBlcnJvcl9s
ZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxmLnRyaWdnZXJfdGVzdF9saW5lcyhl
cnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2ZWwgPSBzZWxmLnRyaWdnZXJfdGVz
dF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAgICAgdHJpZ2dlcl9sZXZl
bCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNlbGYudmVyYm9zaXR5KQogICAgICAgICBzZWxm
LmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAgKCdURVNUX0YoR29v
Z2xlVXBkYXRlUmVjb3ZlcnlSZWdpc3RyeVByb3RlY3RlZFRlc3QsXG4nCiAgICAgICAgICAgICAg
JyAgICBGaXhHb29nbGVVcGRhdGVfQWxsVmFsdWVzX01hY2hpbmVBcHApJyAgIyBub3RlOiA0IHNw
YWNlcwpAQCAtMjQwNyw3ICsyNDI5LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNU
ZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVj
a19kZWZpbml0aW9uX3NldmVyaXR5MV9mb3JfYmFkX3Rlc3RfZG9lc250X2JyZWFrKHNlbGYpOgog
ICAgICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxmLnRyaWdn
ZXJfdGVzdF9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2ZWwgPSBz
ZWxmLnRyaWdnZXJfdGVzdF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAg
ICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNlbGYudmVyYm9zaXR5
KQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAg
ICAgKCdURVNUX0YoJwogICAgICAgICAgICAgICsgc2VsZi5mdW5jdGlvbl9ib2R5KGVycm9yX2xp
bmVzKSksCkBAIC0yNDIwLDcgKzI0NDIsNyBAQCBjbGFzcyBDaGVja0ZvckZ1bmN0aW9uTGVuZ3Ro
c1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfZnVuY3Rpb25fbGVuZ3RoX2No
ZWNrX2RlZmluaXRpb25fc2V2ZXJpdHkxX3dpdGhfZW1iZWRkZWRfbm9fbGludHMoc2VsZik6CiAg
ICAgICAgIGVycm9yX2xldmVsID0gMQogICAgICAgICBlcnJvcl9saW5lcyA9IHNlbGYudHJpZ2dl
cl9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2ZWwgPSBzZWxmLnRy
aWdnZXJfbGluZXMoY3BwX3N0eWxlLl92ZXJib3NlX2xldmVsKCkpCisgICAgICAgIHRyaWdnZXJf
bGV2ZWwgPSBzZWxmLnRyaWdnZXJfbGluZXMoc2VsZi52ZXJib3NpdHkpCiAgICAgICAgIHNlbGYu
YXNzZXJ0X2Z1bmN0aW9uX2xlbmd0aHNfY2hlY2soCiAgICAgICAgICAgICAndm9pZCB0ZXN0KGlu
dCB4KScgKyBzZWxmLmZ1bmN0aW9uX2JvZHlfd2l0aF9ub19saW50cyhlcnJvcl9saW5lcyksCiAg
ICAgICAgICAgICAoJ1NtYWxsIGFuZCBmb2N1c2VkIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkOiAn
Cg==
</data>
<flag name="commit-queue"
          id="29059"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46748</attachid>
            <date>2010-01-16 13:17:21 -0800</date>
            <delta_ts>2010-01-17 16:12:24 -0800</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-33764-2.txt</filename>
            <type>text/plain</type>
            <size>26518</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlZWE0MzhiLi41OWQ4ZjUyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDEt
MTYgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluaXNoZWQgZWxpbWluYXRpbmcg
X2NwcF9zdHlsZV9zdGF0ZSBnbG9iYWwgc3RhdGUgdmFyaWFibGUgZnJvbQorICAgICAgICBjaGVj
ay13ZWJraXQtc3R5bGUgY29kZSBhbmQgZWxpbWluYXRpbmcgX0NwcFN0eWxlU3RhdGUgY2xhc3Mu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNzY0
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAg
ICAgLSBNaW5vciB1cGRhdGVzIGNhdXNlZCBieSBjaGFuZ2VzIHRvIGNwcF9zdHlsZS5weS4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5OgorICAgICAgICAg
IC0gUmVtb3ZlZCBfQ3BwU3R5bGVTdGF0ZSBjbGFzcy4KKyAgICAgICAgICAtIFJlbW92ZWQgdmVy
Ym9zZV9sZXZlbCBmdW5jdGlvbnMuCisgICAgICAgICAgLSBBZGRlZCB2ZXJib3NpdHkgYXMgYSBw
YXJhbWV0ZXIgdG8gX0Z1bmN0aW9uU3RhdGUgY29uc3RydWN0b3IuCisgICAgICAgICAgLSBBZGRl
ZCB2ZXJib3NpdHkgYXMgYSBwYXJhbWV0ZXIgdG8gcHJvY2Vzc19maWxlKCkuCisgICAgICAgICAg
LSBBZGRlZCB2ZXJib3NpdHkgYXMgYSBwYXJhbWV0ZXIgdG8gcHJvY2Vzc19maWxlX2RhdGEoKS4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5
OgorICAgICAgICAgIC0gQWRkZWQgaGVscGVyIGZ1bmN0aW9ucyB0byBzZXQgdmVyYm9zaXR5IHdo
aWxlIHJ1bm5pbmcgdGVzdHMuCisKIDIwMTAtMDEtMTUgIENocmlzIEplcmRvbmVrICA8Y2plcmRv
bmVrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggYzQ2
YTU0NS4uYzNmNGRiMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQpAQCAtNjQ1LDkgKzY0NSw2IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3Qp
OgogICAgICAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIHNlbGYuZXJyb3JfY291
bnQgPSAwCiAKLSAgICAgICAgIyBGSVhNRTogRWxpbWluYXRlIHRoZSBuZWVkIHRvIHNldCBnbG9i
YWwgc3RhdGUgaGVyZS4KLSAgICAgICAgY3BwX3N0eWxlLl9zZXRfdmVyYm9zZV9sZXZlbChvcHRp
b25zLnZlcmJvc2l0eSkKLQogICAgIGRlZiBfaGFuZGxlX2Vycm9yKHNlbGYsIGZpbGVuYW1lLCBs
aW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAiIiJI
YW5kbGUgdGhlIG9jY3VycmVuY2Ugb2YgYSBzdHlsZSBlcnJvciB3aGlsZSBjaGVja2luZy4KIApA
QCAtNjg4LDcgKzY4NSw3IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3QpOgogCiAgICAgICAg
ICIiIgogICAgICAgICBpZiBjcHBfc3R5bGUuY2FuX2hhbmRsZShmaWxlbmFtZSkgb3IgZmlsZW5h
bWUgPT0gJy0nOgotICAgICAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZShmaWxlbmFtZSwg
c2VsZi5faGFuZGxlX2Vycm9yKQorICAgICAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZShm
aWxlbmFtZSwgc2VsZi5faGFuZGxlX2Vycm9yLCBzZWxmLm9wdGlvbnMudmVyYm9zaXR5KQogICAg
ICAgICBlbGlmIHRleHRfc3R5bGUuY2FuX2hhbmRsZShmaWxlbmFtZSk6CiAgICAgICAgICAgICB0
ZXh0X3N0eWxlLnByb2Nlc3NfZmlsZShmaWxlbmFtZSwgc2VsZi5faGFuZGxlX2Vycm9yKQogCkBA
IC03MjAsNyArNzE3LDggQEAgY2xhc3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgaWYgbGluZV9udW1iZXIgaW4gbGluZV9udW1iZXJzOgogICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9oYW5kbGVfZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29u
ZmlkZW5jZSwgbWVzc2FnZSkKIAorICAgICAgICAgICAgIyBGSVhNRTogU2hhcmUgdGhpcyBjb2Rl
IHdpdGggc2VsZi5wcm9jZXNzX2ZpbGUoKS4KICAgICAgICAgICAgIGlmIGNwcF9zdHlsZS5jYW5f
aGFuZGxlKGZpbGVuYW1lKToKLSAgICAgICAgICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxl
KGZpbGVuYW1lLCBlcnJvcl9mb3JfcGF0Y2gpCisgICAgICAgICAgICAgICAgY3BwX3N0eWxlLnBy
b2Nlc3NfZmlsZShmaWxlbmFtZSwgZXJyb3JfZm9yX3BhdGNoLCBzZWxmLm9wdGlvbnMudmVyYm9z
aXR5KQogICAgICAgICAgICAgZWxpZiB0ZXh0X3N0eWxlLmNhbl9oYW5kbGUoZmlsZW5hbWUpOgog
ICAgICAgICAgICAgICAgIHRleHRfc3R5bGUucHJvY2Vzc19maWxlKGZpbGVuYW1lLCBlcnJvcl9m
b3JfcGF0Y2gpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NwcF9zdHlsZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0
eWxlLnB5CmluZGV4IDM5NDBhNzUuLjNjMDcxOGUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5CkBAIC0yNDIsMzkgKzI0MiwxOSBAQCBjbGFz
cyBfSW5jbHVkZVN0YXRlKGRpY3QpOgogICAgICAgICByZXR1cm4gZXJyb3JfbWVzc2FnZQogCiAK
LWNsYXNzIF9DcHBTdHlsZVN0YXRlKG9iamVjdCk6Ci0gICAgIiIiTWFpbnRhaW5zIG1vZHVsZS13
aWRlIHN0YXRlLi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi52
ZXJib3NlX2xldmVsID0gMSAgIyBnbG9iYWwgc2V0dGluZy4KLQotICAgIGRlZiBzZXRfdmVyYm9z
ZV9sZXZlbChzZWxmLCBsZXZlbCk6Ci0gICAgICAgICIiIlNldHMgdGhlIG1vZHVsZSdzIHZlcmJv
c2l0eSwgYW5kIHJldHVybnMgdGhlIHByZXZpb3VzIHNldHRpbmcuIiIiCi0gICAgICAgIGxhc3Rf
dmVyYm9zZV9sZXZlbCA9IHNlbGYudmVyYm9zZV9sZXZlbAotICAgICAgICBzZWxmLnZlcmJvc2Vf
bGV2ZWwgPSBsZXZlbAotICAgICAgICByZXR1cm4gbGFzdF92ZXJib3NlX2xldmVsCi0KLQotX2Nw
cF9zdHlsZV9zdGF0ZSA9IF9DcHBTdHlsZVN0YXRlKCkKLQotCi1kZWYgX3ZlcmJvc2VfbGV2ZWwo
KToKLSAgICAiIiJSZXR1cm5zIHRoZSBtb2R1bGUncyB2ZXJib3NpdHkgc2V0dGluZy4iIiIKLSAg
ICByZXR1cm4gX2NwcF9zdHlsZV9zdGF0ZS52ZXJib3NlX2xldmVsCi0KLQotZGVmIF9zZXRfdmVy
Ym9zZV9sZXZlbChsZXZlbCk6Ci0gICAgIiIiU2V0cyB0aGUgbW9kdWxlJ3MgdmVyYm9zaXR5LCBh
bmQgcmV0dXJucyB0aGUgcHJldmlvdXMgc2V0dGluZy4iIiIKLSAgICByZXR1cm4gX2NwcF9zdHls
ZV9zdGF0ZS5zZXRfdmVyYm9zZV9sZXZlbChsZXZlbCkKK2NsYXNzIF9GdW5jdGlvblN0YXRlKG9i
amVjdCk6CisgICAgIiIiVHJhY2tzIGN1cnJlbnQgZnVuY3Rpb24gbmFtZSBhbmQgdGhlIG51bWJl
ciBvZiBsaW5lcyBpbiBpdHMgYm9keS4KIAorICAgIEF0dHJpYnV0ZXM6CisgICAgICB2ZXJib3Np
dHk6IFRoZSB2ZXJib3NpdHkgbGV2ZWwgdG8gdXNlIHdoaWxlIGNoZWNraW5nIHN0eWxlLgogCi1j
bGFzcyBfRnVuY3Rpb25TdGF0ZShvYmplY3QpOgotICAgICIiIlRyYWNrcyBjdXJyZW50IGZ1bmN0
aW9uIG5hbWUgYW5kIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gaXRzIGJvZHkuIiIiCisgICAgIiIi
CiAKICAgICBfTk9STUFMX1RSSUdHRVIgPSAyNTAgICMgZm9yIC0tdj0wLCA1MDAgZm9yIC0tdj0x
LCBldGMuCiAgICAgX1RFU1RfVFJJR0dFUiA9IDQwMCAgICAjIGFib3V0IDUwJSBtb3JlIHRoYW4g
X05PUk1BTF9UUklHR0VSLgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB2ZXJib3NpdHkpOgorICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IHZlcmJvc2l0
eQogICAgICAgICBzZWxmLmluX2FfZnVuY3Rpb24gPSBGYWxzZQogICAgICAgICBzZWxmLmxpbmVz
X2luX2Z1bmN0aW9uID0gMAogICAgICAgICBzZWxmLmN1cnJlbnRfZnVuY3Rpb24gPSAnJwpAQCAt
MzA2LDcgKzI4Niw3IEBAIGNsYXNzIF9GdW5jdGlvblN0YXRlKG9iamVjdCk6CiAgICAgICAgICAg
ICBiYXNlX3RyaWdnZXIgPSBzZWxmLl9URVNUX1RSSUdHRVIKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGJhc2VfdHJpZ2dlciA9IHNlbGYuX05PUk1BTF9UUklHR0VSCi0gICAgICAgIHRyaWdn
ZXIgPSBiYXNlX3RyaWdnZXIgKiAyICoqIF92ZXJib3NlX2xldmVsKCkKKyAgICAgICAgdHJpZ2dl
ciA9IGJhc2VfdHJpZ2dlciAqIDIgKiogc2VsZi52ZXJib3NpdHkKIAogICAgICAgICBpZiBzZWxm
LmxpbmVzX2luX2Z1bmN0aW9uID4gdHJpZ2dlcjoKICAgICAgICAgICAgIGVycm9yX2xldmVsID0g
aW50KG1hdGgubG9nKHNlbGYubGluZXNfaW5fZnVuY3Rpb24gLyBiYXNlX3RyaWdnZXIsIDIpKQpA
QCAtMjgyMyw3ICsyODAzLDcgQEAgZGVmIHByb2Nlc3NfbGluZShmaWxlbmFtZSwgZmlsZV9leHRl
bnNpb24sCiAgICAgY2hlY2tfaW52YWxpZF9pbmNyZW1lbnQoZmlsZW5hbWUsIGNsZWFuX2xpbmVz
LCBsaW5lLCBlcnJvcikKIAogCi1kZWYgcHJvY2Vzc19maWxlX2RhdGEoZmlsZW5hbWUsIGZpbGVf
ZXh0ZW5zaW9uLCBsaW5lcywgZXJyb3IpOgorZGVmIHByb2Nlc3NfZmlsZV9kYXRhKGZpbGVuYW1l
LCBmaWxlX2V4dGVuc2lvbiwgbGluZXMsIGVycm9yLCB2ZXJib3NpdHkpOgogICAgICIiIlBlcmZv
cm1zIGxpbnQgY2hlY2tzIGFuZCByZXBvcnRzIGFueSBlcnJvcnMgdG8gdGhlIGdpdmVuIGVycm9y
IGZ1bmN0aW9uLgogCiAgICAgQXJnczoKQEAgLTI4MzcsNyArMjgxNyw3IEBAIGRlZiBwcm9jZXNz
X2ZpbGVfZGF0YShmaWxlbmFtZSwgZmlsZV9leHRlbnNpb24sIGxpbmVzLCBlcnJvcik6CiAgICAg
ICAgICAgICAgWycvLyBtYXJrZXIgc28gbGluZSBudW1iZXJzIGVuZCBpbiBhIGtub3duIHdheSdd
KQogCiAgICAgaW5jbHVkZV9zdGF0ZSA9IF9JbmNsdWRlU3RhdGUoKQotICAgIGZ1bmN0aW9uX3N0
YXRlID0gX0Z1bmN0aW9uU3RhdGUoKQorICAgIGZ1bmN0aW9uX3N0YXRlID0gX0Z1bmN0aW9uU3Rh
dGUodmVyYm9zaXR5KQogICAgIGNsYXNzX3N0YXRlID0gX0NsYXNzU3RhdGUoKQogICAgIGZpbGVf
c3RhdGUgPSBfRmlsZVN0YXRlKCkKIApAQCAtMjg2MiwxMiArMjg0MiwxNCBAQCBkZWYgcHJvY2Vz
c19maWxlX2RhdGEoZmlsZW5hbWUsIGZpbGVfZXh0ZW5zaW9uLCBsaW5lcywgZXJyb3IpOgogICAg
IGNoZWNrX2Zvcl9uZXdfbGluZV9hdF9lb2YoZmlsZW5hbWUsIGxpbmVzLCBlcnJvcikKIAogCi1k
ZWYgcHJvY2Vzc19maWxlKGZpbGVuYW1lLCBlcnJvcik6CitkZWYgcHJvY2Vzc19maWxlKGZpbGVu
YW1lLCBlcnJvciwgdmVyYm9zaXR5KToKICAgICAiIiJQZXJmb3JtcyBjcHBfc3R5bGUgb24gYSBz
aW5nbGUgZmlsZS4KIAogICAgIEFyZ3M6CiAgICAgICBmaWxlbmFtZTogVGhlIG5hbWUgb2YgdGhl
IGZpbGUgdG8gcGFyc2UuCiAgICAgICBlcnJvcjogVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2l0aCBh
bnkgZXJyb3JzIGZvdW5kLgorICAgICAgdmVyYm9zaXR5OiBBbiBpbnRlZ2VyIHRoYXQgaXMgdGhl
IHZlcmJvc2l0eSBsZXZlbCB0byB1c2Ugd2hpbGUKKyAgICAgICAgICAgICAgICAgY2hlY2tpbmcg
c3R5bGUuCiAgICAgIiIiCiAgICAgdHJ5OgogICAgICAgICAjIFN1cHBvcnQgdGhlIFVOSVggY29u
dmVudGlvbiBvZiB1c2luZyAiLSIgZm9yIHN0ZGluLiAgTm90ZSB0aGF0CkBAIC0yOTA4LDcgKzI4
OTAsNyBAQCBkZWYgcHJvY2Vzc19maWxlKGZpbGVuYW1lLCBlcnJvcik6CiAgICAgaWYgKGZpbGVu
YW1lICE9ICctJyBhbmQgbm90IGNhbl9oYW5kbGUoZmlsZW5hbWUpKToKICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZSgnSWdub3JpbmcgJXM7IG5vdCBhIC5jcHAsIC5jIG9yIC5oIGZpbGVcbicgJSBm
aWxlbmFtZSkKICAgICBlbHNlOgotICAgICAgICBwcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwg
ZmlsZV9leHRlbnNpb24sIGxpbmVzLCBlcnJvcikKKyAgICAgICAgcHJvY2Vzc19maWxlX2RhdGEo
ZmlsZW5hbWUsIGZpbGVfZXh0ZW5zaW9uLCBsaW5lcywgZXJyb3IsIHZlcmJvc2l0eSkKICAgICAg
ICAgaWYgY2FycmlhZ2VfcmV0dXJuX2ZvdW5kIGFuZCBvcy5saW5lc2VwICE9ICdcclxuJzoKICAg
ICAgICAgICAgICMgVXNlIDAgZm9yIGxpbmVfbnVtYmVyIHNpbmNlIG91dHB1dGluZyBvbmx5IG9u
ZSBlcnJvciBmb3IgcG90ZW50aWFsbHkKICAgICAgICAgICAgICMgc2V2ZXJhbCBsaW5lcy4KZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlX3Vu
aXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVf
dW5pdHRlc3QucHkKaW5kZXggNGQyZjJlNi4uMzUxYmI4ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVfdW5pdHRlc3QucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVfdW5pdHRlc3QucHkKQEAg
LTEwOSw3ICsxMDksMjMgQEAgY2xhc3MgTW9ja0lvOgogCiAKIGNsYXNzIENwcFN0eWxlVGVzdEJh
c2UodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlByb3ZpZGVzIHNvbWUgdXNlZnVsIGhlbHBl
ciBmdW5jdGlvbnMgZm9yIGNwcF9zdHlsZSB0ZXN0cy4iIiIKKyAgICAiIiJQcm92aWRlcyBzb21l
IHVzZWZ1bCBoZWxwZXIgZnVuY3Rpb25zIGZvciBjcHBfc3R5bGUgdGVzdHMuCisKKyAgICBBdHRy
aWJ1dGVzOgorICAgICAgdmVyYm9zaXR5OiBBbiBpbnRlZ2VyIHRoYXQgaXMgdGhlIGN1cnJlbnQg
dmVyYm9zaXR5IGxldmVsIGZvcgorICAgICAgICAgICAgICAgICB0aGUgdGVzdHMuCisKKyAgICAi
IiIKKworICAgICMgRklYTUU6IFJlZmFjdG9yIHRoZSB1bml0IHRlc3RzIHNvIHRoZSB2ZXJib3Np
dHkgbGV2ZWwgaXMgcGFzc2VkCisgICAgIyAgICAgICAgZXhwbGljaXRseSwganVzdCBsaWtlIGl0
IGlzIGluIHRoZSByZWFsIGNvZGUuCisgICAgdmVyYm9zaXR5ID0gMTsKKworICAgICMgSGVscGVy
IGZ1bmN0aW9uIHRvIGF2b2lkIG5lZWRpbmcgdG8gZXhwbGljaXRseSBwYXNzIHZlcmJvc2l0eQor
ICAgICMgaW4gYWxsIHRoZSB1bml0IHRlc3QgY2FsbHMgdG8gY3BwX3N0eWxlLnByb2Nlc3NfZmls
ZV9kYXRhKCkuCisgICAgZGVmIHByb2Nlc3NfZmlsZV9kYXRhKHNlbGYsIGZpbGVuYW1lLCBmaWxl
X2V4dGVuc2lvbiwgbGluZXMsIGVycm9yKToKKyAgICAgICAgIiIiQ2FsbCBjcHBfc3R5bGUucHJv
Y2Vzc19maWxlX2RhdGEoKSB3aXRoIHRoZSBjdXJyZW50IHZlcmJvc2l0eS4iIiIKKyAgICAgICAg
cmV0dXJuIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwgZmlsZV9leHRlbnNp
b24sIGxpbmVzLCBlcnJvciwgc2VsZi52ZXJib3NpdHkpCiAKICAgICAjIFBlcmZvcm0gbGludCBv
biBzaW5nbGUgbGluZSBvZiBpbnB1dCBhbmQgcmV0dXJuIHRoZSBlcnJvciBtZXNzYWdlLgogICAg
IGRlZiBwZXJmb3JtX3NpbmdsZV9saW5lX2xpbnQoc2VsZiwgY29kZSwgZmlsZV9uYW1lKToKQEAg
LTExOCw3ICsxMzQsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgY3BwX3N0eWxlLnJlbW92ZV9tdWx0aV9saW5lX2NvbW1lbnRzKGZpbGVfbmFt
ZSwgbGluZXMsIGVycm9yX2NvbGxlY3RvcikKICAgICAgICAgY2xlYW5fbGluZXMgPSBjcHBfc3R5
bGUuQ2xlYW5zZWRMaW5lcyhsaW5lcykKICAgICAgICAgaW5jbHVkZV9zdGF0ZSA9IGNwcF9zdHls
ZS5fSW5jbHVkZVN0YXRlKCkKLSAgICAgICAgZnVuY3Rpb25fc3RhdGUgPSBjcHBfc3R5bGUuX0Z1
bmN0aW9uU3RhdGUoKQorICAgICAgICBmdW5jdGlvbl9zdGF0ZSA9IGNwcF9zdHlsZS5fRnVuY3Rp
b25TdGF0ZShzZWxmLnZlcmJvc2l0eSkKICAgICAgICAgZXh0ID0gZmlsZV9uYW1lW2ZpbGVfbmFt
ZS5yZmluZCgnLicpICsgMTpdCiAgICAgICAgIGNsYXNzX3N0YXRlID0gY3BwX3N0eWxlLl9DbGFz
c1N0YXRlKCkKICAgICAgICAgZmlsZV9zdGF0ZSA9IGNwcF9zdHlsZS5fRmlsZVN0YXRlKCkKQEAg
LTE3OCw3ICsxOTQsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgIiIiCiAgICAgICAgIGZpbGVfbmFtZSA9ICdmb28uY3BwJwogICAgICAgICBl
cnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGZ1
bmN0aW9uX3N0YXRlID0gY3BwX3N0eWxlLl9GdW5jdGlvblN0YXRlKCkKKyAgICAgICAgZnVuY3Rp
b25fc3RhdGUgPSBjcHBfc3R5bGUuX0Z1bmN0aW9uU3RhdGUoc2VsZi52ZXJib3NpdHkpCiAgICAg
ICAgIGxpbmVzID0gY29kZS5zcGxpdCgnXG4nKQogICAgICAgICBjcHBfc3R5bGUucmVtb3ZlX211
bHRpX2xpbmVfY29tbWVudHMoZmlsZV9uYW1lLCBsaW5lcywgZXJyb3JfY29sbGVjdG9yKQogICAg
ICAgICBsaW5lcyA9IGNwcF9zdHlsZS5DbGVhbnNlZExpbmVzKGxpbmVzKQpAQCAtMjM2LDcgKzI1
Miw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAg
ZGVmIGFzc2VydF9ibGFua19saW5lc19jaGVjayhzZWxmLCBsaW5lcywgc3RhcnRfZXJyb3JzLCBl
bmRfZXJyb3JzKToKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2Vs
Zi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAn
LCAnY3BwJywgbGluZXMsIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAgc2VsZi5wcm9jZXNzX2Zp
bGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLCBsaW5lcywgZXJyb3JfY29sbGVjdG9yKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIHN0YXJ0X2Vycm9ycywKICAgICAgICAg
ICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRzKCkuY291bnQoCkBAIC02OTQsMTAgKzcxMCwxMCBA
QCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIGZpbGVfcGF0
aCA9ICdteWRpci9mb28uY3BwJwogCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29s
bGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRh
KGZpbGVfcGF0aCwgJ2NwcCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
J2NvbnN0IGNoYXIqIHN0ciA9ICJUaGlzIGlzIGFcXCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJyBtdWx0aWxpbmUgc3RyaW5nLiI7J10sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJvY2Vz
c19maWxlX2RhdGEoZmlsZV9wYXRoLCAnY3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbJ2NvbnN0IGNoYXIqIHN0ciA9ICJUaGlzIGlzIGFcXCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcgbXVsdGlsaW5lIHN0cmluZy4iOyddLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoCiAgICAgICAgICAgICAyLCAgIyBPbmUgcGVyIGxpbmUuCiAgICAgICAgICAgICBlcnJvcl9j
b2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudChtdWx0aWxpbmVfc3RyaW5nX2Vycm9yX21lc3Nh
Z2UpKQpAQCAtMTQwOCw4ICsxNDI0LDggQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgIGRlZiB0ZXN0X25ld2xpbmVfYXRfZW9mKHNlbGYpOgogICAgICAgICBkZWYg
ZG9fdGVzdChzZWxmLCBkYXRhLCBpc19taXNzaW5nX2VvZik6CiAgICAgICAgICAgICBlcnJvcl9j
b2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgICAgICBjcHBf
c3R5bGUucHJvY2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAnLCAnY3BwJywgZGF0YS5zcGxpdCgnXG4n
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0
b3IpCisgICAgICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcs
IGRhdGEuc3BsaXQoJ1xuJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yX2NvbGxlY3RvcikKICAgICAgICAgICAgICMgVGhlIHdhcm5pbmcgYXBwZWFycyBvbmx5IG9u
Y2UuCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgICAgICBpbnQo
aXNfbWlzc2luZ19lb2YpLApAQCAtMTQyMywxMCArMTQzOSw5IEBAIGNsYXNzIENwcFN0eWxlVGVz
dChDcHBTdHlsZVRlc3RCYXNlKToKICAgICBkZWYgdGVzdF9pbnZhbGlkX3V0Zjgoc2VsZik6CiAg
ICAgICAgIGRlZiBkb190ZXN0KHNlbGYsIHJhd19ieXRlcywgaGFzX2ludmFsaWRfdXRmOCk6CiAg
ICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8p
Ci0gICAgICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoCi0gICAgICAgICAgICAg
ICAgJ2Zvby5jcHAnLCAnY3BwJywKLSAgICAgICAgICAgICAgICB1bmljb2RlKHJhd19ieXRlcywg
J3V0ZjgnLCAncmVwbGFjZScpLnNwbGl0KCdcbicpLAotICAgICAgICAgICAgICAgIGVycm9yX2Nv
bGxlY3RvcikKKyAgICAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAnLCAn
Y3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZShyYXdfYnl0
ZXMsICd1dGY4JywgJ3JlcGxhY2UnKS5zcGxpdCgnXG4nKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICAgICAgIyBUaGUgd2Fybmlu
ZyBhcHBlYXJzIG9ubHkgb25jZS4KICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAogICAg
ICAgICAgICAgICAgIGludChoYXNfaW52YWxpZF91dGY4KSwKQEAgLTE0NTksNDAgKzE0NzQsNDAg
QEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgZGVmIHRlc3Rf
YWxsb3dfYmxhbmtfbGluZV9iZWZvcmVfY2xvc2luZ19uYW1lc3BhY2Uoc2VsZik6CiAgICAgICAg
IGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAg
Y3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ25hbWVzcGFjZSB7JywgJycsICd9ICAvLyBuYW1l
c3BhY2UnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxl
Y3RvcikKKyAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnbmFtZXNwYWNlIHsnLCAnJywgJ30gIC8v
IG5hbWVzcGFjZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxl
Y3RvcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMCwgZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dHMoKS5jb3VudCgKICAgICAgICAgICAgICdCbGFuayBsaW5lIGF0IHRoZSBlbmQgb2YgYSBjb2Rl
IGJsb2NrLiAgSXMgdGhpcyBuZWVkZWQ/JwogICAgICAgICAgICAgJyAgW3doaXRlc3BhY2UvYmxh
bmtfbGluZV0gWzNdJykpCiAKICAgICBkZWYgdGVzdF9hbGxvd19ibGFua19saW5lX2JlZm9yZV9p
Zl9lbHNlX2NoYWluKHNlbGYpOgogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxl
Y3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YSgn
Zm9vLmNwcCcsICdjcHAnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydp
ZiAoaG9nZSkgeycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsICAj
IE5vIHdhcm5pbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSBlbHNl
IGlmIChwaXlvKSB7JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywg
ICMgTm8gd2FybmluZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IGVs
c2UgaWYgKHBpeW9waXlvKSB7JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnICBob2dlID0gdHJ1ZTsnLCAgIyBObyB3YXJuaW5nCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ30gZWxzZSB7JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnJywgICMgV2FybmluZyBvbiB0aGlzIGxpbmUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnfSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28u
Y3BwJywgJ2NwcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydpZiAoaG9nZSkg
eycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLCAgIyBObyB3YXJuaW5nCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IGVsc2UgaWYgKHBpeW8pIHsnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgICMgTm8gd2FybmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnfSBlbHNlIGlmIChwaXlvcGl5bykgeycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcgIGhvZ2UgPSB0cnVlOycsICAjIE5vIHdhcm5pbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gZWxzZSB7JywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJycsICAjIFdhcm5pbmcgb24gdGhpcyBsaW5lCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd9J10sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBlcnJv
cl9jb2xsZWN0b3IucmVzdWx0cygpLmNvdW50KAogICAgICAgICAgICAgJ0JsYW5rIGxpbmUgYXQg
dGhlIGVuZCBvZiBhIGNvZGUgYmxvY2suICBJcyB0aGlzIG5lZWRlZD8nCiAgICAgICAgICAgICAn
ICBbd2hpdGVzcGFjZS9ibGFua19saW5lXSBbM10nKSkKIAogICAgIGRlZiB0ZXN0X2Vsc2Vfb25f
c2FtZV9saW5lX2FzX2Nsb3NpbmdfYnJhY2VzKHNlbGYpOgogICAgICAgICBlcnJvcl9jb2xsZWN0
b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9j
ZXNzX2ZpbGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWydpZiAoaG9nZSkgeycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30nLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgZWxzZSB7JyAgIyBXYXJuaW5n
IG9uIHRoaXMgbGluZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9J10sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJv
Y2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAnLCAnY3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ2lmIChob2dlKSB7JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9JywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJyBlbHNlIHsnICAjIFdhcm5pbmcgb24gdGhpcyBsaW5lCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnfSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxl
Y3RvcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dHMoKS5jb3VudCgKICAgICAgICAgICAgICdBbiBlbHNlIHNob3VsZCBhcHBlYXIgb24gdGhlIHNh
bWUgbGluZSBhcyB0aGUgcHJlY2VkaW5nIH0nCiAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9u
ZXdsaW5lXSBbNF0nKSkKQEAgLTE2MzYsNyArMTY1MSw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChD
cHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgIyBkb2Vzbid0IGFsbG93IHVzIHRvIHRlc3QgdGhl
IHN1Z2dlc3RlZCBoZWFkZXIgZ3VhcmQsIGJ1dCBpdCBkb2VzIGxldCB1cwogICAgICAgICAjIHRl
c3QgYWxsIHRoZSBvdGhlciBoZWFkZXIgdGVzdHMuCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9
IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3Nf
ZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLCBbXSwgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBz
ZWxmLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLCBbXSwgZXJyb3JfY29sbGVjdG9y
KQogICAgICAgICBleHBlY3RlZF9ndWFyZCA9ICcnCiAgICAgICAgIG1hdGNoZXIgPSByZS5jb21w
aWxlKAogICAgICAgICAgICAgJ05vIFwjaWZuZGVmIGhlYWRlciBndWFyZCBmb3VuZFwsIHN1Z2dl
c3RlZCBDUFAgdmFyaWFibGUgaXNcOiAoW0EtWmEtel8wLTldKykgJykKQEAgLTE2NTEsOCArMTY2
Niw4IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKIAogICAgICAgICAj
IFdyb25nIGd1YXJkCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNl
bGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0
aCwgJ2gnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycjaWZuZGVmIEZP
T19IJywgJyNkZWZpbmUgRk9PX0gnXSwgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLnBy
b2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsnI2lmbmRlZiBGT09fSCcsICcjZGVmaW5lIEZPT19IJ10sIGVycm9yX2NvbGxlY3Rv
cikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICAxLAogICAgICAgICAg
ICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkuY291bnQoCkBAIC0xNjYyLDggKzE2Nzcs
OCBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAKICAgICAgICAgIyBO
byBkZWZpbmUKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5h
c3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAn
aCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUg
ZXhwZWN0ZWRfZ3VhcmRdLCBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJvY2Vzc19m
aWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WycjaWZuZGVmICVzJyAlIGV4cGVjdGVkX2d1YXJkXSwgZXJyb3JfY29sbGVjdG9yKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJvcl9j
b2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKQEAgLTE2NzMsMTAgKzE2ODgsMTAgQEAgY2xh
c3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgICAgICMgTWlzbWF0Y2hl
ZCBkZWZpbmUKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5h
c3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAn
aCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUg
ZXhwZWN0ZWRfZ3VhcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNk
ZWZpbmUgRk9PX0gnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y
X2NvbGxlY3RvcikKKyAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdo
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0
ZWRfZ3VhcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lIEZPT19I
J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJv
cl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKQEAgLTE2ODYsMjIgKzE3MDEsMjIgQEAg
Y2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgICAgICMgTm8gaGVh
ZGVyIGd1YXJkIGVycm9ycwogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3Rv
cihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxl
X3BhdGgsICdoJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRl
ZiAlcycgJSBleHBlY3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnI2RlZmluZSAlcycgJSBleHBlY3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnI2VuZGlmIC8vICVzJyAlIGV4cGVjdGVkX2d1YXJkXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAg
c2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0ZWRfZ3VhcmQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lICVzJyAlIGV4cGVjdGVkX2d1YXJkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2VuZGlmIC8vICVzJyAlIGV4cGVjdGVkX2d1
YXJkXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCiAg
ICAgICAgIGZvciBsaW5lIGluIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpOgogICAgICAg
ICAgICAgaWYgbGluZS5maW5kKCdidWlsZC9oZWFkZXJfZ3VhcmQnKSAhPSAtMToKICAgICAgICAg
ICAgICAgICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQgZXJyb3I6ICVzJyAlIGxpbmUpCiAKICAgICAg
ICAgIyBDb21wbGV0ZWx5IGluY29ycmVjdCBoZWFkZXIgZ3VhcmQKICAgICAgICAgZXJyb3JfY29s
bGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUu
cHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJyNpZm5kZWYgRk9PJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnI2RlZmluZSBGT08nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcjZW5kaWYgIC8vIEZPTyddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKGZp
bGVfcGF0aCwgJ2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRlZiBG
T08nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2RlZmluZSBGT08nLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2VuZGlmICAvLyBGT08nXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKAogICAgICAgICAgICAgMSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5y
ZXN1bHRfbGlzdCgpLmNvdW50KApAQCAtMTg0MywxMyArMTg1OCwxMyBAQCBjbGFzcyBDcHBTdHls
ZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAKICAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUgYSBj
b3B5cmlnaHQgbWVzc2FnZSBpbiB0aGUgZmlyc3QgMTAgbGluZXMKICAgICAgICAgZXJyb3JfY29s
bGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUu
cHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnY3BwJywgW10sIGVycm9yX2NvbGxlY3RvcikK
KyAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdjcHAnLCBbXSwgZXJy
b3JfY29sbGVjdG9yKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEs
CiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudChsZWdhbF9j
b3B5cmlnaHRfbWVzc2FnZSkpCiAKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xs
ZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEo
CisgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoCiAgICAgICAgICAgICBmaWxlX3BhdGgs
ICdjcHAnLAogICAgICAgICAgICAgWycnIGZvciB1bnVzZWRfaSBpbiByYW5nZSgxMCldICsgW2Nv
cHlyaWdodF9saW5lXSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKQEAgLTE4NTksMTMg
KzE4NzQsMTMgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAg
ICAgICMgVGVzdCB0aGF0IHdhcm5pbmcgaXNuJ3QgaXNzdWVkIGlmIENvcHlyaWdodCBsaW5lIGFw
cGVhcnMgZWFybHkgZW5vdWdoLgogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxl
Y3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShm
aWxlX3BhdGgsICdjcHAnLCBbY29weXJpZ2h0X2xpbmVdLCBlcnJvcl9jb2xsZWN0b3IpCisgICAg
ICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnY3BwJywgW2NvcHlyaWdodF9s
aW5lXSwgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBmb3IgbWVzc2FnZSBpbiBlcnJvcl9jb2xs
ZWN0b3IucmVzdWx0X2xpc3QoKToKICAgICAgICAgICAgIGlmIG1lc3NhZ2UuZmluZCgnbGVnYWwv
Y29weXJpZ2h0JykgIT0gLTE6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVk
IGVycm9yOiAlcycgJSBtZXNzYWdlKQogCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9y
Q29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9k
YXRhKAorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKAogICAgICAgICAgICAgZmlsZV9w
YXRoLCAnY3BwJywKICAgICAgICAgICAgIFsnJyBmb3IgdW51c2VkX2kgaW4gcmFuZ2UoOSldICsg
W2NvcHlyaWdodF9saW5lXSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKQEAgLTIxOTUs
NiArMjIxMCwxMyBAQCBjbGFzcyBDaGVja0ZvckZ1bmN0aW9uTGVuZ3Roc1Rlc3QoQ3BwU3R5bGVU
ZXN0QmFzZSk6CiAgICAgICAgIGNwcF9zdHlsZS5fRnVuY3Rpb25TdGF0ZS5fTk9STUFMX1RSSUdH
RVIgPSBzZWxmLm9sZF9ub3JtYWxfdHJpZ2dlcgogICAgICAgICBjcHBfc3R5bGUuX0Z1bmN0aW9u
U3RhdGUuX1RFU1RfVFJJR0dFUiA9IHNlbGYub2xkX3Rlc3RfdHJpZ2dlcgogCisgICAgIyBGSVhN
RTogRWxpbWluYXRlIHRoZSBuZWVkIGZvciB0aGlzIGZ1bmN0aW9uLgorICAgIGRlZiBzZXRfdmVy
Ym9zaXR5KHNlbGYsIHZlcmJvc2l0eSk6CisgICAgICAgICIiIlNldCBuZXcgdGVzdCB2ZXJib3Np
dHkgYW5kIHJldHVybiBvbGQgdGVzdCB2ZXJib3NpdHkuIiIiCisgICAgICAgIG9sZF92ZXJib3Np
dHkgPSBzZWxmLnZlcmJvc2l0eQorICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IHZlcmJvc2l0eQor
ICAgICAgICByZXR1cm4gb2xkX3ZlcmJvc2l0eQorCiAgICAgZGVmIGFzc2VydF9mdW5jdGlvbl9s
ZW5ndGhzX2NoZWNrKHNlbGYsIGNvZGUsIGV4cGVjdGVkX21lc3NhZ2UpOgogICAgICAgICAiIiJD
aGVjayB3YXJuaW5ncyBmb3IgbG9uZyBmdW5jdGlvbiBib2RpZXMgYXJlIGFzIGV4cGVjdGVkLgog
CkBAIC0yMjM0LDcgKzIyNTYsNyBAQCBjbGFzcyBDaGVja0ZvckZ1bmN0aW9uTGVuZ3Roc1Rlc3Qo
Q3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgbGluZXM6IE51bWJlciBvZiBsaW5lcyB0byBn
ZW5lcmF0ZS4KICAgICAgICAgICBlcnJvcl9sZXZlbDogIC0tdiBzZXR0aW5nIGZvciBjcHBfc3R5
bGUuCiAgICAgICAgICIiIgotICAgICAgICB0cmlnZ2VyX2xldmVsID0gc2VsZi50cmlnZ2VyX2xp
bmVzKGNwcF9zdHlsZS5fdmVyYm9zZV9sZXZlbCgpKQorICAgICAgICB0cmlnZ2VyX2xldmVsID0g
c2VsZi50cmlnZ2VyX2xpbmVzKHNlbGYudmVyYm9zaXR5KQogICAgICAgICBzZWxmLmFzc2VydF9m
dW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAgJ3ZvaWQgdGVzdChpbnQgeCknICsg
c2VsZi5mdW5jdGlvbl9ib2R5KGxpbmVzKSwKICAgICAgICAgICAgICgnU21hbGwgYW5kIGZvY3Vz
ZWQgZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQ6ICcKQEAgLTIzMTcsMjkgKzIzMzksMjkgQEAgY2xh
c3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAg
ICAgICAgJycpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9sZW5ndGhfY2hlY2tfZGVmaW5pdGlv
bl9iZWxvd19zZXZlcml0eTAoc2VsZik6Ci0gICAgICAgIG9sZF92ZXJib3NpdHkgPSBjcHBfc3R5
bGUuX3NldF92ZXJib3NlX2xldmVsKDApCisgICAgICAgIG9sZF92ZXJib3NpdHkgPSBzZWxmLnNl
dF92ZXJib3NpdHkoMCkKICAgICAgICAgc2VsZi5hc3NlcnRfZnVuY3Rpb25fbGVuZ3RoX2NoZWNr
X2RlZmluaXRpb25fb2soc2VsZi50cmlnZ2VyX2xpbmVzKDApIC0gMSkKLSAgICAgICAgY3BwX3N0
eWxlLl9zZXRfdmVyYm9zZV9sZXZlbChvbGRfdmVyYm9zaXR5KQorICAgICAgICBzZWxmLnNldF92
ZXJib3NpdHkob2xkX3ZlcmJvc2l0eSkKIAogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9j
aGVja19kZWZpbml0aW9uX2F0X3NldmVyaXR5MChzZWxmKToKLSAgICAgICAgb2xkX3ZlcmJvc2l0
eSA9IGNwcF9zdHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwoMCkKKyAgICAgICAgb2xkX3ZlcmJvc2l0
eSA9IHNlbGYuc2V0X3ZlcmJvc2l0eSgwKQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9s
ZW5ndGhfY2hlY2tfZGVmaW5pdGlvbl9vayhzZWxmLnRyaWdnZXJfbGluZXMoMCkpCi0gICAgICAg
IGNwcF9zdHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwob2xkX3ZlcmJvc2l0eSkKKyAgICAgICAgc2Vs
Zi5zZXRfdmVyYm9zaXR5KG9sZF92ZXJib3NpdHkpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9s
ZW5ndGhfY2hlY2tfZGVmaW5pdGlvbl9hYm92ZV9zZXZlcml0eTAoc2VsZik6Ci0gICAgICAgIG9s
ZF92ZXJib3NpdHkgPSBjcHBfc3R5bGUuX3NldF92ZXJib3NlX2xldmVsKDApCisgICAgICAgIG9s
ZF92ZXJib3NpdHkgPSBzZWxmLnNldF92ZXJib3NpdHkoMCkKICAgICAgICAgc2VsZi5hc3NlcnRf
ZnVuY3Rpb25fbGVuZ3RoX2NoZWNrX2Fib3ZlX2Vycm9yX2xldmVsKDApCi0gICAgICAgIGNwcF9z
dHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwob2xkX3ZlcmJvc2l0eSkKKyAgICAgICAgc2VsZi5zZXRf
dmVyYm9zaXR5KG9sZF92ZXJib3NpdHkpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9sZW5ndGhf
Y2hlY2tfZGVmaW5pdGlvbl9iZWxvd19zZXZlcml0eTF2MChzZWxmKToKLSAgICAgICAgb2xkX3Zl
cmJvc2l0eSA9IGNwcF9zdHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwoMCkKKyAgICAgICAgb2xkX3Zl
cmJvc2l0eSA9IHNlbGYuc2V0X3ZlcmJvc2l0eSgwKQogICAgICAgICBzZWxmLmFzc2VydF9mdW5j
dGlvbl9sZW5ndGhfY2hlY2tfYmVsb3dfZXJyb3JfbGV2ZWwoMSkKLSAgICAgICAgY3BwX3N0eWxl
Ll9zZXRfdmVyYm9zZV9sZXZlbChvbGRfdmVyYm9zaXR5KQorICAgICAgICBzZWxmLnNldF92ZXJi
b3NpdHkob2xkX3ZlcmJvc2l0eSkKIAogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVj
a19kZWZpbml0aW9uX2F0X3NldmVyaXR5MXYwKHNlbGYpOgotICAgICAgICBvbGRfdmVyYm9zaXR5
ID0gY3BwX3N0eWxlLl9zZXRfdmVyYm9zZV9sZXZlbCgwKQorICAgICAgICBvbGRfdmVyYm9zaXR5
ID0gc2VsZi5zZXRfdmVyYm9zaXR5KDApCiAgICAgICAgIHNlbGYuYXNzZXJ0X2Z1bmN0aW9uX2xl
bmd0aF9jaGVja19hdF9lcnJvcl9sZXZlbCgxKQotICAgICAgICBjcHBfc3R5bGUuX3NldF92ZXJi
b3NlX2xldmVsKG9sZF92ZXJib3NpdHkpCisgICAgICAgIHNlbGYuc2V0X3ZlcmJvc2l0eShvbGRf
dmVyYm9zaXR5KQogCiAgICAgZGVmIHRlc3RfZnVuY3Rpb25fbGVuZ3RoX2NoZWNrX2RlZmluaXRp
b25fYmVsb3dfc2V2ZXJpdHkxKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9s
ZW5ndGhfY2hlY2tfZGVmaW5pdGlvbl9vayhzZWxmLnRyaWdnZXJfbGluZXMoMSkgLSAxKQpAQCAt
MjM1Myw3ICsyMzc1LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0
eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19kZWZpbml0
aW9uX3NldmVyaXR5MV9wbHVzX2JsYW5rcyhzZWxmKToKICAgICAgICAgZXJyb3JfbGV2ZWwgPSAx
CiAgICAgICAgIGVycm9yX2xpbmVzID0gc2VsZi50cmlnZ2VyX2xpbmVzKGVycm9yX2xldmVsKSAr
IDEKLSAgICAgICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl9saW5lcyhjcHBfc3R5bGUu
X3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAgICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl9s
aW5lcyhzZWxmLnZlcmJvc2l0eSkKICAgICAgICAgc2VsZi5hc3NlcnRfZnVuY3Rpb25fbGVuZ3Ro
c19jaGVjaygKICAgICAgICAgICAgICd2b2lkIHRlc3RfYmxhbmtzKGludCB4KScgKyBzZWxmLmZ1
bmN0aW9uX2JvZHkoZXJyb3JfbGluZXMpLAogICAgICAgICAgICAgKCdTbWFsbCBhbmQgZm9jdXNl
ZCBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZDogJwpAQCAtMjM2NSw3ICsyMzg3LDcgQEAgY2xhc3Mg
Q2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0
ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19jb21wbGV4X2RlZmluaXRpb25fc2V2ZXJpdHkxKHNl
bGYpOgogICAgICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxm
LnRyaWdnZXJfbGluZXMoZXJyb3JfbGV2ZWwpICsgMQotICAgICAgICB0cmlnZ2VyX2xldmVsID0g
c2VsZi50cmlnZ2VyX2xpbmVzKGNwcF9zdHlsZS5fdmVyYm9zZV9sZXZlbCgpKQorICAgICAgICB0
cmlnZ2VyX2xldmVsID0gc2VsZi50cmlnZ2VyX2xpbmVzKHNlbGYudmVyYm9zaXR5KQogICAgICAg
ICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAgKCdteV9u
YW1lc3BhY2U6Om15X290aGVyX25hbWVzcGFjZTo6TXlWZXJ5TG9uZ1R5cGVOYW1lKlxuJwogICAg
ICAgICAgICAgICdteV9uYW1lc3BhY2U6Om15X290aGVyX25hbWVzcGFjZTo6TXlGdW5jdGlvbihp
bnQgYXJnMSwgY2hhciogYXJnMiknCkBAIC0yMzgwLDcgKzI0MDIsNyBAQCBjbGFzcyBDaGVja0Zv
ckZ1bmN0aW9uTGVuZ3Roc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfZnVu
Y3Rpb25fbGVuZ3RoX2NoZWNrX2RlZmluaXRpb25fc2V2ZXJpdHkxX2Zvcl90ZXN0KHNlbGYpOgog
ICAgICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxmLnRyaWdn
ZXJfdGVzdF9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2ZWwgPSBz
ZWxmLnRyaWdnZXJfdGVzdF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAg
ICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNlbGYudmVyYm9zaXR5
KQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAg
ICAgJ1RFU1RfRihUZXN0LCBNdXRhdG9yKScgKyBzZWxmLmZ1bmN0aW9uX2JvZHkoZXJyb3JfbGlu
ZXMpLAogICAgICAgICAgICAgKCdTbWFsbCBhbmQgZm9jdXNlZCBmdW5jdGlvbnMgYXJlIHByZWZl
cnJlZDogJwpAQCAtMjM5Miw3ICsyNDE0LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0
aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9j
aGVja19kZWZpbml0aW9uX3NldmVyaXR5MV9mb3Jfc3BsaXRfbGluZV90ZXN0KHNlbGYpOgogICAg
ICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxmLnRyaWdnZXJf
dGVzdF9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2ZWwgPSBzZWxm
LnRyaWdnZXJfdGVzdF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAgICAg
dHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNlbGYudmVyYm9zaXR5KQog
ICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAg
KCdURVNUX0YoR29vZ2xlVXBkYXRlUmVjb3ZlcnlSZWdpc3RyeVByb3RlY3RlZFRlc3QsXG4nCiAg
ICAgICAgICAgICAgJyAgICBGaXhHb29nbGVVcGRhdGVfQWxsVmFsdWVzX01hY2hpbmVBcHApJyAg
IyBub3RlOiA0IHNwYWNlcwpAQCAtMjQwNyw3ICsyNDI5LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5j
dGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
X2xlbmd0aF9jaGVja19kZWZpbml0aW9uX3NldmVyaXR5MV9mb3JfYmFkX3Rlc3RfZG9lc250X2Jy
ZWFrKHNlbGYpOgogICAgICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMg
PSBzZWxmLnRyaWdnZXJfdGVzdF9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdn
ZXJfbGV2ZWwgPSBzZWxmLnRyaWdnZXJfdGVzdF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2
ZWwoKSkKKyAgICAgICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNl
bGYudmVyYm9zaXR5KQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNr
KAogICAgICAgICAgICAgKCdURVNUX0YoJwogICAgICAgICAgICAgICsgc2VsZi5mdW5jdGlvbl9i
b2R5KGVycm9yX2xpbmVzKSksCkBAIC0yNDIwLDcgKzI0NDIsNyBAQCBjbGFzcyBDaGVja0ZvckZ1
bmN0aW9uTGVuZ3Roc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfZnVuY3Rp
b25fbGVuZ3RoX2NoZWNrX2RlZmluaXRpb25fc2V2ZXJpdHkxX3dpdGhfZW1iZWRkZWRfbm9fbGlu
dHMoc2VsZik6CiAgICAgICAgIGVycm9yX2xldmVsID0gMQogICAgICAgICBlcnJvcl9saW5lcyA9
IHNlbGYudHJpZ2dlcl9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2
ZWwgPSBzZWxmLnRyaWdnZXJfbGluZXMoY3BwX3N0eWxlLl92ZXJib3NlX2xldmVsKCkpCisgICAg
ICAgIHRyaWdnZXJfbGV2ZWwgPSBzZWxmLnRyaWdnZXJfbGluZXMoc2VsZi52ZXJib3NpdHkpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0X2Z1bmN0aW9uX2xlbmd0aHNfY2hlY2soCiAgICAgICAgICAgICAn
dm9pZCB0ZXN0KGludCB4KScgKyBzZWxmLmZ1bmN0aW9uX2JvZHlfd2l0aF9ub19saW50cyhlcnJv
cl9saW5lcyksCiAgICAgICAgICAgICAoJ1NtYWxsIGFuZCBmb2N1c2VkIGZ1bmN0aW9ucyBhcmUg
cHJlZmVycmVkOiAnCg==
</data>
<flag name="commit-queue"
          id="29061"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46767</attachid>
            <date>2010-01-17 16:12:24 -0800</date>
            <delta_ts>2010-01-17 18:22:49 -0800</delta_ts>
            <desc>Proposed patch 2 (resubmit)</desc>
            <filename>_patch-33764-2.txt</filename>
            <type>text/plain</type>
            <size>26518</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlZWE0MzhiLi41OWQ4ZjUyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDEt
MTYgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluaXNoZWQgZWxpbWluYXRpbmcg
X2NwcF9zdHlsZV9zdGF0ZSBnbG9iYWwgc3RhdGUgdmFyaWFibGUgZnJvbQorICAgICAgICBjaGVj
ay13ZWJraXQtc3R5bGUgY29kZSBhbmQgZWxpbWluYXRpbmcgX0NwcFN0eWxlU3RhdGUgY2xhc3Mu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNzY0
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAg
ICAgLSBNaW5vciB1cGRhdGVzIGNhdXNlZCBieSBjaGFuZ2VzIHRvIGNwcF9zdHlsZS5weS4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5OgorICAgICAgICAg
IC0gUmVtb3ZlZCBfQ3BwU3R5bGVTdGF0ZSBjbGFzcy4KKyAgICAgICAgICAtIFJlbW92ZWQgdmVy
Ym9zZV9sZXZlbCBmdW5jdGlvbnMuCisgICAgICAgICAgLSBBZGRlZCB2ZXJib3NpdHkgYXMgYSBw
YXJhbWV0ZXIgdG8gX0Z1bmN0aW9uU3RhdGUgY29uc3RydWN0b3IuCisgICAgICAgICAgLSBBZGRl
ZCB2ZXJib3NpdHkgYXMgYSBwYXJhbWV0ZXIgdG8gcHJvY2Vzc19maWxlKCkuCisgICAgICAgICAg
LSBBZGRlZCB2ZXJib3NpdHkgYXMgYSBwYXJhbWV0ZXIgdG8gcHJvY2Vzc19maWxlX2RhdGEoKS4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5
OgorICAgICAgICAgIC0gQWRkZWQgaGVscGVyIGZ1bmN0aW9ucyB0byBzZXQgdmVyYm9zaXR5IHdo
aWxlIHJ1bm5pbmcgdGVzdHMuCisKIDIwMTAtMDEtMTUgIENocmlzIEplcmRvbmVrICA8Y2plcmRv
bmVrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggYzQ2
YTU0NS4uYzNmNGRiMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQpAQCAtNjQ1LDkgKzY0NSw2IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3Qp
OgogICAgICAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIHNlbGYuZXJyb3JfY291
bnQgPSAwCiAKLSAgICAgICAgIyBGSVhNRTogRWxpbWluYXRlIHRoZSBuZWVkIHRvIHNldCBnbG9i
YWwgc3RhdGUgaGVyZS4KLSAgICAgICAgY3BwX3N0eWxlLl9zZXRfdmVyYm9zZV9sZXZlbChvcHRp
b25zLnZlcmJvc2l0eSkKLQogICAgIGRlZiBfaGFuZGxlX2Vycm9yKHNlbGYsIGZpbGVuYW1lLCBs
aW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAiIiJI
YW5kbGUgdGhlIG9jY3VycmVuY2Ugb2YgYSBzdHlsZSBlcnJvciB3aGlsZSBjaGVja2luZy4KIApA
QCAtNjg4LDcgKzY4NSw3IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3QpOgogCiAgICAgICAg
ICIiIgogICAgICAgICBpZiBjcHBfc3R5bGUuY2FuX2hhbmRsZShmaWxlbmFtZSkgb3IgZmlsZW5h
bWUgPT0gJy0nOgotICAgICAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZShmaWxlbmFtZSwg
c2VsZi5faGFuZGxlX2Vycm9yKQorICAgICAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZShm
aWxlbmFtZSwgc2VsZi5faGFuZGxlX2Vycm9yLCBzZWxmLm9wdGlvbnMudmVyYm9zaXR5KQogICAg
ICAgICBlbGlmIHRleHRfc3R5bGUuY2FuX2hhbmRsZShmaWxlbmFtZSk6CiAgICAgICAgICAgICB0
ZXh0X3N0eWxlLnByb2Nlc3NfZmlsZShmaWxlbmFtZSwgc2VsZi5faGFuZGxlX2Vycm9yKQogCkBA
IC03MjAsNyArNzE3LDggQEAgY2xhc3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgaWYgbGluZV9udW1iZXIgaW4gbGluZV9udW1iZXJzOgogICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9oYW5kbGVfZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29u
ZmlkZW5jZSwgbWVzc2FnZSkKIAorICAgICAgICAgICAgIyBGSVhNRTogU2hhcmUgdGhpcyBjb2Rl
IHdpdGggc2VsZi5wcm9jZXNzX2ZpbGUoKS4KICAgICAgICAgICAgIGlmIGNwcF9zdHlsZS5jYW5f
aGFuZGxlKGZpbGVuYW1lKToKLSAgICAgICAgICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxl
KGZpbGVuYW1lLCBlcnJvcl9mb3JfcGF0Y2gpCisgICAgICAgICAgICAgICAgY3BwX3N0eWxlLnBy
b2Nlc3NfZmlsZShmaWxlbmFtZSwgZXJyb3JfZm9yX3BhdGNoLCBzZWxmLm9wdGlvbnMudmVyYm9z
aXR5KQogICAgICAgICAgICAgZWxpZiB0ZXh0X3N0eWxlLmNhbl9oYW5kbGUoZmlsZW5hbWUpOgog
ICAgICAgICAgICAgICAgIHRleHRfc3R5bGUucHJvY2Vzc19maWxlKGZpbGVuYW1lLCBlcnJvcl9m
b3JfcGF0Y2gpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NwcF9zdHlsZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0
eWxlLnB5CmluZGV4IDM5NDBhNzUuLjNjMDcxOGUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5CkBAIC0yNDIsMzkgKzI0MiwxOSBAQCBjbGFz
cyBfSW5jbHVkZVN0YXRlKGRpY3QpOgogICAgICAgICByZXR1cm4gZXJyb3JfbWVzc2FnZQogCiAK
LWNsYXNzIF9DcHBTdHlsZVN0YXRlKG9iamVjdCk6Ci0gICAgIiIiTWFpbnRhaW5zIG1vZHVsZS13
aWRlIHN0YXRlLi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi52
ZXJib3NlX2xldmVsID0gMSAgIyBnbG9iYWwgc2V0dGluZy4KLQotICAgIGRlZiBzZXRfdmVyYm9z
ZV9sZXZlbChzZWxmLCBsZXZlbCk6Ci0gICAgICAgICIiIlNldHMgdGhlIG1vZHVsZSdzIHZlcmJv
c2l0eSwgYW5kIHJldHVybnMgdGhlIHByZXZpb3VzIHNldHRpbmcuIiIiCi0gICAgICAgIGxhc3Rf
dmVyYm9zZV9sZXZlbCA9IHNlbGYudmVyYm9zZV9sZXZlbAotICAgICAgICBzZWxmLnZlcmJvc2Vf
bGV2ZWwgPSBsZXZlbAotICAgICAgICByZXR1cm4gbGFzdF92ZXJib3NlX2xldmVsCi0KLQotX2Nw
cF9zdHlsZV9zdGF0ZSA9IF9DcHBTdHlsZVN0YXRlKCkKLQotCi1kZWYgX3ZlcmJvc2VfbGV2ZWwo
KToKLSAgICAiIiJSZXR1cm5zIHRoZSBtb2R1bGUncyB2ZXJib3NpdHkgc2V0dGluZy4iIiIKLSAg
ICByZXR1cm4gX2NwcF9zdHlsZV9zdGF0ZS52ZXJib3NlX2xldmVsCi0KLQotZGVmIF9zZXRfdmVy
Ym9zZV9sZXZlbChsZXZlbCk6Ci0gICAgIiIiU2V0cyB0aGUgbW9kdWxlJ3MgdmVyYm9zaXR5LCBh
bmQgcmV0dXJucyB0aGUgcHJldmlvdXMgc2V0dGluZy4iIiIKLSAgICByZXR1cm4gX2NwcF9zdHls
ZV9zdGF0ZS5zZXRfdmVyYm9zZV9sZXZlbChsZXZlbCkKK2NsYXNzIF9GdW5jdGlvblN0YXRlKG9i
amVjdCk6CisgICAgIiIiVHJhY2tzIGN1cnJlbnQgZnVuY3Rpb24gbmFtZSBhbmQgdGhlIG51bWJl
ciBvZiBsaW5lcyBpbiBpdHMgYm9keS4KIAorICAgIEF0dHJpYnV0ZXM6CisgICAgICB2ZXJib3Np
dHk6IFRoZSB2ZXJib3NpdHkgbGV2ZWwgdG8gdXNlIHdoaWxlIGNoZWNraW5nIHN0eWxlLgogCi1j
bGFzcyBfRnVuY3Rpb25TdGF0ZShvYmplY3QpOgotICAgICIiIlRyYWNrcyBjdXJyZW50IGZ1bmN0
aW9uIG5hbWUgYW5kIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gaXRzIGJvZHkuIiIiCisgICAgIiIi
CiAKICAgICBfTk9STUFMX1RSSUdHRVIgPSAyNTAgICMgZm9yIC0tdj0wLCA1MDAgZm9yIC0tdj0x
LCBldGMuCiAgICAgX1RFU1RfVFJJR0dFUiA9IDQwMCAgICAjIGFib3V0IDUwJSBtb3JlIHRoYW4g
X05PUk1BTF9UUklHR0VSLgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB2ZXJib3NpdHkpOgorICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IHZlcmJvc2l0
eQogICAgICAgICBzZWxmLmluX2FfZnVuY3Rpb24gPSBGYWxzZQogICAgICAgICBzZWxmLmxpbmVz
X2luX2Z1bmN0aW9uID0gMAogICAgICAgICBzZWxmLmN1cnJlbnRfZnVuY3Rpb24gPSAnJwpAQCAt
MzA2LDcgKzI4Niw3IEBAIGNsYXNzIF9GdW5jdGlvblN0YXRlKG9iamVjdCk6CiAgICAgICAgICAg
ICBiYXNlX3RyaWdnZXIgPSBzZWxmLl9URVNUX1RSSUdHRVIKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGJhc2VfdHJpZ2dlciA9IHNlbGYuX05PUk1BTF9UUklHR0VSCi0gICAgICAgIHRyaWdn
ZXIgPSBiYXNlX3RyaWdnZXIgKiAyICoqIF92ZXJib3NlX2xldmVsKCkKKyAgICAgICAgdHJpZ2dl
ciA9IGJhc2VfdHJpZ2dlciAqIDIgKiogc2VsZi52ZXJib3NpdHkKIAogICAgICAgICBpZiBzZWxm
LmxpbmVzX2luX2Z1bmN0aW9uID4gdHJpZ2dlcjoKICAgICAgICAgICAgIGVycm9yX2xldmVsID0g
aW50KG1hdGgubG9nKHNlbGYubGluZXNfaW5fZnVuY3Rpb24gLyBiYXNlX3RyaWdnZXIsIDIpKQpA
QCAtMjgyMyw3ICsyODAzLDcgQEAgZGVmIHByb2Nlc3NfbGluZShmaWxlbmFtZSwgZmlsZV9leHRl
bnNpb24sCiAgICAgY2hlY2tfaW52YWxpZF9pbmNyZW1lbnQoZmlsZW5hbWUsIGNsZWFuX2xpbmVz
LCBsaW5lLCBlcnJvcikKIAogCi1kZWYgcHJvY2Vzc19maWxlX2RhdGEoZmlsZW5hbWUsIGZpbGVf
ZXh0ZW5zaW9uLCBsaW5lcywgZXJyb3IpOgorZGVmIHByb2Nlc3NfZmlsZV9kYXRhKGZpbGVuYW1l
LCBmaWxlX2V4dGVuc2lvbiwgbGluZXMsIGVycm9yLCB2ZXJib3NpdHkpOgogICAgICIiIlBlcmZv
cm1zIGxpbnQgY2hlY2tzIGFuZCByZXBvcnRzIGFueSBlcnJvcnMgdG8gdGhlIGdpdmVuIGVycm9y
IGZ1bmN0aW9uLgogCiAgICAgQXJnczoKQEAgLTI4MzcsNyArMjgxNyw3IEBAIGRlZiBwcm9jZXNz
X2ZpbGVfZGF0YShmaWxlbmFtZSwgZmlsZV9leHRlbnNpb24sIGxpbmVzLCBlcnJvcik6CiAgICAg
ICAgICAgICAgWycvLyBtYXJrZXIgc28gbGluZSBudW1iZXJzIGVuZCBpbiBhIGtub3duIHdheSdd
KQogCiAgICAgaW5jbHVkZV9zdGF0ZSA9IF9JbmNsdWRlU3RhdGUoKQotICAgIGZ1bmN0aW9uX3N0
YXRlID0gX0Z1bmN0aW9uU3RhdGUoKQorICAgIGZ1bmN0aW9uX3N0YXRlID0gX0Z1bmN0aW9uU3Rh
dGUodmVyYm9zaXR5KQogICAgIGNsYXNzX3N0YXRlID0gX0NsYXNzU3RhdGUoKQogICAgIGZpbGVf
c3RhdGUgPSBfRmlsZVN0YXRlKCkKIApAQCAtMjg2MiwxMiArMjg0MiwxNCBAQCBkZWYgcHJvY2Vz
c19maWxlX2RhdGEoZmlsZW5hbWUsIGZpbGVfZXh0ZW5zaW9uLCBsaW5lcywgZXJyb3IpOgogICAg
IGNoZWNrX2Zvcl9uZXdfbGluZV9hdF9lb2YoZmlsZW5hbWUsIGxpbmVzLCBlcnJvcikKIAogCi1k
ZWYgcHJvY2Vzc19maWxlKGZpbGVuYW1lLCBlcnJvcik6CitkZWYgcHJvY2Vzc19maWxlKGZpbGVu
YW1lLCBlcnJvciwgdmVyYm9zaXR5KToKICAgICAiIiJQZXJmb3JtcyBjcHBfc3R5bGUgb24gYSBz
aW5nbGUgZmlsZS4KIAogICAgIEFyZ3M6CiAgICAgICBmaWxlbmFtZTogVGhlIG5hbWUgb2YgdGhl
IGZpbGUgdG8gcGFyc2UuCiAgICAgICBlcnJvcjogVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2l0aCBh
bnkgZXJyb3JzIGZvdW5kLgorICAgICAgdmVyYm9zaXR5OiBBbiBpbnRlZ2VyIHRoYXQgaXMgdGhl
IHZlcmJvc2l0eSBsZXZlbCB0byB1c2Ugd2hpbGUKKyAgICAgICAgICAgICAgICAgY2hlY2tpbmcg
c3R5bGUuCiAgICAgIiIiCiAgICAgdHJ5OgogICAgICAgICAjIFN1cHBvcnQgdGhlIFVOSVggY29u
dmVudGlvbiBvZiB1c2luZyAiLSIgZm9yIHN0ZGluLiAgTm90ZSB0aGF0CkBAIC0yOTA4LDcgKzI4
OTAsNyBAQCBkZWYgcHJvY2Vzc19maWxlKGZpbGVuYW1lLCBlcnJvcik6CiAgICAgaWYgKGZpbGVu
YW1lICE9ICctJyBhbmQgbm90IGNhbl9oYW5kbGUoZmlsZW5hbWUpKToKICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZSgnSWdub3JpbmcgJXM7IG5vdCBhIC5jcHAsIC5jIG9yIC5oIGZpbGVcbicgJSBm
aWxlbmFtZSkKICAgICBlbHNlOgotICAgICAgICBwcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwg
ZmlsZV9leHRlbnNpb24sIGxpbmVzLCBlcnJvcikKKyAgICAgICAgcHJvY2Vzc19maWxlX2RhdGEo
ZmlsZW5hbWUsIGZpbGVfZXh0ZW5zaW9uLCBsaW5lcywgZXJyb3IsIHZlcmJvc2l0eSkKICAgICAg
ICAgaWYgY2FycmlhZ2VfcmV0dXJuX2ZvdW5kIGFuZCBvcy5saW5lc2VwICE9ICdcclxuJzoKICAg
ICAgICAgICAgICMgVXNlIDAgZm9yIGxpbmVfbnVtYmVyIHNpbmNlIG91dHB1dGluZyBvbmx5IG9u
ZSBlcnJvciBmb3IgcG90ZW50aWFsbHkKICAgICAgICAgICAgICMgc2V2ZXJhbCBsaW5lcy4KZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlX3Vu
aXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVf
dW5pdHRlc3QucHkKaW5kZXggNGQyZjJlNi4uMzUxYmI4ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVfdW5pdHRlc3QucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVfdW5pdHRlc3QucHkKQEAg
LTEwOSw3ICsxMDksMjMgQEAgY2xhc3MgTW9ja0lvOgogCiAKIGNsYXNzIENwcFN0eWxlVGVzdEJh
c2UodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlByb3ZpZGVzIHNvbWUgdXNlZnVsIGhlbHBl
ciBmdW5jdGlvbnMgZm9yIGNwcF9zdHlsZSB0ZXN0cy4iIiIKKyAgICAiIiJQcm92aWRlcyBzb21l
IHVzZWZ1bCBoZWxwZXIgZnVuY3Rpb25zIGZvciBjcHBfc3R5bGUgdGVzdHMuCisKKyAgICBBdHRy
aWJ1dGVzOgorICAgICAgdmVyYm9zaXR5OiBBbiBpbnRlZ2VyIHRoYXQgaXMgdGhlIGN1cnJlbnQg
dmVyYm9zaXR5IGxldmVsIGZvcgorICAgICAgICAgICAgICAgICB0aGUgdGVzdHMuCisKKyAgICAi
IiIKKworICAgICMgRklYTUU6IFJlZmFjdG9yIHRoZSB1bml0IHRlc3RzIHNvIHRoZSB2ZXJib3Np
dHkgbGV2ZWwgaXMgcGFzc2VkCisgICAgIyAgICAgICAgZXhwbGljaXRseSwganVzdCBsaWtlIGl0
IGlzIGluIHRoZSByZWFsIGNvZGUuCisgICAgdmVyYm9zaXR5ID0gMTsKKworICAgICMgSGVscGVy
IGZ1bmN0aW9uIHRvIGF2b2lkIG5lZWRpbmcgdG8gZXhwbGljaXRseSBwYXNzIHZlcmJvc2l0eQor
ICAgICMgaW4gYWxsIHRoZSB1bml0IHRlc3QgY2FsbHMgdG8gY3BwX3N0eWxlLnByb2Nlc3NfZmls
ZV9kYXRhKCkuCisgICAgZGVmIHByb2Nlc3NfZmlsZV9kYXRhKHNlbGYsIGZpbGVuYW1lLCBmaWxl
X2V4dGVuc2lvbiwgbGluZXMsIGVycm9yKToKKyAgICAgICAgIiIiQ2FsbCBjcHBfc3R5bGUucHJv
Y2Vzc19maWxlX2RhdGEoKSB3aXRoIHRoZSBjdXJyZW50IHZlcmJvc2l0eS4iIiIKKyAgICAgICAg
cmV0dXJuIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwgZmlsZV9leHRlbnNp
b24sIGxpbmVzLCBlcnJvciwgc2VsZi52ZXJib3NpdHkpCiAKICAgICAjIFBlcmZvcm0gbGludCBv
biBzaW5nbGUgbGluZSBvZiBpbnB1dCBhbmQgcmV0dXJuIHRoZSBlcnJvciBtZXNzYWdlLgogICAg
IGRlZiBwZXJmb3JtX3NpbmdsZV9saW5lX2xpbnQoc2VsZiwgY29kZSwgZmlsZV9uYW1lKToKQEAg
LTExOCw3ICsxMzQsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgY3BwX3N0eWxlLnJlbW92ZV9tdWx0aV9saW5lX2NvbW1lbnRzKGZpbGVfbmFt
ZSwgbGluZXMsIGVycm9yX2NvbGxlY3RvcikKICAgICAgICAgY2xlYW5fbGluZXMgPSBjcHBfc3R5
bGUuQ2xlYW5zZWRMaW5lcyhsaW5lcykKICAgICAgICAgaW5jbHVkZV9zdGF0ZSA9IGNwcF9zdHls
ZS5fSW5jbHVkZVN0YXRlKCkKLSAgICAgICAgZnVuY3Rpb25fc3RhdGUgPSBjcHBfc3R5bGUuX0Z1
bmN0aW9uU3RhdGUoKQorICAgICAgICBmdW5jdGlvbl9zdGF0ZSA9IGNwcF9zdHlsZS5fRnVuY3Rp
b25TdGF0ZShzZWxmLnZlcmJvc2l0eSkKICAgICAgICAgZXh0ID0gZmlsZV9uYW1lW2ZpbGVfbmFt
ZS5yZmluZCgnLicpICsgMTpdCiAgICAgICAgIGNsYXNzX3N0YXRlID0gY3BwX3N0eWxlLl9DbGFz
c1N0YXRlKCkKICAgICAgICAgZmlsZV9zdGF0ZSA9IGNwcF9zdHlsZS5fRmlsZVN0YXRlKCkKQEAg
LTE3OCw3ICsxOTQsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgIiIiCiAgICAgICAgIGZpbGVfbmFtZSA9ICdmb28uY3BwJwogICAgICAgICBl
cnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGZ1
bmN0aW9uX3N0YXRlID0gY3BwX3N0eWxlLl9GdW5jdGlvblN0YXRlKCkKKyAgICAgICAgZnVuY3Rp
b25fc3RhdGUgPSBjcHBfc3R5bGUuX0Z1bmN0aW9uU3RhdGUoc2VsZi52ZXJib3NpdHkpCiAgICAg
ICAgIGxpbmVzID0gY29kZS5zcGxpdCgnXG4nKQogICAgICAgICBjcHBfc3R5bGUucmVtb3ZlX211
bHRpX2xpbmVfY29tbWVudHMoZmlsZV9uYW1lLCBsaW5lcywgZXJyb3JfY29sbGVjdG9yKQogICAg
ICAgICBsaW5lcyA9IGNwcF9zdHlsZS5DbGVhbnNlZExpbmVzKGxpbmVzKQpAQCAtMjM2LDcgKzI1
Miw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAg
ZGVmIGFzc2VydF9ibGFua19saW5lc19jaGVjayhzZWxmLCBsaW5lcywgc3RhcnRfZXJyb3JzLCBl
bmRfZXJyb3JzKToKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2Vs
Zi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAn
LCAnY3BwJywgbGluZXMsIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAgc2VsZi5wcm9jZXNzX2Zp
bGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLCBsaW5lcywgZXJyb3JfY29sbGVjdG9yKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIHN0YXJ0X2Vycm9ycywKICAgICAgICAg
ICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRzKCkuY291bnQoCkBAIC02OTQsMTAgKzcxMCwxMCBA
QCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIGZpbGVfcGF0
aCA9ICdteWRpci9mb28uY3BwJwogCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29s
bGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRh
KGZpbGVfcGF0aCwgJ2NwcCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
J2NvbnN0IGNoYXIqIHN0ciA9ICJUaGlzIGlzIGFcXCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJyBtdWx0aWxpbmUgc3RyaW5nLiI7J10sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJvY2Vz
c19maWxlX2RhdGEoZmlsZV9wYXRoLCAnY3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbJ2NvbnN0IGNoYXIqIHN0ciA9ICJUaGlzIGlzIGFcXCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcgbXVsdGlsaW5lIHN0cmluZy4iOyddLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoCiAgICAgICAgICAgICAyLCAgIyBPbmUgcGVyIGxpbmUuCiAgICAgICAgICAgICBlcnJvcl9j
b2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudChtdWx0aWxpbmVfc3RyaW5nX2Vycm9yX21lc3Nh
Z2UpKQpAQCAtMTQwOCw4ICsxNDI0LDggQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgIGRlZiB0ZXN0X25ld2xpbmVfYXRfZW9mKHNlbGYpOgogICAgICAgICBkZWYg
ZG9fdGVzdChzZWxmLCBkYXRhLCBpc19taXNzaW5nX2VvZik6CiAgICAgICAgICAgICBlcnJvcl9j
b2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgICAgICBjcHBf
c3R5bGUucHJvY2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAnLCAnY3BwJywgZGF0YS5zcGxpdCgnXG4n
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0
b3IpCisgICAgICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcs
IGRhdGEuc3BsaXQoJ1xuJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yX2NvbGxlY3RvcikKICAgICAgICAgICAgICMgVGhlIHdhcm5pbmcgYXBwZWFycyBvbmx5IG9u
Y2UuCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgICAgICBpbnQo
aXNfbWlzc2luZ19lb2YpLApAQCAtMTQyMywxMCArMTQzOSw5IEBAIGNsYXNzIENwcFN0eWxlVGVz
dChDcHBTdHlsZVRlc3RCYXNlKToKICAgICBkZWYgdGVzdF9pbnZhbGlkX3V0Zjgoc2VsZik6CiAg
ICAgICAgIGRlZiBkb190ZXN0KHNlbGYsIHJhd19ieXRlcywgaGFzX2ludmFsaWRfdXRmOCk6CiAg
ICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8p
Ci0gICAgICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoCi0gICAgICAgICAgICAg
ICAgJ2Zvby5jcHAnLCAnY3BwJywKLSAgICAgICAgICAgICAgICB1bmljb2RlKHJhd19ieXRlcywg
J3V0ZjgnLCAncmVwbGFjZScpLnNwbGl0KCdcbicpLAotICAgICAgICAgICAgICAgIGVycm9yX2Nv
bGxlY3RvcikKKyAgICAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAnLCAn
Y3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZShyYXdfYnl0
ZXMsICd1dGY4JywgJ3JlcGxhY2UnKS5zcGxpdCgnXG4nKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICAgICAgIyBUaGUgd2Fybmlu
ZyBhcHBlYXJzIG9ubHkgb25jZS4KICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAogICAg
ICAgICAgICAgICAgIGludChoYXNfaW52YWxpZF91dGY4KSwKQEAgLTE0NTksNDAgKzE0NzQsNDAg
QEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgZGVmIHRlc3Rf
YWxsb3dfYmxhbmtfbGluZV9iZWZvcmVfY2xvc2luZ19uYW1lc3BhY2Uoc2VsZik6CiAgICAgICAg
IGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAg
Y3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ25hbWVzcGFjZSB7JywgJycsICd9ICAvLyBuYW1l
c3BhY2UnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxl
Y3RvcikKKyAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnbmFtZXNwYWNlIHsnLCAnJywgJ30gIC8v
IG5hbWVzcGFjZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxl
Y3RvcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMCwgZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dHMoKS5jb3VudCgKICAgICAgICAgICAgICdCbGFuayBsaW5lIGF0IHRoZSBlbmQgb2YgYSBjb2Rl
IGJsb2NrLiAgSXMgdGhpcyBuZWVkZWQ/JwogICAgICAgICAgICAgJyAgW3doaXRlc3BhY2UvYmxh
bmtfbGluZV0gWzNdJykpCiAKICAgICBkZWYgdGVzdF9hbGxvd19ibGFua19saW5lX2JlZm9yZV9p
Zl9lbHNlX2NoYWluKHNlbGYpOgogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxl
Y3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YSgn
Zm9vLmNwcCcsICdjcHAnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydp
ZiAoaG9nZSkgeycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsICAj
IE5vIHdhcm5pbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSBlbHNl
IGlmIChwaXlvKSB7JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywg
ICMgTm8gd2FybmluZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IGVs
c2UgaWYgKHBpeW9waXlvKSB7JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnICBob2dlID0gdHJ1ZTsnLCAgIyBObyB3YXJuaW5nCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ30gZWxzZSB7JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnJywgICMgV2FybmluZyBvbiB0aGlzIGxpbmUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnfSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28u
Y3BwJywgJ2NwcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydpZiAoaG9nZSkg
eycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLCAgIyBObyB3YXJuaW5nCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IGVsc2UgaWYgKHBpeW8pIHsnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgICMgTm8gd2FybmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnfSBlbHNlIGlmIChwaXlvcGl5bykgeycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcgIGhvZ2UgPSB0cnVlOycsICAjIE5vIHdhcm5pbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gZWxzZSB7JywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJycsICAjIFdhcm5pbmcgb24gdGhpcyBsaW5lCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd9J10sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBlcnJv
cl9jb2xsZWN0b3IucmVzdWx0cygpLmNvdW50KAogICAgICAgICAgICAgJ0JsYW5rIGxpbmUgYXQg
dGhlIGVuZCBvZiBhIGNvZGUgYmxvY2suICBJcyB0aGlzIG5lZWRlZD8nCiAgICAgICAgICAgICAn
ICBbd2hpdGVzcGFjZS9ibGFua19saW5lXSBbM10nKSkKIAogICAgIGRlZiB0ZXN0X2Vsc2Vfb25f
c2FtZV9saW5lX2FzX2Nsb3NpbmdfYnJhY2VzKHNlbGYpOgogICAgICAgICBlcnJvcl9jb2xsZWN0
b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9j
ZXNzX2ZpbGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWydpZiAoaG9nZSkgeycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30nLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgZWxzZSB7JyAgIyBXYXJuaW5n
IG9uIHRoaXMgbGluZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9J10sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJv
Y2Vzc19maWxlX2RhdGEoJ2Zvby5jcHAnLCAnY3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ2lmIChob2dlKSB7JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9JywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJyBlbHNlIHsnICAjIFdhcm5pbmcgb24gdGhpcyBsaW5lCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnfSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxl
Y3RvcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dHMoKS5jb3VudCgKICAgICAgICAgICAgICdBbiBlbHNlIHNob3VsZCBhcHBlYXIgb24gdGhlIHNh
bWUgbGluZSBhcyB0aGUgcHJlY2VkaW5nIH0nCiAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9u
ZXdsaW5lXSBbNF0nKSkKQEAgLTE2MzYsNyArMTY1MSw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChD
cHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgIyBkb2Vzbid0IGFsbG93IHVzIHRvIHRlc3QgdGhl
IHN1Z2dlc3RlZCBoZWFkZXIgZ3VhcmQsIGJ1dCBpdCBkb2VzIGxldCB1cwogICAgICAgICAjIHRl
c3QgYWxsIHRoZSBvdGhlciBoZWFkZXIgdGVzdHMuCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9
IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3Nf
ZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLCBbXSwgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBz
ZWxmLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLCBbXSwgZXJyb3JfY29sbGVjdG9y
KQogICAgICAgICBleHBlY3RlZF9ndWFyZCA9ICcnCiAgICAgICAgIG1hdGNoZXIgPSByZS5jb21w
aWxlKAogICAgICAgICAgICAgJ05vIFwjaWZuZGVmIGhlYWRlciBndWFyZCBmb3VuZFwsIHN1Z2dl
c3RlZCBDUFAgdmFyaWFibGUgaXNcOiAoW0EtWmEtel8wLTldKykgJykKQEAgLTE2NTEsOCArMTY2
Niw4IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKIAogICAgICAgICAj
IFdyb25nIGd1YXJkCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNl
bGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0
aCwgJ2gnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycjaWZuZGVmIEZP
T19IJywgJyNkZWZpbmUgRk9PX0gnXSwgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLnBy
b2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsnI2lmbmRlZiBGT09fSCcsICcjZGVmaW5lIEZPT19IJ10sIGVycm9yX2NvbGxlY3Rv
cikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICAxLAogICAgICAgICAg
ICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkuY291bnQoCkBAIC0xNjYyLDggKzE2Nzcs
OCBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAKICAgICAgICAgIyBO
byBkZWZpbmUKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5h
c3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAn
aCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUg
ZXhwZWN0ZWRfZ3VhcmRdLCBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYucHJvY2Vzc19m
aWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WycjaWZuZGVmICVzJyAlIGV4cGVjdGVkX2d1YXJkXSwgZXJyb3JfY29sbGVjdG9yKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJvcl9j
b2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKQEAgLTE2NzMsMTAgKzE2ODgsMTAgQEAgY2xh
c3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgICAgICMgTWlzbWF0Y2hl
ZCBkZWZpbmUKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5h
c3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAn
aCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUg
ZXhwZWN0ZWRfZ3VhcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNk
ZWZpbmUgRk9PX0gnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y
X2NvbGxlY3RvcikKKyAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdo
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0
ZWRfZ3VhcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lIEZPT19I
J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJv
cl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKQEAgLTE2ODYsMjIgKzE3MDEsMjIgQEAg
Y2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgICAgICMgTm8gaGVh
ZGVyIGd1YXJkIGVycm9ycwogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3Rv
cihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxl
X3BhdGgsICdoJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRl
ZiAlcycgJSBleHBlY3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnI2RlZmluZSAlcycgJSBleHBlY3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnI2VuZGlmIC8vICVzJyAlIGV4cGVjdGVkX2d1YXJkXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAg
c2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0ZWRfZ3VhcmQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lICVzJyAlIGV4cGVjdGVkX2d1YXJkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2VuZGlmIC8vICVzJyAlIGV4cGVjdGVkX2d1
YXJkXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCiAg
ICAgICAgIGZvciBsaW5lIGluIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpOgogICAgICAg
ICAgICAgaWYgbGluZS5maW5kKCdidWlsZC9oZWFkZXJfZ3VhcmQnKSAhPSAtMToKICAgICAgICAg
ICAgICAgICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQgZXJyb3I6ICVzJyAlIGxpbmUpCiAKICAgICAg
ICAgIyBDb21wbGV0ZWx5IGluY29ycmVjdCBoZWFkZXIgZ3VhcmQKICAgICAgICAgZXJyb3JfY29s
bGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUu
cHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJyNpZm5kZWYgRk9PJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnI2RlZmluZSBGT08nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcjZW5kaWYgIC8vIEZPTyddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKGZp
bGVfcGF0aCwgJ2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRlZiBG
T08nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2RlZmluZSBGT08nLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2VuZGlmICAvLyBGT08nXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKAogICAgICAgICAgICAgMSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5y
ZXN1bHRfbGlzdCgpLmNvdW50KApAQCAtMTg0MywxMyArMTg1OCwxMyBAQCBjbGFzcyBDcHBTdHls
ZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAKICAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUgYSBj
b3B5cmlnaHQgbWVzc2FnZSBpbiB0aGUgZmlyc3QgMTAgbGluZXMKICAgICAgICAgZXJyb3JfY29s
bGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUu
cHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnY3BwJywgW10sIGVycm9yX2NvbGxlY3RvcikK
KyAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdjcHAnLCBbXSwgZXJy
b3JfY29sbGVjdG9yKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEs
CiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudChsZWdhbF9j
b3B5cmlnaHRfbWVzc2FnZSkpCiAKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xs
ZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEo
CisgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoCiAgICAgICAgICAgICBmaWxlX3BhdGgs
ICdjcHAnLAogICAgICAgICAgICAgWycnIGZvciB1bnVzZWRfaSBpbiByYW5nZSgxMCldICsgW2Nv
cHlyaWdodF9saW5lXSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKQEAgLTE4NTksMTMg
KzE4NzQsMTMgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAg
ICAgICMgVGVzdCB0aGF0IHdhcm5pbmcgaXNuJ3QgaXNzdWVkIGlmIENvcHlyaWdodCBsaW5lIGFw
cGVhcnMgZWFybHkgZW5vdWdoLgogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxl
Y3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShm
aWxlX3BhdGgsICdjcHAnLCBbY29weXJpZ2h0X2xpbmVdLCBlcnJvcl9jb2xsZWN0b3IpCisgICAg
ICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnY3BwJywgW2NvcHlyaWdodF9s
aW5lXSwgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBmb3IgbWVzc2FnZSBpbiBlcnJvcl9jb2xs
ZWN0b3IucmVzdWx0X2xpc3QoKToKICAgICAgICAgICAgIGlmIG1lc3NhZ2UuZmluZCgnbGVnYWwv
Y29weXJpZ2h0JykgIT0gLTE6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVk
IGVycm9yOiAlcycgJSBtZXNzYWdlKQogCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9y
Q29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9k
YXRhKAorICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKAogICAgICAgICAgICAgZmlsZV9w
YXRoLCAnY3BwJywKICAgICAgICAgICAgIFsnJyBmb3IgdW51c2VkX2kgaW4gcmFuZ2UoOSldICsg
W2NvcHlyaWdodF9saW5lXSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKQEAgLTIxOTUs
NiArMjIxMCwxMyBAQCBjbGFzcyBDaGVja0ZvckZ1bmN0aW9uTGVuZ3Roc1Rlc3QoQ3BwU3R5bGVU
ZXN0QmFzZSk6CiAgICAgICAgIGNwcF9zdHlsZS5fRnVuY3Rpb25TdGF0ZS5fTk9STUFMX1RSSUdH
RVIgPSBzZWxmLm9sZF9ub3JtYWxfdHJpZ2dlcgogICAgICAgICBjcHBfc3R5bGUuX0Z1bmN0aW9u
U3RhdGUuX1RFU1RfVFJJR0dFUiA9IHNlbGYub2xkX3Rlc3RfdHJpZ2dlcgogCisgICAgIyBGSVhN
RTogRWxpbWluYXRlIHRoZSBuZWVkIGZvciB0aGlzIGZ1bmN0aW9uLgorICAgIGRlZiBzZXRfdmVy
Ym9zaXR5KHNlbGYsIHZlcmJvc2l0eSk6CisgICAgICAgICIiIlNldCBuZXcgdGVzdCB2ZXJib3Np
dHkgYW5kIHJldHVybiBvbGQgdGVzdCB2ZXJib3NpdHkuIiIiCisgICAgICAgIG9sZF92ZXJib3Np
dHkgPSBzZWxmLnZlcmJvc2l0eQorICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IHZlcmJvc2l0eQor
ICAgICAgICByZXR1cm4gb2xkX3ZlcmJvc2l0eQorCiAgICAgZGVmIGFzc2VydF9mdW5jdGlvbl9s
ZW5ndGhzX2NoZWNrKHNlbGYsIGNvZGUsIGV4cGVjdGVkX21lc3NhZ2UpOgogICAgICAgICAiIiJD
aGVjayB3YXJuaW5ncyBmb3IgbG9uZyBmdW5jdGlvbiBib2RpZXMgYXJlIGFzIGV4cGVjdGVkLgog
CkBAIC0yMjM0LDcgKzIyNTYsNyBAQCBjbGFzcyBDaGVja0ZvckZ1bmN0aW9uTGVuZ3Roc1Rlc3Qo
Q3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgbGluZXM6IE51bWJlciBvZiBsaW5lcyB0byBn
ZW5lcmF0ZS4KICAgICAgICAgICBlcnJvcl9sZXZlbDogIC0tdiBzZXR0aW5nIGZvciBjcHBfc3R5
bGUuCiAgICAgICAgICIiIgotICAgICAgICB0cmlnZ2VyX2xldmVsID0gc2VsZi50cmlnZ2VyX2xp
bmVzKGNwcF9zdHlsZS5fdmVyYm9zZV9sZXZlbCgpKQorICAgICAgICB0cmlnZ2VyX2xldmVsID0g
c2VsZi50cmlnZ2VyX2xpbmVzKHNlbGYudmVyYm9zaXR5KQogICAgICAgICBzZWxmLmFzc2VydF9m
dW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAgJ3ZvaWQgdGVzdChpbnQgeCknICsg
c2VsZi5mdW5jdGlvbl9ib2R5KGxpbmVzKSwKICAgICAgICAgICAgICgnU21hbGwgYW5kIGZvY3Vz
ZWQgZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQ6ICcKQEAgLTIzMTcsMjkgKzIzMzksMjkgQEAgY2xh
c3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAg
ICAgICAgJycpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9sZW5ndGhfY2hlY2tfZGVmaW5pdGlv
bl9iZWxvd19zZXZlcml0eTAoc2VsZik6Ci0gICAgICAgIG9sZF92ZXJib3NpdHkgPSBjcHBfc3R5
bGUuX3NldF92ZXJib3NlX2xldmVsKDApCisgICAgICAgIG9sZF92ZXJib3NpdHkgPSBzZWxmLnNl
dF92ZXJib3NpdHkoMCkKICAgICAgICAgc2VsZi5hc3NlcnRfZnVuY3Rpb25fbGVuZ3RoX2NoZWNr
X2RlZmluaXRpb25fb2soc2VsZi50cmlnZ2VyX2xpbmVzKDApIC0gMSkKLSAgICAgICAgY3BwX3N0
eWxlLl9zZXRfdmVyYm9zZV9sZXZlbChvbGRfdmVyYm9zaXR5KQorICAgICAgICBzZWxmLnNldF92
ZXJib3NpdHkob2xkX3ZlcmJvc2l0eSkKIAogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9j
aGVja19kZWZpbml0aW9uX2F0X3NldmVyaXR5MChzZWxmKToKLSAgICAgICAgb2xkX3ZlcmJvc2l0
eSA9IGNwcF9zdHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwoMCkKKyAgICAgICAgb2xkX3ZlcmJvc2l0
eSA9IHNlbGYuc2V0X3ZlcmJvc2l0eSgwKQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9s
ZW5ndGhfY2hlY2tfZGVmaW5pdGlvbl9vayhzZWxmLnRyaWdnZXJfbGluZXMoMCkpCi0gICAgICAg
IGNwcF9zdHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwob2xkX3ZlcmJvc2l0eSkKKyAgICAgICAgc2Vs
Zi5zZXRfdmVyYm9zaXR5KG9sZF92ZXJib3NpdHkpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9s
ZW5ndGhfY2hlY2tfZGVmaW5pdGlvbl9hYm92ZV9zZXZlcml0eTAoc2VsZik6Ci0gICAgICAgIG9s
ZF92ZXJib3NpdHkgPSBjcHBfc3R5bGUuX3NldF92ZXJib3NlX2xldmVsKDApCisgICAgICAgIG9s
ZF92ZXJib3NpdHkgPSBzZWxmLnNldF92ZXJib3NpdHkoMCkKICAgICAgICAgc2VsZi5hc3NlcnRf
ZnVuY3Rpb25fbGVuZ3RoX2NoZWNrX2Fib3ZlX2Vycm9yX2xldmVsKDApCi0gICAgICAgIGNwcF9z
dHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwob2xkX3ZlcmJvc2l0eSkKKyAgICAgICAgc2VsZi5zZXRf
dmVyYm9zaXR5KG9sZF92ZXJib3NpdHkpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9sZW5ndGhf
Y2hlY2tfZGVmaW5pdGlvbl9iZWxvd19zZXZlcml0eTF2MChzZWxmKToKLSAgICAgICAgb2xkX3Zl
cmJvc2l0eSA9IGNwcF9zdHlsZS5fc2V0X3ZlcmJvc2VfbGV2ZWwoMCkKKyAgICAgICAgb2xkX3Zl
cmJvc2l0eSA9IHNlbGYuc2V0X3ZlcmJvc2l0eSgwKQogICAgICAgICBzZWxmLmFzc2VydF9mdW5j
dGlvbl9sZW5ndGhfY2hlY2tfYmVsb3dfZXJyb3JfbGV2ZWwoMSkKLSAgICAgICAgY3BwX3N0eWxl
Ll9zZXRfdmVyYm9zZV9sZXZlbChvbGRfdmVyYm9zaXR5KQorICAgICAgICBzZWxmLnNldF92ZXJi
b3NpdHkob2xkX3ZlcmJvc2l0eSkKIAogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVj
a19kZWZpbml0aW9uX2F0X3NldmVyaXR5MXYwKHNlbGYpOgotICAgICAgICBvbGRfdmVyYm9zaXR5
ID0gY3BwX3N0eWxlLl9zZXRfdmVyYm9zZV9sZXZlbCgwKQorICAgICAgICBvbGRfdmVyYm9zaXR5
ID0gc2VsZi5zZXRfdmVyYm9zaXR5KDApCiAgICAgICAgIHNlbGYuYXNzZXJ0X2Z1bmN0aW9uX2xl
bmd0aF9jaGVja19hdF9lcnJvcl9sZXZlbCgxKQotICAgICAgICBjcHBfc3R5bGUuX3NldF92ZXJi
b3NlX2xldmVsKG9sZF92ZXJib3NpdHkpCisgICAgICAgIHNlbGYuc2V0X3ZlcmJvc2l0eShvbGRf
dmVyYm9zaXR5KQogCiAgICAgZGVmIHRlc3RfZnVuY3Rpb25fbGVuZ3RoX2NoZWNrX2RlZmluaXRp
b25fYmVsb3dfc2V2ZXJpdHkxKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9s
ZW5ndGhfY2hlY2tfZGVmaW5pdGlvbl9vayhzZWxmLnRyaWdnZXJfbGluZXMoMSkgLSAxKQpAQCAt
MjM1Myw3ICsyMzc1LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0
eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19kZWZpbml0
aW9uX3NldmVyaXR5MV9wbHVzX2JsYW5rcyhzZWxmKToKICAgICAgICAgZXJyb3JfbGV2ZWwgPSAx
CiAgICAgICAgIGVycm9yX2xpbmVzID0gc2VsZi50cmlnZ2VyX2xpbmVzKGVycm9yX2xldmVsKSAr
IDEKLSAgICAgICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl9saW5lcyhjcHBfc3R5bGUu
X3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAgICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl9s
aW5lcyhzZWxmLnZlcmJvc2l0eSkKICAgICAgICAgc2VsZi5hc3NlcnRfZnVuY3Rpb25fbGVuZ3Ro
c19jaGVjaygKICAgICAgICAgICAgICd2b2lkIHRlc3RfYmxhbmtzKGludCB4KScgKyBzZWxmLmZ1
bmN0aW9uX2JvZHkoZXJyb3JfbGluZXMpLAogICAgICAgICAgICAgKCdTbWFsbCBhbmQgZm9jdXNl
ZCBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZDogJwpAQCAtMjM2NSw3ICsyMzg3LDcgQEAgY2xhc3Mg
Q2hlY2tGb3JGdW5jdGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0
ZXN0X2Z1bmN0aW9uX2xlbmd0aF9jaGVja19jb21wbGV4X2RlZmluaXRpb25fc2V2ZXJpdHkxKHNl
bGYpOgogICAgICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxm
LnRyaWdnZXJfbGluZXMoZXJyb3JfbGV2ZWwpICsgMQotICAgICAgICB0cmlnZ2VyX2xldmVsID0g
c2VsZi50cmlnZ2VyX2xpbmVzKGNwcF9zdHlsZS5fdmVyYm9zZV9sZXZlbCgpKQorICAgICAgICB0
cmlnZ2VyX2xldmVsID0gc2VsZi50cmlnZ2VyX2xpbmVzKHNlbGYudmVyYm9zaXR5KQogICAgICAg
ICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAgKCdteV9u
YW1lc3BhY2U6Om15X290aGVyX25hbWVzcGFjZTo6TXlWZXJ5TG9uZ1R5cGVOYW1lKlxuJwogICAg
ICAgICAgICAgICdteV9uYW1lc3BhY2U6Om15X290aGVyX25hbWVzcGFjZTo6TXlGdW5jdGlvbihp
bnQgYXJnMSwgY2hhciogYXJnMiknCkBAIC0yMzgwLDcgKzI0MDIsNyBAQCBjbGFzcyBDaGVja0Zv
ckZ1bmN0aW9uTGVuZ3Roc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfZnVu
Y3Rpb25fbGVuZ3RoX2NoZWNrX2RlZmluaXRpb25fc2V2ZXJpdHkxX2Zvcl90ZXN0KHNlbGYpOgog
ICAgICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxmLnRyaWdn
ZXJfdGVzdF9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2ZWwgPSBz
ZWxmLnRyaWdnZXJfdGVzdF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAg
ICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNlbGYudmVyYm9zaXR5
KQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAg
ICAgJ1RFU1RfRihUZXN0LCBNdXRhdG9yKScgKyBzZWxmLmZ1bmN0aW9uX2JvZHkoZXJyb3JfbGlu
ZXMpLAogICAgICAgICAgICAgKCdTbWFsbCBhbmQgZm9jdXNlZCBmdW5jdGlvbnMgYXJlIHByZWZl
cnJlZDogJwpAQCAtMjM5Miw3ICsyNDE0LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5jdGlvbkxlbmd0
aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2xlbmd0aF9j
aGVja19kZWZpbml0aW9uX3NldmVyaXR5MV9mb3Jfc3BsaXRfbGluZV90ZXN0KHNlbGYpOgogICAg
ICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMgPSBzZWxmLnRyaWdnZXJf
dGVzdF9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2ZWwgPSBzZWxm
LnRyaWdnZXJfdGVzdF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2ZWwoKSkKKyAgICAgICAg
dHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNlbGYudmVyYm9zaXR5KQog
ICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKAogICAgICAgICAgICAg
KCdURVNUX0YoR29vZ2xlVXBkYXRlUmVjb3ZlcnlSZWdpc3RyeVByb3RlY3RlZFRlc3QsXG4nCiAg
ICAgICAgICAgICAgJyAgICBGaXhHb29nbGVVcGRhdGVfQWxsVmFsdWVzX01hY2hpbmVBcHApJyAg
IyBub3RlOiA0IHNwYWNlcwpAQCAtMjQwNyw3ICsyNDI5LDcgQEAgY2xhc3MgQ2hlY2tGb3JGdW5j
dGlvbkxlbmd0aHNUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
X2xlbmd0aF9jaGVja19kZWZpbml0aW9uX3NldmVyaXR5MV9mb3JfYmFkX3Rlc3RfZG9lc250X2Jy
ZWFrKHNlbGYpOgogICAgICAgICBlcnJvcl9sZXZlbCA9IDEKICAgICAgICAgZXJyb3JfbGluZXMg
PSBzZWxmLnRyaWdnZXJfdGVzdF9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdn
ZXJfbGV2ZWwgPSBzZWxmLnRyaWdnZXJfdGVzdF9saW5lcyhjcHBfc3R5bGUuX3ZlcmJvc2VfbGV2
ZWwoKSkKKyAgICAgICAgdHJpZ2dlcl9sZXZlbCA9IHNlbGYudHJpZ2dlcl90ZXN0X2xpbmVzKHNl
bGYudmVyYm9zaXR5KQogICAgICAgICBzZWxmLmFzc2VydF9mdW5jdGlvbl9sZW5ndGhzX2NoZWNr
KAogICAgICAgICAgICAgKCdURVNUX0YoJwogICAgICAgICAgICAgICsgc2VsZi5mdW5jdGlvbl9i
b2R5KGVycm9yX2xpbmVzKSksCkBAIC0yNDIwLDcgKzI0NDIsNyBAQCBjbGFzcyBDaGVja0ZvckZ1
bmN0aW9uTGVuZ3Roc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfZnVuY3Rp
b25fbGVuZ3RoX2NoZWNrX2RlZmluaXRpb25fc2V2ZXJpdHkxX3dpdGhfZW1iZWRkZWRfbm9fbGlu
dHMoc2VsZik6CiAgICAgICAgIGVycm9yX2xldmVsID0gMQogICAgICAgICBlcnJvcl9saW5lcyA9
IHNlbGYudHJpZ2dlcl9saW5lcyhlcnJvcl9sZXZlbCkgKyAxCi0gICAgICAgIHRyaWdnZXJfbGV2
ZWwgPSBzZWxmLnRyaWdnZXJfbGluZXMoY3BwX3N0eWxlLl92ZXJib3NlX2xldmVsKCkpCisgICAg
ICAgIHRyaWdnZXJfbGV2ZWwgPSBzZWxmLnRyaWdnZXJfbGluZXMoc2VsZi52ZXJib3NpdHkpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0X2Z1bmN0aW9uX2xlbmd0aHNfY2hlY2soCiAgICAgICAgICAgICAn
dm9pZCB0ZXN0KGludCB4KScgKyBzZWxmLmZ1bmN0aW9uX2JvZHlfd2l0aF9ub19saW50cyhlcnJv
cl9saW5lcyksCiAgICAgICAgICAgICAoJ1NtYWxsIGFuZCBmb2N1c2VkIGZ1bmN0aW9ucyBhcmUg
cHJlZmVycmVkOiAnCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>