<?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>101959</bug_id>
          
          <creation_ts>2012-11-12 11:37:31 -0800</creation_ts>
          <short_desc>IndexedDB: Convert some non-simple tests from setVersion to upgradeneeded</short_desc>
          <delta_ts>2012-11-12 18:10:25 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>jsbell</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764624</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 11:37:31 -0800</bug_when>
    <thetext>IndexedDB: Convert some non-simple tests from setVersion to upgradeneeded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764628</commentid>
    <comment_count>1</comment_count>
      <attachid>173681</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 11:50:58 -0800</bug_when>
    <thetext>Created attachment 173681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764631</commentid>
    <comment_count>2</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 11:52:49 -0800</bug_when>
    <thetext>Josh, could you take a look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764667</commentid>
    <comment_count>3</comment_count>
      <attachid>173681</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-12 12:31:46 -0800</bug_when>
    <thetext>Comment on attachment 173681
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=173681&amp;action=review

lgtm

&gt; LayoutTests/ChangeLog:33
&gt; +          optional object parameter instead of adding a string of optional

The phrase &quot;adding a string of optional parameters&quot; is confusing (string-as-type, or string-as-series?). I&apos;d just end the sentence after &quot;optional object parameter&quot;

&gt; LayoutTests/storage/indexeddb/resources/create-and-remove-object-store.js:29
&gt; +    debug(&quot;Trying create&quot;);

Since this function is already changing so much, can you rename &quot;tryOnceMore&quot; since it&apos;s no longer a correct description?

&gt; LayoutTests/storage/indexeddb/resources/shared.js:178
&gt;      setDBNameFromPath();

Maybe pass the suffix into setDBNameFromPath() to only log dbname once rather than &quot;dbname = ...&quot; / &quot;overridden dbname = ...&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764723</commentid>
    <comment_count>4</comment_count>
      <attachid>173681</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 13:10:25 -0800</bug_when>
    <thetext>Comment on attachment 173681
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=173681&amp;action=review

&gt;&gt; LayoutTests/ChangeLog:33
&gt;&gt; +          optional object parameter instead of adding a string of optional
&gt; 
&gt; The phrase &quot;adding a string of optional parameters&quot; is confusing (string-as-type, or string-as-series?). I&apos;d just end the sentence after &quot;optional object parameter&quot;

Done.

&gt;&gt; LayoutTests/storage/indexeddb/resources/create-and-remove-object-store.js:29
&gt;&gt; +    debug(&quot;Trying create&quot;);
&gt; 
&gt; Since this function is already changing so much, can you rename &quot;tryOnceMore&quot; since it&apos;s no longer a correct description?

Done.

&gt;&gt; LayoutTests/storage/indexeddb/resources/shared.js:178
&gt;&gt;      setDBNameFromPath();
&gt; 
&gt; Maybe pass the suffix into setDBNameFromPath() to only log dbname once rather than &quot;dbname = ...&quot; / &quot;overridden dbname = ...&quot;

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764732</commentid>
    <comment_count>5</comment_count>
      <attachid>173703</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 13:14:53 -0800</bug_when>
    <thetext>Created attachment 173703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764737</commentid>
    <comment_count>6</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 13:18:08 -0800</bug_when>
    <thetext>Tony, could you review this?  It&apos;s more test conversions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764765</commentid>
    <comment_count>7</comment_count>
      <attachid>173703</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 13:41:26 -0800</bug_when>
    <thetext>Comment on attachment 173703
Patch

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765078</commentid>
    <comment_count>8</comment_count>
      <attachid>173703</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 18:10:21 -0800</bug_when>
    <thetext>Comment on attachment 173703
Patch

Clearing flags on attachment: 173703

Committed r134335: &lt;http://trac.webkit.org/changeset/134335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765079</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 18:10:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173681</attachid>
            <date>2012-11-12 11:50:58 -0800</date>
            <delta_ts>2012-11-12 13:14:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101959-20121112114900.patch</filename>
            <type>text/plain</type>
            <size>17960</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MjUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjZkYmI4MWQ1ZGQ0YjExYjhiZjk3
YzcxZjFmMTFjODU1OTdjOTljZi4uM2Y0MjUxOGQ5YmU3ZGQ3ZGIzZWYxZDkzMWE4MjZiNjNiYjA2
ODQ4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTExLTEyICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IENvbnZlcnQgc29tZSBu
b24tc2ltcGxlIHRlc3RzIGZyb20gc2V0VmVyc2lvbiB0byB1cGdyYWRlbmVlZGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE5NTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmdvaW5nIHdvcmsgdG8g
cmVtb3ZlIGNhbGxzIHRvIHNldFZlcnNpb24gZnJvbSBvdXIgdGVzdHMgYmVmb3JlCisgICAgICAg
IHJlbW92aW5nIGl0IGZyb20gdGhlIEluZGV4ZWREQiBBUEkuCisKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnktb3Bl
bi1hbmQtdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvZHVwbGljYXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS5qczoKKyAgICAgICAg
ICBDcmVhdGUgYW5kIGRlbGV0ZSB3ZXJlIHJ1bm5pbmcgYmV0d2VlbiBvcGVuIGFuZCBzZXRWZXJz
aW9uLCB3aGljaCBubworICAgICAgICAgIGxvbmdlciBtYWtlcyBzZW5zZS4KKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcu
anM6CisgICAgICAgICAgVXNlIG9wdGlvbmFsIG9iamVjdCBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBv
cHRpb25hbCB2ZXJzaW9uIHBhcmFtZXRlci4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFu
Z2UuanM6CisgICAgICAgICAgVGhpcyB1c2VkIHRvIGNhbGwgZGVsZXRlIGp1c3QgYWZ0ZXIgaXNz
dWluZyBzZXRWZXJzaW9uIGJ1dCBiZWZvcmUKKyAgICAgICAgICByZWNlaXZpbmcgdGhlIGNvcnJl
c3BvbmRpbmcgc3VjY2VzcyBldmVudC4gIE5vdyBpdCBjYWxscyBkZWxldGUgd2hpbGUKKyAgICAg
ICAgICBpbiB0aGUgdXBncmFkZW5lZWRlZCB0cmFuc2FjdGlvbiwgc3RpbGwgY2F1c2luZyB0aGUg
ZGVsZXRlIHRvIGJlCisgICAgICAgICAgZGVsYXllZCBieSBhbiBpbiBmbGlnaHQgdmVyc2lvbmNo
YW5nZSB0cmFuc2FjdGlvbi4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9kdXBsaWNhdGVzLmpzOgorICAgICAgICAgIENhbGwgaW5kZXhlZERCVGVzdCB0d2ljZSB0byBy
ZXJ1biB0aGUgdGVzdHMgd2l0aCBhIGRpZmZlcmVudAorICAgICAgICAgIGRhdGFiYXNlLgorCisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qczoKKyAgICAgICAg
ICBBZGRlZCBhIHN1ZmZpeCBvcHRpb24gdG8gc3VwcG9ydCBkdXBsaWNhdGVzLmpzLCBzd2l0Y2hl
ZCB0byBhbgorICAgICAgICAgIG9wdGlvbmFsIG9iamVjdCBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBh
ZGRpbmcgYSBzdHJpbmcgb2Ygb3B0aW9uYWwKKyAgICAgICAgICBwYXJhbWV0ZXJzIHRvIHRoZSBm
dW5jdGlvbiBmb3IgcmVhZGFiaWxpdHkgYW5kIHVzYWJpbGl0eS4KKworMjAxMi0xMS0xMiAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgSW5kZXhlZERCOiBj
b252ZXJ0IHRlc3RzIGZyb20gc2V0VmVyc2lvbiB0byB1cGdyYWRlbmVlZGVkCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzYKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0
LXN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0
ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS1leHBlY3RlZC50eHQKaW5kZXggZTJiZDhhMGZhNTE2
NDZiZjlkY2M5MTNjMDk2NDg4YWFlNGU0NTA3MC4uNGRjNjU0YzRjOTM1NWEwYTIxN2YyOGZiYTEx
ZTA2MzJkNzFjOThhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0b3JlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lv
bigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAi
dXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCJ3MgY3JlYXRlIGFu
ZCByZW1vdmVPYmplY3RTdG9yZQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDMx
ICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdjcmVh
dGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUnKQotb3BlblN1Y2Nlc3MoKToKLWRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAotVHJ5aW5nIGNyZWF0ZQotRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzb21lIG9zIikKLVBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24u
Ci1QQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCi1QQVNTIGVuYW1l
IGlzICdJbnZhbGlkU3RhdGVFcnJvcicKLVRyeWluZyByZW1vdmUKLUV4cGVjdGluZyBleGNlcHRp
b24gZnJvbSBkYi5kZWxldGVPYmplY3RTdG9yZSgic29tZSBvcyIpCi1QQVNTIEV4Y2VwdGlvbiB3
YXMgdGhyb3duLgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgot
UEFTUyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCi1yZXN1bHQgPSBkYi5zZXRWZXJzaW9u
KCd2ZXJzaW9uIDEnKQotVHJ5aW5nIGNyZWF0ZQotRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzb21lIG9zIikKLVBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24u
Ci1QQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCi1QQVNTIGVuYW1l
IGlzICdJbnZhbGlkU3RhdGVFcnJvcicKLVRyeWluZyByZW1vdmUKLUV4cGVjdGluZyBleGNlcHRp
b24gZnJvbSBkYi5kZWxldGVPYmplY3RTdG9yZSgic29tZSBvcyIpCi1QQVNTIEV4Y2VwdGlvbiB3
YXMgdGhyb3duLgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgot
UEFTUyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCi1EZWxldGVkIGFsbCBvYmplY3Qgc3Rv
cmVzLgorZGJuYW1lID0gImNyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS5odG1sIgoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCd0bXAnKQogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCd0bXAnKQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRlbGF5
ZWQtYnktb3Blbi1hbmQtdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkYXRhYmFzZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNp
b25jaGFuZ2UtZXhwZWN0ZWQudHh0CmluZGV4IDdlYWNjMTc1MDFhZDk2Yzg0OGZkNTkzZWIyZmMw
MTY0NWMwNTk0OTAuLjQzYmE0NjliOGE2YzJhNDIyZDU5MmRmMzc0ZWM3NTliZDQ5NzlmNTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRl
bGF5ZWQtYnktb3Blbi1hbmQtdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlZGF0YWJhc2UtZGVsYXllZC1ieS1vcGVuLWFu
ZC12ZXJzaW9uY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVT
U0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJl
IHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IHRo
YXQgZGVsZXRlRGF0YWJhc2UgaXMgZGVsYXllZCBpZiBhIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0
aW9uIGlzIHJ1bm5pbmcKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNywyMiArNiwx
NyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKIGRibmFtZSA9ICJkZWxldGVkYXRhYmFzZS1k
ZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFuZ2UuaHRtbCIKLXZlciA9IDEKLXZlcnNpb25D
aGFuZ2VDb21wbGV0ZSA9IGZhbHNlCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQog
aW5kZXhlZERCLm9wZW4oZGJuYW1lKQotCi1vcGVuT25TdWNjZXNzKCk6Cit2ZXJzaW9uQ2hhbmdl
Q29tcGxldGUgPSBmYWxzZQogaCA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWguc2V0VmVyc2lvbihT
dHJpbmcodmVyKyspKQogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIAotc2V0VmVy
c2lvbk9uU3VjY2VzcygpOgotCiB0cmFuc2FjdGlvbk9uQ29tcGxldGUoKToKIHZlcnNpb25DaGFu
Z2VDb21wbGV0ZSA9IHRydWUKIAogb25WZXJzaW9uQ2hhbmdlKCk6Ci1vbGQgPSAiMSIKK29sZCA9
IDEKIG5ldyA9ICIiCiAKIGRlbGV0ZURhdGFiYXNlT25CbG9ja2VkKCk6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBsaWNhdGVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMtZXhwZWN0ZWQudHh0CmluZGV4
IGY0YTY3OTdhMTNmZTJmZTFkNGY4ZThmYmRhZmQ4ZGFjMGYzNmJmYmMuLjIxMWE4MGY2NDAxZTIw
YjJiNTYxNTg3N2I4ZjEzYTdjM2I1NTlkMTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAot
Q09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQg
YW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVh
ZC4KLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5k
YXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGlu
c3RlYWQuCiBWZXJpZnkgdGhhdCB5b3UgY2FuIHB1dCB0aGUgc2FtZSBkYXRhIGluIDIgZGlmZmVy
ZW50IGRhdGFiYXNlcyB3aXRob3V0IHVuaXF1ZW5lc3MgY29uc3RyYWludHMgZmlyaW5nLgogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC03LDEzICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5k
ZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5P
SW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbignZHVwbGljYXRlcy0xJykKLWRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotc2V0VmVyc2lvblN1
Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBpcyBub24t
bnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiZHVwbGljYXRlcy5o
dG1sIgorb3ZlcnJpZGRlbiBkYm5hbWUgPSAiZHVwbGljYXRlcy5odG1sLTEiCitpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhO
YW1lJywgJ3gnKQogc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKQpAQCAt
NDksMTMgKzQ0LDEyIEBAIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC52YWx1ZS54IGlzICJ2YWx1
ZTIiCiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQudmFsdWUueSBpcyAienp6MiIKIGV2ZW50LnRh
cmdldC5yZXN1bHQuY29udGludWUoKQogUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzIG51bGwK
LWluZGV4ZWREQi5vcGVuKCdkdXBsaWNhdGVzLTInKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJh
bnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRl
ZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAiZHVwbGljYXRlcy5odG1sIgorb3ZlcnJp
ZGRlbiBkYm5hbWUgPSAiZHVwbGljYXRlcy5odG1sLTIiCitpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScsIG51bGwpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gnKQog
c3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1hbmQtcmVtb3ZlLW9i
amVjdC1zdG9yZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
cmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuanMKaW5kZXggZDJjNjk5NDYyMGEwZDEwMjdk
YzEwYTBhNDk3YmY5YmM2ZTA5OGM4ZS4uNGM4MWVhZjIxYWE0MzIzMmQ0ZTY2MTk4YzUyMGQ5ZGEx
MThiZjNiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS5qcworKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0b3Jl
LmpzCkBAIC01LDQwICs1LDEzIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRlIGFuZCByZW1vdmVPYmplY3RTdG9yZSIpOwog
Ci1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBzZXRWZXJz
aW9uQ29tcGxldGUpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Bl
bignY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0b3JlJykiKTsKLSAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGVidWcoIm9w
ZW5TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotICAgIHRlc3RDcmVhdGVBbmRSZW1vdmUoKTsKLSAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygicmVzdWx0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgdGVzdENyZWF0ZUFuZFJlbW92ZSgpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0Q3JlYXRlQW5kUmVtb3ZlKCkKLXsKLSAgICBkZWJ1ZygiVHJ5aW5nIGNy
ZWF0ZSIpOwotICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oJ2RiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzb21lIG9zIiknLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKLSAgICBkZWJ1ZygiVHJ5aW5nIHJlbW92ZSIpOwotICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oJ2RiLmRlbGV0ZU9iamVjdFN0b3JlKCJzb21lIG9zIiknLCAiRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLX0KLQot
ZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRi
KTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJh
bnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIG9zID0gZXZh
bEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3RtcCcpIik7CiAgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3RtcCcpIiwgIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLkNPTlNUUkFJTlRfRVJSIiwgIidDb25zdHJhaW50RXJyb3InIik7Ci0gICAgZXZlbnQu
dGFyZ2V0LnJlc3VsdC5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwogfQogCiBmdW5j
dGlvbiBzZXRWZXJzaW9uQ29tcGxldGUoKQpAQCAtNTMsNyArMjYsMTAgQEAgZnVuY3Rpb24gdHJ5
T25jZU1vcmUoKQogewogICAgIHNob3VsZEJlVW5kZWZpbmVkKCJldmVudC50YXJnZXQucmVzdWx0
Iik7CiAKLSAgICB0ZXN0Q3JlYXRlQW5kUmVtb3ZlKCk7CisgICAgZGVidWcoIlRyeWluZyBjcmVh
dGUiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCdkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c29tZSBvcyIpJywgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0
YXRlRXJyb3InIik7CisgICAgZGVidWcoIlRyeWluZyByZW1vdmUiKTsKKyAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCdkYi5kZWxldGVPYmplY3RTdG9yZSgic29tZSBvcyIpJywgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CiAKICAgICBk
ZWJ1ZygiVHJ5aW5nIGNyZWF0ZSB3aXRoIHN0b3JlIHRoYXQgYWxyZWFkeSBleGlzdHMiKTsKICAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgndG1wJykiLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsK
QEAgLTYyLDUgKzM4LDMgQEAgZnVuY3Rpb24gdHJ5T25jZU1vcmUoKQogCiAgICAgZmluaXNoSlNU
ZXN0KCk7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtZGVs
ZXRlcGVuZGluZy1mbGFnLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy5qcwppbmRleCA3NzM3YjM5NmY4ZjdiNWI4
ZmRmMzYxNjI5YjU4ZmI0ZDdlYWZiZGE3Li4yYzcxMzhlNWUyY2VkZmM0MjJiOWIyMWViMzJlYTcy
ZTBlZjQ5OTE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvZGF0YWJhc2UtZGVsZXRlcGVuZGluZy1mbGFnLmpzCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcuanMK
QEAgLTUsNyArNSw3IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24o
IlRlc3QgSW5kZXhlZERCIElEQkRhdGFiYXNlIGludGVybmFsIGRlbGV0ZSBwZW5kaW5nIGZsYWci
KTsKIAotaW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3REYXRhYmFzZURlbGV0ZSwg
NSk7CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdERhdGFiYXNlRGVsZXRlLCB7
InZlcnNpb24iOiA1fSk7CiBmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewogICAgIGNvbm5l
Y3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnktb3Blbi1h
bmQtdmVyc2lvbmNoYW5nZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9kZWxldGVkYXRhYmFzZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFuZ2UuanMK
aW5kZXggOGRkOTZhZThlYTUzN2M4ZmY5NjlmNDY2N2VkMWMwNTY0N2I5MzkyNy4uMDYyNGViZjZl
N2MyOTQ4OGJmZGYzMGFmOWEzM2IwZjU4ZjEyNTNkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnktb3Bl
bi1hbmQtdmVyc2lvbmNoYW5nZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvZGVsZXRlZGF0YWJhc2UtZGVsYXllZC1ieS1vcGVuLWFuZC12ZXJzaW9uY2hh
bmdlLmpzCkBAIC01LDUzICs1LDM2IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVz
Y3JpcHRpb24oIlRlc3QgdGhhdCBkZWxldGVEYXRhYmFzZSBpcyBkZWxheWVkIGlmIGEgVkVSU0lP
Tl9DSEFOR0UgdHJhbnNhY3Rpb24gaXMgcnVubmluZyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkgewot
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKIAot
ICAgIGV2YWxBbmRMb2coInZlciA9IDEiKTsKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNl
KTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCit7CiAgICAgZXZhbEFuZExvZygidmVyc2lv
bkNoYW5nZUNvbXBsZXRlID0gZmFsc2UiKTsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24u
b25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coImggPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7CiAKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhl
ZERCLm9wZW4oZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIG9wZW5PblN1Y2Nlc3MoZXZ0
KSB7CisgICAgaC5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbiBvblZlcnNpb25DaGFuZ2UoZXZ0
KSB7CiAgICAgICAgIHByZWFtYmxlKGV2dCk7Ci0gICAgICAgIGV2YWxBbmRMb2coImggPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICAgICAgaC5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlv
biBvblZlcnNpb25DaGFuZ2UoZXZ0KSB7Ci0gICAgICAgICAgICBwcmVhbWJsZShldnQpOwotICAg
ICAgICAgICAgZGVidWcoIm9sZCA9ICIgKyBKU09OLnN0cmluZ2lmeShldmVudC50YXJnZXQudmVy
c2lvbikpOwotICAgICAgICAgICAgZGVidWcoIm5ldyA9ICIgKyBKU09OLnN0cmluZ2lmeShldmVu
dC52ZXJzaW9uKSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
Imguc2V0VmVyc2lvbihTdHJpbmcodmVyKyspKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1
bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uIHNldFZlcnNpb25PblN1Y2Nlc3MoZXZ0KSB7Ci0gICAgICAgICAgICBwcmVhbWJsZShl
dnQpOworICAgICAgICBkZWJ1Zygib2xkID0gIiArIEpTT04uc3RyaW5naWZ5KGV2ZW50LnRhcmdl
dC52ZXJzaW9uKSk7CisgICAgICAgIGRlYnVnKCJuZXcgPSAiICsgSlNPTi5zdHJpbmdpZnkoZXZl
bnQudmVyc2lvbikpOworICAgIH07CiAKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVj
dGVkQWJvcnRDYWxsYmFjazsKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBm
dW5jdGlvbiB0cmFuc2FjdGlvbk9uQ29tcGxldGUoZXZ0KSB7Ci0gICAgICAgICAgICAgICAgcHJl
YW1ibGUoZXZ0KTsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uQ2hhbmdlQ29t
cGxldGUgPSB0cnVlIik7Ci0gICAgICAgICAgICB9OwotICAgICAgICB9OworICAgIHRyYW5zYWN0
aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxl
dGUgPSBmdW5jdGlvbiB0cmFuc2FjdGlvbk9uQ29tcGxldGUoZXZ0KSB7CisgICAgICAgIHByZWFt
YmxlKGV2dCk7CisgICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25DaGFuZ2VDb21wbGV0ZSA9IHRy
dWUiKTsKKyAgICB9OwogCi0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSBmdW5jdGlv
biBkZWxldGVEYXRhYmFzZU9uQmxvY2tlZChldnQpIHsKLSAgICAgICAgICAgIHByZWFtYmxlKGV2
dCk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSBmdW5jdGlvbiBkZWxldGVEYXRhYmFzZU9uQmxvY2tl
ZChldnQpIHsKKyAgICAgICAgcHJlYW1ibGUoZXZ0KTsKIAotICAgICAgICAgICAgZXZhbEFuZExv
ZygiaC5jbG9zZSgpIik7Ci0gICAgICAgIH07Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24gZGVsZXRlRGF0YWJhc2VPblN1Y2Nlc3MoZXZ0KSB7Ci0gICAgICAgICAgICBwcmVh
bWJsZShldnQpOwotICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxl
dGUiKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9OworICAgICAgICBl
dmFsQW5kTG9nKCJoLmNsb3NlKCkiKTsKKyAgICB9OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24gZGVsZXRlRGF0YWJhc2VPblN1Y2Nlc3MoZXZ0KSB7CisgICAgICAgIHByZWFtYmxl
KGV2dCk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidmVyc2lvbkNoYW5nZUNvbXBsZXRlIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH07CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kdXBsaWNhdGVzLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2R1cGxpY2F0ZXMuanMKaW5k
ZXggYzQzN2RmNTA0NmQxZTExM2U3M2IyZWJlNDkzNTZlNDIyNTAxYzMwZC4uMjY1ZmFhYTY0YTgx
MWNiZWZiNzk3MzI4ZjEwNDVmMWI0NjgwMjY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2R1cGxpY2F0ZXMuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2R1cGxpY2F0ZXMuanMKQEAgLTYsMzMgKzYsMTcg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHlv
dSBjYW4gcHV0IHRoZSBzYW1lIGRhdGEgaW4gMiBkaWZmZXJlbnQgZGF0YWJhc2VzIHdpdGhvdXQg
dW5pcXVlbmVzcyBjb25zdHJhaW50cyBmaXJpbmcuIik7CiAKIHRlc3RDb3VudCA9IDA7Cit0ZXN0
KCk7CiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBpZiAodGVzdENvdW50KysgPT0gMCkKLSAgICAg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdkdXBsaWNhdGVzLTEnKSIp
OworICAgICAgICBpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdCwgeydzdWZmaXgn
OiAnLTEnfSk7CiAgICAgZWxzZQotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhl
ZERCLm9wZW4oJ2R1cGxpY2F0ZXMtMicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRW
ZXJzaW9uOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
fQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNl
dFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0
ZUV4aXN0aW5nOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworICAgICAgICBpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgZmluaXNoSlNUZXN0LCB7
J3N1ZmZpeCc6ICctMid9KTsKIH0KLQotZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQorZnVuY3Rp
b24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToi
KTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQg
PSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhk
Yik7CisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogCiAgICAgc2VsZi5zdG9yZSA9IGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOwogICAg
IHNlbGYuaW5kZXhPYmplY3QgPSBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhO
YW1lJywgJ3gnKSIpOwpAQCAtMTU2LDExICsxNDAsNCBAQCBmdW5jdGlvbiBsYXN0KCkKIHsKICAg
ICBzaG91bGRCZU51bGwoImV2ZW50LnRhcmdldC5yZXN1bHQiKTsKIAotICAgIGlmICh0ZXN0Q291
bnQgPT0gMSkKLSAgICAgICAgdGVzdCgpOwotICAgIGVsc2UKLSAgICAgICAgZmluaXNoSlNUZXN0
KCk7CiB9Ci0KLXJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci10ZXN0KCk7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3NoYXJlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9zaGFyZWQuanMKaW5kZXggZDFhMDRiNzk0ZmY0MDhiNTllOGU4M2IzNzE5MDI0ZDhhZmQ0
YWU2YS4uNjRlODUyYTcyNjg5MjYyM2IyNzliY2FmYzRhNTZhZjRjOTkwODMyMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCkBAIC0x
NzMsMTggKzE3MywyMiBAQCBpZiAoIXNlbGYuRE9NRXhjZXB0aW9uKSB7CiAgICAgfTsKIH0KIAot
ZnVuY3Rpb24gaW5kZXhlZERCVGVzdCh1cGdyYWRlQ2FsbGJhY2ssIG9wdGlvbmFsT3BlbkNhbGxi
YWNrLCBvcHRpb25hbFZlcnNpb24pIHsKK2Z1bmN0aW9uIGluZGV4ZWREQlRlc3QodXBncmFkZUNh
bGxiYWNrLCBvcHRpb25hbE9wZW5DYWxsYmFjaywgb3B0aW9uYWxQYXJhbWV0ZXJzKSB7CiAgICAg
cmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKICAgICBzZXREQk5hbWVGcm9tUGF0aCgpOworICAgIGlm
IChvcHRpb25hbFBhcmFtZXRlcnMgJiYgJ3N1ZmZpeCcgaW4gb3B0aW9uYWxQYXJhbWV0ZXJzKSB7
CisgICAgICAgIGRibmFtZSArPSBvcHRpb25hbFBhcmFtZXRlcnNbJ3N1ZmZpeCddOworICAgICAg
ICBkZWJ1Zygib3ZlcnJpZGRlbiBkYm5hbWUgPSBcIiIgKyBkYm5hbWUgKyAiXCIiKTsKKyAgICB9
CiAgICAgdmFyIGRlbGV0ZVJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKSIpOwogICAgIGRlbGV0ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwogICAgIGRlbGV0ZVJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKICAgICBkZWxldGVSZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkg
ewogICAgICAgICB2YXIgb3BlblJlcXVlc3Q7Ci0gICAgICAgIGlmIChvcHRpb25hbFZlcnNpb24p
Ci0gICAgICAgICAgb3BlblJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5h
bWUsICIgKyBvcHRpb25hbFZlcnNpb24gKyAiKSIpOworICAgICAgICBpZiAob3B0aW9uYWxQYXJh
bWV0ZXJzICYmICd2ZXJzaW9uJyBpbiBvcHRpb25hbFBhcmFtZXRlcnMpCisgICAgICAgICAgICBv
cGVuUmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSwgIiArIG9wdGlv
bmFsUGFyYW1ldGVyc1sndmVyc2lvbiddICsgIikiKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
IG9wZW5SZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAg
ICAgICAgICAgb3BlblJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUp
Iik7CiAgICAgICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKICAgICAgICAgb3BlblJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZUNhbGxiYWNr
OwogICAgICAgICBvcGVuUmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173703</attachid>
            <date>2012-11-12 13:14:53 -0800</date>
            <delta_ts>2012-11-12 18:10:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101959-20121112131256.patch</filename>
            <type>text/plain</type>
            <size>18547</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MjUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjZkYmI4MWQ1ZGQ0YjExYjhiZjk3
YzcxZjFmMTFjODU1OTdjOTljZi4uNmNiMTlhMjQzMzdkY2E5MDNkOTc1NWQxOGNmNDlkYzU2ZmQ3
NDk2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTExLTEyICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IENvbnZlcnQgc29tZSBu
b24tc2ltcGxlIHRlc3RzIGZyb20gc2V0VmVyc2lvbiB0byB1cGdyYWRlbmVlZGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE5NTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmdvaW5nIHdvcmsgdG8g
cmVtb3ZlIGNhbGxzIHRvIHNldFZlcnNpb24gZnJvbSBvdXIgdGVzdHMgYmVmb3JlCisgICAgICAg
IHJlbW92aW5nIGl0IGZyb20gdGhlIEluZGV4ZWREQiBBUEkuCisKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnktb3Bl
bi1hbmQtdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvZHVwbGljYXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS5qczoKKyAgICAgICAg
ICBDcmVhdGUgYW5kIGRlbGV0ZSB3ZXJlIHJ1bm5pbmcgYmV0d2VlbiBvcGVuIGFuZCBzZXRWZXJz
aW9uLCB3aGljaCBubworICAgICAgICAgIGxvbmdlciBtYWtlcyBzZW5zZS4KKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcu
anM6CisgICAgICAgICAgVXNlIG9wdGlvbmFsIG9iamVjdCBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBv
cHRpb25hbCB2ZXJzaW9uIHBhcmFtZXRlci4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFu
Z2UuanM6CisgICAgICAgICAgVGhpcyB1c2VkIHRvIGNhbGwgZGVsZXRlIGp1c3QgYWZ0ZXIgaXNz
dWluZyBzZXRWZXJzaW9uIGJ1dCBiZWZvcmUKKyAgICAgICAgICByZWNlaXZpbmcgdGhlIGNvcnJl
c3BvbmRpbmcgc3VjY2VzcyBldmVudC4gIE5vdyBpdCBjYWxscyBkZWxldGUgd2hpbGUKKyAgICAg
ICAgICBpbiB0aGUgdXBncmFkZW5lZWRlZCB0cmFuc2FjdGlvbiwgc3RpbGwgY2F1c2luZyB0aGUg
ZGVsZXRlIHRvIGJlCisgICAgICAgICAgZGVsYXllZCBieSBhbiBpbiBmbGlnaHQgdmVyc2lvbmNo
YW5nZSB0cmFuc2FjdGlvbi4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9kdXBsaWNhdGVzLmpzOgorICAgICAgICAgIENhbGwgaW5kZXhlZERCVGVzdCB0d2ljZSB0byBy
ZXJ1biB0aGUgdGVzdHMgd2l0aCBhIGRpZmZlcmVudAorICAgICAgICAgIGRhdGFiYXNlLgorCisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qczoKKyAgICAgICAg
ICBBZGRlZCBhIHN1ZmZpeCBvcHRpb24gdG8gc3VwcG9ydCBkdXBsaWNhdGVzLmpzLCBzd2l0Y2hl
ZCB0byBhbgorICAgICAgICAgIG9wdGlvbmFsIG9iamVjdCBwYXJhbWV0ZXIuCisKKzIwMTItMTEt
MTIgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEluZGV4
ZWREQjogY29udmVydCB0ZXN0cyBmcm9tIHNldFZlcnNpb24gdG8gdXBncmFkZW5lZWRlZAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjc2CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1hbmQtcmVtb3Zl
LW9iamVjdC1zdG9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUtZXhwZWN0ZWQudHh0CmluZGV4IGUyYmQ4
YTBmYTUxNjQ2YmY5ZGNjOTEzYzA5NjQ4OGFhZTRlNDUwNzAuLjRkYzY1NGM0YzkzNTVhMGEyMTdm
MjhmYmExMWUwNjMyZDcxYzk4YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0
b3JlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNl
dFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVz
ZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQidzIGNy
ZWF0ZSBhbmQgcmVtb3ZlT2JqZWN0U3RvcmUKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpA
QCAtNiwzMSArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3Bl
bignY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0b3JlJykKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKLVRyeWluZyBjcmVhdGUKLUV4cGVjdGluZyBleGNlcHRpb24g
ZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZSBvcyIpCi1QQVNTIEV4Y2VwdGlvbiB3YXMg
dGhyb3duLgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgotUEFT
UyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCi1UcnlpbmcgcmVtb3ZlCi1FeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIuZGVsZXRlT2JqZWN0U3RvcmUoInNvbWUgb3MiKQotUEFTUyBFeGNl
cHRpb24gd2FzIHRocm93bi4KLVBBU1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFU
RV9FUlIKLVBBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJwotcmVzdWx0ID0gZGIuc2V0
VmVyc2lvbigndmVyc2lvbiAxJykKLVRyeWluZyBjcmVhdGUKLUV4cGVjdGluZyBleGNlcHRpb24g
ZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZSBvcyIpCi1QQVNTIEV4Y2VwdGlvbiB3YXMg
dGhyb3duLgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgotUEFT
UyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCi1UcnlpbmcgcmVtb3ZlCi1FeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIuZGVsZXRlT2JqZWN0U3RvcmUoInNvbWUgb3MiKQotUEFTUyBFeGNl
cHRpb24gd2FzIHRocm93bi4KLVBBU1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFU
RV9FUlIKLVBBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJwotRGVsZXRlZCBhbGwgb2Jq
ZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJjcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuaHRt
bCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5h
bWUpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgndG1wJykKIEV4cGVjdGluZyBleGNlcHRpb24gZnJv
bSBkYi5jcmVhdGVPYmplY3RTdG9yZSgndG1wJykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkYXRhYmFz
ZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlZGF0YWJhc2UtZGVsYXllZC1ieS1vcGVuLWFu
ZC12ZXJzaW9uY2hhbmdlLWV4cGVjdGVkLnR4dAppbmRleCA3ZWFjYzE3NTAxYWQ5NmM4NDhmZDU5
M2ViMmZjMDE2NDVjMDU5NDkwLi40M2JhNDY5YjhhNmMyYTQyMmQ1OTJkZjM3NGVjNzU5YmQ0OTc5
ZjUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkYXRh
YmFzZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFuZ2UtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnkt
b3Blbi1hbmQtdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05T
T0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQg
d2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgog
VGVzdCB0aGF0IGRlbGV0ZURhdGFiYXNlIGlzIGRlbGF5ZWQgaWYgYSBWRVJTSU9OX0NIQU5HRSB0
cmFuc2FjdGlvbiBpcyBydW5uaW5nCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTcs
MjIgKzYsMTcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIGluZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCiBkYm5hbWUgPSAiZGVsZXRlZGF0
YWJhc2UtZGVsYXllZC1ieS1vcGVuLWFuZC12ZXJzaW9uY2hhbmdlLmh0bWwiCi12ZXIgPSAxCi12
ZXJzaW9uQ2hhbmdlQ29tcGxldGUgPSBmYWxzZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKIGluZGV4ZWREQi5vcGVuKGRibmFtZSkKLQotb3Blbk9uU3VjY2VzcygpOgordmVyc2lv
bkNoYW5nZUNvbXBsZXRlID0gZmFsc2UKIGggPSBldmVudC50YXJnZXQucmVzdWx0Ci1oLnNldFZl
cnNpb24oU3RyaW5nKHZlcisrKSkKIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiAK
LXNldFZlcnNpb25PblN1Y2Nlc3MoKToKLQogdHJhbnNhY3Rpb25PbkNvbXBsZXRlKCk6CiB2ZXJz
aW9uQ2hhbmdlQ29tcGxldGUgPSB0cnVlCiAKIG9uVmVyc2lvbkNoYW5nZSgpOgotb2xkID0gIjEi
CitvbGQgPSAxCiBuZXcgPSAiIgogCiBkZWxldGVEYXRhYmFzZU9uQmxvY2tlZCgpOgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZHVwbGljYXRlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBsaWNhdGVzLWV4cGVjdGVkLnR4
dAppbmRleCBmNGE2Nzk3YTEzZmUyZmUxZDRmOGU4ZmJkYWZkOGRhYzBmMzZiZmJjLi5hZjBiYjRi
MjQ2ODEzMTQ4ZGYyYWZlMmI3ZDNkM2Y1N2VmYzg0ODNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBsaWNhdGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBsaWNhdGVzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsx
LDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0
YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50
IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5v
bi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBl
dmVudCBpbnN0ZWFkLgogVmVyaWZ5IHRoYXQgeW91IGNhbiBwdXQgdGhlIHNhbWUgZGF0YSBpbiAy
IGRpZmZlcmVudCBkYXRhYmFzZXMgd2l0aG91dCB1bmlxdWVuZXNzIGNvbnN0cmFpbnRzIGZpcmlu
Zy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNywxMyArNSw5IEBAIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Vi
a2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwg
c2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbignZHVwbGljYXRlcy0xJykKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotc2V0VmVy
c2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBp
cyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAiZHVwbGlj
YXRlcy5odG1sLTEiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpCiBz
dG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gnKQogc3RvcmUuYWRkKHt4OiAndmFsdWUn
LCB5OiAnenp6J30sICdrZXknKQpAQCAtNDksMTMgKzQzLDExIEBAIFBBU1MgZXZlbnQudGFyZ2V0
LnJlc3VsdC52YWx1ZS54IGlzICJ2YWx1ZTIiCiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQudmFs
dWUueSBpcyAienp6MiIKIGV2ZW50LnRhcmdldC5yZXN1bHQuY29udGludWUoKQogUEFTUyBldmVu
dC50YXJnZXQucmVzdWx0IGlzIG51bGwKLWluZGV4ZWREQi5vcGVuKCdkdXBsaWNhdGVzLTInKQot
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1z
ZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRy
YW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2luZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAi
ZHVwbGljYXRlcy5odG1sLTIiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51
bGwpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gnKQogc3RvcmUuYWRkKHt4OiAn
dmFsdWUnLCB5OiAnenp6J30sICdrZXknKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS5qcyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGUtYW5kLXJlbW92
ZS1vYmplY3Qtc3RvcmUuanMKaW5kZXggZDJjNjk5NDYyMGEwZDEwMjdkYzEwYTBhNDk3YmY5YmM2
ZTA5OGM4ZS4uODRhNjc2NmEyYTk4N2JlODY1MGIxYTQxZjc4ZDVlZTQyMWNkODQ5OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1hbmQt
cmVtb3ZlLW9iamVjdC1zdG9yZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0b3JlLmpzCkBAIC01LDU1ICs1
LDMxIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCJ3MgY3JlYXRlIGFuZCByZW1vdmVPYmplY3RTdG9yZSIpOwogCi1mdW5jdGlvbiB0ZXN0
KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBzZXRWZXJzaW9uQ29tcGxldGUpOwor
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygp
OwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3JlYXRlLWFuZC1y
ZW1vdmUtb2JqZWN0LXN0b3JlJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNj
ZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQot
Ci1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7
Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwot
ICAgIHRlc3RDcmVhdGVBbmRSZW1vdmUoKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVz
dWx0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci0gICAgdGVzdENyZWF0ZUFuZFJlbW92ZSgpOwotfQotCi1mdW5jdGlvbiB0ZXN0
Q3JlYXRlQW5kUmVtb3ZlKCkKLXsKLSAgICBkZWJ1ZygiVHJ5aW5nIGNyZWF0ZSIpOwotICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oJ2RiLmNyZWF0ZU9iamVjdFN0b3JlKCJzb21lIG9zIiknLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsK
LSAgICBkZWJ1ZygiVHJ5aW5nIHJlbW92ZSIpOwotICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
J2RiLmRlbGV0ZU9iamVjdFN0b3JlKCJzb21lIG9zIiknLCAiRE9NRXhjZXB0aW9uLklOVkFMSURf
U1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLX0KLQotZnVuY3Rpb24gY2xlYW5E
YXRhYmFzZSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9y
dCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIG9zID0gZXZhbEFuZExvZygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3RtcCcpIik7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ3RtcCcpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkNPTlNUUkFJ
TlRfRVJSIiwgIidDb25zdHJhaW50RXJyb3InIik7Ci0gICAgZXZlbnQudGFyZ2V0LnJlc3VsdC5v
bmNvbXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwogfQogCiBmdW5jdGlvbiBzZXRWZXJzaW9u
Q29tcGxldGUoKQogewogICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbJ3RtcCddKSIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFucy5vYmplY3RT
dG9yZSgndG1wJykuZ2V0KDApIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0cnlPbmNlTW9y
ZTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHRyeVRvQ3JlYXRlQW5kRGVsZXRlOwogICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCi1mdW5jdGlvbiB0
cnlPbmNlTW9yZSgpCitmdW5jdGlvbiB0cnlUb0NyZWF0ZUFuZERlbGV0ZSgpCiB7CiAgICAgc2hv
dWxkQmVVbmRlZmluZWQoImV2ZW50LnRhcmdldC5yZXN1bHQiKTsKIAotICAgIHRlc3RDcmVhdGVB
bmRSZW1vdmUoKTsKKyAgICBkZWJ1ZygiVHJ5aW5nIGNyZWF0ZSIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oJ2RiLmNyZWF0ZU9iamVjdFN0b3JlKCJzb21lIG9zIiknLCAiRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBkZWJ1
ZygiVHJ5aW5nIHJlbW92ZSIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oJ2RiLmRlbGV0
ZU9iamVjdFN0b3JlKCJzb21lIG9zIiknLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKIAogICAgIGRlYnVnKCJUcnlpbmcgY3JlYXRlIHdp
dGggc3RvcmUgdGhhdCBhbHJlYWR5IGV4aXN0cyIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0bXAnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9T
VEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwpAQCAtNjIsNSArMzgsMyBAQCBmdW5j
dGlvbiB0cnlPbmNlTW9yZSgpCiAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotdGVzdCgpOwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtZGVsZXRlcGVu
ZGluZy1mbGFnLmpzCmluZGV4IDc3MzdiMzk2ZjhmN2I1YjhmZGYzNjE2MjliNThmYjRkN2VhZmJk
YTcuLjJjNzEzOGU1ZTJjZWRmYzQyMmI5YjIxZWIzMmVhNzJlMGVmNDk5MTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1kZWxldGVw
ZW5kaW5nLWZsYWcuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy5qcwpAQCAtNSw3ICs1LDcgQEAgaWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgSURCRGF0
YWJhc2UgaW50ZXJuYWwgZGVsZXRlIHBlbmRpbmcgZmxhZyIpOwogCi1pbmRleGVkREJUZXN0KHBy
ZXBhcmVEYXRhYmFzZSwgdGVzdERhdGFiYXNlRGVsZXRlLCA1KTsKK2luZGV4ZWREQlRlc3QocHJl
cGFyZURhdGFiYXNlLCB0ZXN0RGF0YWJhc2VEZWxldGUsIHsidmVyc2lvbiI6IDV9KTsKIGZ1bmN0
aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7CiAgICAgY29ubmVjdGlvbiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvZGVsZXRlZGF0YWJhc2UtZGVsYXllZC1ieS1vcGVuLWFuZC12ZXJzaW9uY2hhbmdlLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLWRl
bGF5ZWQtYnktb3Blbi1hbmQtdmVyc2lvbmNoYW5nZS5qcwppbmRleCA4ZGQ5NmFlOGVhNTM3Yzhm
Zjk2OWY0NjY3ZWQxYzA1NjQ3YjkzOTI3Li4wNjI0ZWJmNmU3YzI5NDg4YmZkZjMwYWY5YTMzYjBm
NThmMTI1M2RhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvZGVsZXRlZGF0YWJhc2UtZGVsYXllZC1ieS1vcGVuLWFuZC12ZXJzaW9uY2hhbmdlLmpz
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVkYXRh
YmFzZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFuZ2UuanMKQEAgLTUsNTMgKzUsMzYg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGRl
bGV0ZURhdGFiYXNlIGlzIGRlbGF5ZWQgaWYgYSBWRVJTSU9OX0NIQU5HRSB0cmFuc2FjdGlvbiBp
cyBydW5uaW5nIik7CiAKLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4
ZXMoKTsKLSAgICBzZXREQk5hbWVGcm9tUGF0aCgpOwogCi0gICAgZXZhbEFuZExvZygidmVyID0g
MSIpOworaW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURh
dGFiYXNlKCkKK3sKICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxldGUgPSBmYWxz
ZSIpOworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7CisgICAgZXZhbEFuZExvZygiaCA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
IAotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7Ci0g
ICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZnVuY3Rpb24gb3Blbk9uU3VjY2VzcyhldnQpIHsKKyAgICBoLm9udmVyc2lvbmNo
YW5nZSA9IGZ1bmN0aW9uIG9uVmVyc2lvbkNoYW5nZShldnQpIHsKICAgICAgICAgcHJlYW1ibGUo
ZXZ0KTsKLSAgICAgICAgZXZhbEFuZExvZygiaCA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQot
ICAgICAgICBoLm9udmVyc2lvbmNoYW5nZSA9IGZ1bmN0aW9uIG9uVmVyc2lvbkNoYW5nZShldnQp
IHsKLSAgICAgICAgICAgIHByZWFtYmxlKGV2dCk7Ci0gICAgICAgICAgICBkZWJ1Zygib2xkID0g
IiArIEpTT04uc3RyaW5naWZ5KGV2ZW50LnRhcmdldC52ZXJzaW9uKSk7Ci0gICAgICAgICAgICBk
ZWJ1ZygibmV3ID0gIiArIEpTT04uc3RyaW5naWZ5KGV2ZW50LnZlcnNpb24pKTsKLSAgICAgICAg
fTsKLQotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaC5zZXRWZXJzaW9uKFN0cmluZyh2
ZXIrKykpIik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJh
Y2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gc2V0VmVyc2lvbk9uU3Vj
Y2VzcyhldnQpIHsKLSAgICAgICAgICAgIHByZWFtYmxlKGV2dCk7CisgICAgICAgIGRlYnVnKCJv
bGQgPSAiICsgSlNPTi5zdHJpbmdpZnkoZXZlbnQudGFyZ2V0LnZlcnNpb24pKTsKKyAgICAgICAg
ZGVidWcoIm5ldyA9ICIgKyBKU09OLnN0cmluZ2lmeShldmVudC52ZXJzaW9uKSk7CisgICAgfTsK
IAotICAgICAgICAgICAgdHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAg
ICAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAg
ICAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uIHRyYW5zYWN0aW9uT25D
b21wbGV0ZShldnQpIHsKLSAgICAgICAgICAgICAgICBwcmVhbWJsZShldnQpOwotICAgICAgICAg
ICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25DaGFuZ2VDb21wbGV0ZSA9IHRydWUiKTsKLSAgICAg
ICAgICAgIH07Ci0gICAgICAgIH07CisgICAgdHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJh
bnNhY3Rpb247CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uIHRyYW5zYWN0
aW9uT25Db21wbGV0ZShldnQpIHsKKyAgICAgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICAgICAgZXZh
bEFuZExvZygidmVyc2lvbkNoYW5nZUNvbXBsZXRlID0gdHJ1ZSIpOworICAgIH07CiAKLSAgICAg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
Iik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
ICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IGZ1bmN0aW9uIGRlbGV0ZURhdGFiYXNlT25CbG9j
a2VkKGV2dCkgewotICAgICAgICAgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tl
ZCA9IGZ1bmN0aW9uIGRlbGV0ZURhdGFiYXNlT25CbG9ja2VkKGV2dCkgeworICAgICAgICBwcmVh
bWJsZShldnQpOwogCi0gICAgICAgICAgICBldmFsQW5kTG9nKCJoLmNsb3NlKCkiKTsKLSAgICAg
ICAgfTsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiBkZWxldGVEYXRhYmFz
ZU9uU3VjY2VzcyhldnQpIHsKLSAgICAgICAgICAgIHByZWFtYmxlKGV2dCk7Ci0gICAgICAgICAg
ICBzaG91bGRCZVRydWUoInZlcnNpb25DaGFuZ2VDb21wbGV0ZSIpOwotICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Ci0gICAgICAgIH07CisgICAgICAgIGV2YWxBbmRMb2coImguY2xvc2UoKSIp
OworICAgIH07CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiBkZWxldGVEYXRhYmFz
ZU9uU3VjY2VzcyhldnQpIHsKKyAgICAgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICAgICAgc2hvdWxk
QmVUcnVlKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxldGUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgfTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2R1cGxpY2F0ZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvZHVwbGljYXRlcy5qcwppbmRleCBjNDM3ZGY1MDQ2ZDFlMTEzZTcz
YjJlYmU0OTM1NmU0MjI1MDFjMzBkLi4yNjVmYWFhNjRhODExY2JlZmI3OTczMjhmMTA0NWYxYjQ2
ODAyNjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvZHVwbGljYXRlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvZHVwbGljYXRlcy5qcwpAQCAtNiwzMyArNiwxNyBAQCBpZiAodGhpcy5pbXBvcnRTY3Jp
cHRzKSB7CiBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgeW91IGNhbiBwdXQgdGhlIHNhbWUgZGF0
YSBpbiAyIGRpZmZlcmVudCBkYXRhYmFzZXMgd2l0aG91dCB1bmlxdWVuZXNzIGNvbnN0cmFpbnRz
IGZpcmluZy4iKTsKIAogdGVzdENvdW50ID0gMDsKK3Rlc3QoKTsKIGZ1bmN0aW9uIHRlc3QoKQog
ewogICAgIGlmICh0ZXN0Q291bnQrKyA9PSAwKQotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLm9wZW4oJ2R1cGxpY2F0ZXMtMScpIik7CisgICAgICAgIGluZGV4ZWREQlRl
c3QocHJlcGFyZURhdGFiYXNlLCB0ZXN0LCB7J3N1ZmZpeCc6ICctMSd9KTsKICAgICBlbHNlCi0g
ICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignZHVwbGljYXRlcy0y
JykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNp
b24oKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24n
KSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIGluZGV4ZWREQlRl
c3QocHJlcGFyZURhdGFiYXNlLCBmaW5pc2hKU1Rlc3QsIHsnc3VmZml4JzogJy0yJ30pOwogfQot
Ci1mdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQog
ewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMgPSBl
dmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICBzaG91bGRCZU5v
bk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CiAKICAgICBzZWxmLnN0b3JlID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CiAgICAgc2VsZi5pbmRleE9iamVjdCA9IGV2
YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5hbWUnLCAneCcpIik7CkBAIC0xNTYs
MTEgKzE0MCw0IEBAIGZ1bmN0aW9uIGxhc3QoKQogewogICAgIHNob3VsZEJlTnVsbCgiZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOwogCi0gICAgaWYgKHRlc3RDb3VudCA9PSAxKQotICAgICAgICB0ZXN0
KCk7Ci0gICAgZWxzZQotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQotcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBk
MWEwNGI3OTRmZjQwOGI1OWU4ZTgzYjM3MTkwMjRkOGFmZDRhZTZhLi40M2ExMDFjMGE1MGVmNTM1
NGY4ZDUzZjlkZGMzMzZhZmRhZjY4NWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAgLTEzMCw4ICsxMzAsMTEgQEAgZnVuY3Rp
b24gZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKQogICAgIGRlYnVnKCJEZWxldGVkIGFsbCBvYmpl
Y3Qgc3RvcmVzLiIpOwogfQogCi1mdW5jdGlvbiBzZXREQk5hbWVGcm9tUGF0aCgpIHsKLSAgICBl
dmFsQW5kTG9nKCdkYm5hbWUgPSAiJyArIHNlbGYubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5n
KDEgKyBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKCIvIikpICsgJyInKTsKK2Z1
bmN0aW9uIHNldERCTmFtZUZyb21QYXRoKHN1ZmZpeCkgeworICAgIHZhciBuYW1lID0gc2VsZi5s
b2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMSArIHNlbGYubG9jYXRpb24ucGF0aG5hbWUubGFz
dEluZGV4T2YoIi8iKSk7CisgICAgaWYgKHN1ZmZpeCkKKyAgICAgICAgbmFtZSArPSBzdWZmaXg7
CisgICAgZXZhbEFuZExvZygnZGJuYW1lID0gIicgKyBuYW1lICsgJyInKTsKIH0KIAogZnVuY3Rp
b24gcHJlYW1ibGUoZXZ0KQpAQCAtMTczLDE4ICsxNzYsMjIgQEAgaWYgKCFzZWxmLkRPTUV4Y2Vw
dGlvbikgewogICAgIH07CiB9CiAKLWZ1bmN0aW9uIGluZGV4ZWREQlRlc3QodXBncmFkZUNhbGxi
YWNrLCBvcHRpb25hbE9wZW5DYWxsYmFjaywgb3B0aW9uYWxWZXJzaW9uKSB7CitmdW5jdGlvbiBp
bmRleGVkREJUZXN0KHVwZ3JhZGVDYWxsYmFjaywgb3B0aW9uYWxPcGVuQ2FsbGJhY2ssIG9wdGlv
bmFsUGFyYW1ldGVycykgewogICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgc2V0REJO
YW1lRnJvbVBhdGgoKTsKKyAgICBpZiAob3B0aW9uYWxQYXJhbWV0ZXJzICYmICdzdWZmaXgnIGlu
IG9wdGlvbmFsUGFyYW1ldGVycykgeworICAgICAgICBzZXREQk5hbWVGcm9tUGF0aChvcHRpb25h
bFBhcmFtZXRlcnNbJ3N1ZmZpeCddKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzZXREQk5hbWVG
cm9tUGF0aCgpOworICAgIH0KICAgICB2YXIgZGVsZXRlUmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CiAgICAgZGVsZXRlUmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgZGVsZXRlUmVxdWVzdC5vbmJsb2Nr
ZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwogICAgIGRlbGV0ZVJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBvcGVuUmVxdWVzdDsKLSAgICAgICAgaWYg
KG9wdGlvbmFsVmVyc2lvbikKLSAgICAgICAgICBvcGVuUmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgIiArIG9wdGlvbmFsVmVyc2lvbiArICIpIik7CisgICAgICAg
IGlmIChvcHRpb25hbFBhcmFtZXRlcnMgJiYgJ3ZlcnNpb24nIGluIG9wdGlvbmFsUGFyYW1ldGVy
cykKKyAgICAgICAgICAgIG9wZW5SZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAiICsgb3B0aW9uYWxQYXJhbWV0ZXJzWyd2ZXJzaW9uJ10gKyAiKSIpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgb3BlblJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Bl
bihkYm5hbWUpIik7CisgICAgICAgICAgICBvcGVuUmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5vcGVuKGRibmFtZSkiKTsKICAgICAgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgICAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQg
PSB1cGdyYWRlQ2FsbGJhY2s7CiAgICAgICAgIG9wZW5SZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhw
ZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>