<?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>59465</bug_id>
          
          <creation_ts>2011-04-26 09:47:19 -0700</creation_ts>
          <short_desc>Port Mozilla&apos;s IndexedDB tests: readonly and read/write transactions</short_desc>
          <delta_ts>2011-04-28 05:58:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>hans</cc>
    
    <cc>pilgrim</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>392526</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-26 09:47:19 -0700</bug_when>
    <thetext>Original test: http://mxr.mozilla.org/mozilla2.0/source/dom/indexedDB/test/test_readonly_transactions.html?force=1

This is a port of Mozilla&apos;s IndexedDB test that tests both readonly and read/write transaction modes. WebKit passes these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392528</commentid>
    <comment_count>1</comment_count>
      <attachid>91120</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-26 09:49:59 -0700</bug_when>
    <thetext>Created attachment 91120
patch with changelog and layouttest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392962</commentid>
    <comment_count>2</comment_count>
      <attachid>91120</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-04-26 16:16:24 -0700</bug_when>
    <thetext>Comment on attachment 91120
patch with changelog and layouttest

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

Substance is good, just style stuff

&gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readonly-transactions.html:47
&gt; +function cleanDatabase()

Make more accurate/descriptive.  You can probably ignore the deleteAllObjectStores calls and instead describe the other stuff they do.

&gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readonly-transactions.html:51
&gt; +    osName = &quot;test store&quot;;

I think the Webkit Way is to abbreviate as little as possible.  rename osName -&gt; objectStoreName

&gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:26
&gt; +    indexedDB = evalAndLog(&quot;indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;&quot;);

at some point we should probably refactor some or all of this into a function that lives in resources/shared.js

&gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:49
&gt; +function cleanDatabase()

same comment as usual about cleanDatabase

&gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:63
&gt; +    key1 = evalAndLog(&quot;key1 = event.target.result;&quot;);

move this to postAdd2, right before key1 is first used

&gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:72
&gt; +    key2 = evalAndLog(&quot;key2 = event.target.result;&quot;);

move this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392974</commentid>
    <comment_count>3</comment_count>
      <attachid>91120</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-26 16:19:28 -0700</bug_when>
    <thetext>Comment on attachment 91120
patch with changelog and layouttest

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

&gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:121
&gt; +    done();

It would be nice if on failure we still called done() so the test doesn&apos;t timeout.  One way to do this is to have the onerror callback call done() before calling unexpectedErrorCallback().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392980</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-26 16:21:00 -0700</bug_when>
    <thetext>Sorry, I didn&apos;t see David&apos;s comments.  Feel free to fix those and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393002</commentid>
    <comment_count>5</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-04-26 16:26:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 91120 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=91120&amp;action=review
&gt; 
&gt; &gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:121
&gt; &gt; +    done();
&gt; 
&gt; It would be nice if on failure we still called done() so the test doesn&apos;t timeout.  One way to do this is to have the onerror callback call done() before calling unexpectedErrorCallback().

We could have unexpectedErrorCallback call done().  Mark, I think that wouldn&apos;t change any expected results and would solve this across all of the IndexedDB tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393161</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-26 17:15:20 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 91120 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=91120&amp;action=review
&gt; 
&gt; &gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:63
&gt; &gt; +    key1 = evalAndLog(&quot;key1 = event.target.result;&quot;);
&gt; 
&gt; move this to postAdd2, right before key1 is first used
&gt; 
&gt; &gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:72
&gt; &gt; +    key2 = evalAndLog(&quot;key2 = event.target.result;&quot;);
&gt; 
&gt; move this

I can&apos;t move these any later because they are gathering values that are dependent on the result of the previous call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393163</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-26 17:17:04 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; It would be nice if on failure we still called done() so the test doesn&apos;t timeout.  One way to do this is to have the onerror callback call done() before calling unexpectedErrorCallback().
&gt; 
&gt; We could have unexpectedErrorCallback call done().  Mark, I think that wouldn&apos;t change any expected results and would solve this across all of the IndexedDB tests.

I can add this to this bug&apos;s next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393169</commentid>
    <comment_count>8</comment_count>
      <attachid>91120</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-04-26 17:20:26 -0700</bug_when>
    <thetext>Comment on attachment 91120
patch with changelog and layouttest

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

&gt;&gt;&gt; third_party/WebKit/LayoutTests/storage/indexeddb/mozilla/readwrite-transactions.html:63
&gt;&gt;&gt; +    key1 = evalAndLog(&quot;key1 = event.target.result;&quot;);
&gt;&gt; 
&gt;&gt; move this to postAdd2, right before key1 is first used
&gt; 
&gt; I can&apos;t move these any later because they are gathering values that are dependent on the result of the previous call.

Oops, I missed that.  Move requests withdrawn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393170</commentid>
    <comment_count>9</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-04-26 17:22:54 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; It would be nice if on failure we still called done() so the test doesn&apos;t timeout.  One way to do this is to have the onerror callback call done() before calling unexpectedErrorCallback().
&gt; &gt; 
&gt; &gt; We could have unexpectedErrorCallback call done().  Mark, I think that wouldn&apos;t change any expected results and would solve this across all of the IndexedDB tests.
&gt; 
&gt; I can add this to this bug&apos;s next patch.

Could you file a new bug instead?  Don&apos;t feel obligated to make the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393242</commentid>
    <comment_count>10</comment_count>
      <attachid>91205</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-26 18:30:30 -0700</bug_when>
    <thetext>Created attachment 91205
nits addressed

As requested, this does not include a patch to call done() from the error callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393260</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-26 18:47:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; It would be nice if on failure we still called done() so the test doesn&apos;t timeout.  One way to do this is to have the onerror callback call done() before calling unexpectedErrorCallback().
&gt; &gt; &gt; 
&gt; &gt; &gt; We could have unexpectedErrorCallback call done().  Mark, I think that wouldn&apos;t change any expected results and would solve this across all of the IndexedDB tests.
&gt; &gt; 
&gt; &gt; I can add this to this bug&apos;s next patch.
&gt; 
&gt; Could you file a new bug instead?  Don&apos;t feel obligated to make the change.

Bug 59569</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393282</commentid>
    <comment_count>12</comment_count>
      <attachid>91214</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-26 19:38:36 -0700</bug_when>
    <thetext>Created attachment 91214
rebase webkit directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393562</commentid>
    <comment_count>13</comment_count>
      <attachid>91287</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-27 08:33:09 -0700</bug_when>
    <thetext>Created attachment 91287
nits addressed once again (regression in previous patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394380</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-28 05:57:30 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 91287:

http/tests/misc/favicon-loads-with-icon-loading-override.html bug 58412 (author: alice.liu@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394381</commentid>
    <comment_count>15</comment_count>
      <attachid>91287</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-28 05:58:36 -0700</bug_when>
    <thetext>Comment on attachment 91287
nits addressed once again (regression in previous patch)

Clearing flags on attachment: 91287

Committed r85178: &lt;http://trac.webkit.org/changeset/85178&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394382</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-28 05:58:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91120</attachid>
            <date>2011-04-26 09:49:59 -0700</date>
            <delta_ts>2011-04-26 18:30:30 -0700</delta_ts>
            <desc>patch with changelog and layouttest</desc>
            <filename>bug-59465.patch</filename>
            <type>text/plain</type>
            <size>14131</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IHRoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
ODQ5MTkpCisrKyB0aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQtMjYgIE1hcmsgUGlsZ3JpbSAgPHBp
bGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcnQgTW96aWxsYSdzIEluZGV4ZWREQiB0ZXN0czogcmVhZG9ubHkgYW5k
IHJlYWQvd3JpdGUgdHJhbnNhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01OTQ2NQorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYTogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25s
eS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jl
YWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMTEtMDQtMjYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5z
dGVpbi4KSW5kZXg6IHRoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvcmVhZG9ubHktdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IHRoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDQgQEAKK1Rlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8
IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK1BBU1MgaW5k
ZXhlZERCID09IG51bGwgaXMgZmFsc2UKK0lEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklE
QkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsK
K1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQoraW5kZXhlZERCLm9w
ZW4obmFtZSwgZGVzY3JpcHRpb24pCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9zTmFtZSwgeyBhdXRvSW5jcmVtZW50OiB0cnVl
IH0pOworRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5v
YmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGlu
ZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0b3JlKG9zTmFt
ZSkuYWRkKHt9KTsKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURC
RGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUgora2V5MSA9IDE7CitrZXkyID0gMjsKK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0U3Rv
cmUob3NOYW1lKS5wdXQoe30sIGtleTEpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BB
U1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitFeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUp
LnB1dCh7fSwga2V5Mik7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlz
IElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24g
ZnJvbSBkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0U3RvcmUob3NOYW1lKS5wdXQoe30s
IGtleTEpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRh
YmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIu
dHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7CitQ
QVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0
aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlv
bihbb3NOYW1lXSkub2JqZWN0U3RvcmUob3NOYW1lKS5kZWxldGUoa2V5MSk7CitQQVNTIEV4Y2Vw
dGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihvc05hbWUp
Lm9iamVjdFN0b3JlKG9zTmFtZSkuZGVsZXRlKGtleTIpOworUEFTUyBFeGNlcHRpb24gd2FzIHRo
cm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
dGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVhZG9ubHktdHJhbnNhY3Rpb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGhpcmRfcGFydHkvV2Vi
S2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNh
Y3Rpb25zLmh0bWwJKHJldmlzaW9uIDApCisrKyB0aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9y
aWdpbmFsIHRlc3Q6IGh0dHA6Ly9teHIubW96aWxsYS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9t
L2luZGV4ZWREQi90ZXN0L3Rlc3RfcmVhZG9ubHlfdHJhbnNhY3Rpb25zLmh0bWwKKyAgbGljZW5z
ZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIgQW55IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8g
dGhlIFB1YmxpYyBEb21haW4uCisgICAgICBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJs
aWNkb21haW4vemVyby8xLjAvICIKKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zIik7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaW5kZXhlZERCID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhl
ZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREI7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhl
ZERCID09IG51bGwiKTsKKyAgICBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IGV2YWxBbmRMb2coIklE
QkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRv
dy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJE
YXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIik7CisKKyAgICBuYW1lID0gd2luZG93LmxvY2F0aW9u
LnBhdGhuYW1lOworICAgIGRlc2NyaXB0aW9uID0gIk15IFRlc3QgRGF0YWJhc2UiOworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikiKTsK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Cit7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKwor
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjbGVhbkRhdGFi
YXNlKCkKK3sKKyAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworCisgICAgb3NOYW1lID0g
InRlc3Qgc3RvcmUiOworICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsi
KTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihbb3NOYW1lXSku
b2JqZWN0U3RvcmUob3NOYW1lKS5hZGQoe30pOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFE
X09OTFlfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24o
b3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0
aW9uLlJFQURfT05MWV9FUlIiKTsKKyAgICBrZXkxID0gZXZhbEFuZExvZygia2V5MSA9IDE7Iik7
CisgICAga2V5MiA9IGV2YWxBbmRMb2coImtleTIgPSAyOyIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUpLnB1
dCh7fSwga2V5MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKKyAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0
b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkyKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9P
TkxZX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtv
c05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7IiwgIklEQkRhdGFiYXNl
RXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJk
Yi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsi
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUp
LmRlbGV0ZShrZXkxKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKG9zTmFtZSkub2JqZWN0
U3RvcmUob3NOYW1lKS5kZWxldGUoa2V5Mik7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIiKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiB0
aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9y
ZWFkd3JpdGUtdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0aGlyZF9w
YXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3Jp
dGUtdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIHRoaXJkX3BhcnR5
L1dlYktpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10
cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitU
ZXN0IEluZGV4ZWREQidzIHJlYWQvd3JpdGUgdHJhbnNhY3Rpb25zCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53
ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK1BBU1MgaW5kZXhlZERCID09
IG51bGwgaXMgZmFsc2UKK0lEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNl
RXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsKK1BBU1MgSURC
RGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQorSURCVHJhbnNhY3Rpb24gPSB3aW5k
b3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uOworUEFTUyBJ
REJUcmFuc2FjdGlvbiA9PSBudWxsIGlzIGZhbHNlCitpbmRleGVkREIub3BlbihuYW1lLCBkZXNj
cmlwdGlvbikKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorcmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJzEnKQorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK29iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUob3NOYW1lLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CityZXF1ZXN0
ID0gZGIudHJhbnNhY3Rpb24oW29zTmFtZV0sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9i
amVjdFN0b3JlKG9zTmFtZSkuYWRkKHt9KTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQora2V5MSA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CityZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7CitQQVNTIGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUKK2tleTIgPSBl
dmVudC50YXJnZXQucmVzdWx0OworcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5
MSk7CitQQVNTIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUKK3JlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkyKTsKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RQorcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7CitQQVNTIGV2ZW50LnRh
cmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUKK3JlcXVl
c3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9i
amVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5z
YWN0aW9uLm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQorcmVxdWVzdCA9IGRiLnRy
YW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9y
ZShvc05hbWUpLmRlbGV0ZShrZXkxKTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1v
ZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQorcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9u
KG9zTmFtZSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5k
ZWxldGUoa2V5Mik7CitQQVNTIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiB0aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3JpdGUtdHJhbnNhY3Rpb25zLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy5odG1sCShyZXZpc2lvbiAwKQorKysgdGhp
cmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVh
ZHdyaXRlLXRyYW5zYWN0aW9ucy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzMSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9yaWdpbmFsIHRlc3Q6IGh0dHA6Ly9teHIubW96aWxs
YS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9tL2luZGV4ZWREQi90ZXN0L3Rlc3RfcmVhZG9ubHlf
dHJhbnNhY3Rpb25zLmh0bWwKKyAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIgQW55
IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8gdGhlIFB1YmxpYyBEb21haW4uCisgICAgICBodHRw
Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvICIKKy0tPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZC93
cml0ZSB0cmFuc2FjdGlvbnMiKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBpbmRleGVkREIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5k
ZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsi
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJpbmRleGVkREIgPT0gbnVsbCIpOworICAgIElEQkRhdGFi
YXNlRXhjZXB0aW9uID0gZXZhbEFuZExvZygiSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cu
SURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9u
OyIpOworICAgIHNob3VsZEJlRmFsc2UoIklEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwiKTsK
KyAgICBJREJUcmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9uID0gd2luZG93
LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbjsiKTsKKyAgICBz
aG91bGRCZUZhbHNlKCJJREJUcmFuc2FjdGlvbiA9PSBudWxsIik7CisKKyAgICBuYW1lID0gd2lu
ZG93LmxvY2F0aW9uLnBhdGhuYW1lOworICAgIGRlc2NyaXB0aW9uID0gIk15IFRlc3QgRGF0YWJh
c2UiOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNj
cmlwdGlvbikiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBv
cGVuU3VjY2VzcygpCit7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignMScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBjbGVhbkRhdGFiYXNlKCkKK3sKKyAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworCisg
ICAgb3NOYW1lID0gInRlc3Qgc3RvcmUiOworICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygi
b2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVu
dDogdHJ1ZSB9KTsiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnRy
YW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9y
ZShvc05hbWUpLmFkZCh7fSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0QWRkOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5j
dGlvbiBwb3N0QWRkKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIGtleTEgPSBldmFsQW5k
TG9nKCJrZXkxID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygicmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKG9zTmFtZSwgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5hZGQoe30pOyIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gcG9zdEFkZDI7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBvc3RBZGQyKCkKK3sKKyAgICBzaG91bGRCZSgiZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIp
OworICAgIGtleTIgPSBldmFsQW5kTG9nKCJrZXkyID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsK
KyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05h
bWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7
fSwga2V5MSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0UHV0OworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBwb3N0
UHV0KCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAi
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJy
ZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5Mik7Iik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBwb3N0UHV0MjsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKK30KKworZnVuY3Rpb24gcG9zdFB1dDIoKQoreworICAgIHNob3VsZEJlKCJldmVu
dC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFIik7
CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihbb3NO
YW1lXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5wdXQo
e30sIGtleTEpOyIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gcG9zdFB1dDM7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBv
c3RQdXQzKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUi
LCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7Iik7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBwb3N0UHV0NDsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gcG9zdFB1dDQoKQoreworICAgIHNob3VsZEJlKCJl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
Iik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihb
b3NOYW1lXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5k
ZWxldGUoa2V5MSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0RGVsZXRlOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBwb3N0RGVsZXRlKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLmRlbGV0ZShrZXkyKTsiKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IHBvc3REZWxldGUyOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBwb3N0RGVsZXRlMigpCit7CisgICAg
c2hvdWxkQmUoImV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIiwgIklEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUiKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>
<flag name="review"
          id="83899"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91205</attachid>
            <date>2011-04-26 18:30:30 -0700</date>
            <delta_ts>2011-04-26 19:38:36 -0700</delta_ts>
            <desc>nits addressed</desc>
            <filename>bug-59465b.patch</filename>
            <type>text/plain</type>
            <size>14496</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IHRoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
ODQ5OTgpCisrKyB0aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQtMjYgIE1hcmsgUGlsZ3JpbSAgPHBp
bGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcnQgTW96aWxsYSdzIEluZGV4ZWREQiB0ZXN0czogcmVhZG9ubHkgYW5k
IHJlYWQvd3JpdGUgdHJhbnNhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01OTQ2NQorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYTogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25s
eS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jl
YWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMTEtMDQtMjYgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIg
SHVudC4KSW5kZXg6IHRoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvcmVhZG9ubHktdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IHRoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDQgQEAKK1Rlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8
IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK1BBU1MgaW5k
ZXhlZERCID09IG51bGwgaXMgZmFsc2UKK0lEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklE
QkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsK
K1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQoraW5kZXhlZERCLm9w
ZW4obmFtZSwgZGVzY3JpcHRpb24pCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSwgeyBhdXRvSW5jcmVt
ZW50OiB0cnVlIH0pOworRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKFtv
YmplY3RTdG9yZU5hbWVdKS5vYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUpLmFkZCh7fSk7CitQ
QVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0
aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlv
bihvYmplY3RTdG9yZU5hbWUpLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSkuYWRkKHt9KTsK
K1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNl
cHRpb24uUkVBRF9PTkxZX0VSUgora2V5MSA9IDE7CitrZXkyID0gMjsKK0V4cGVjdGluZyBleGNl
cHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihbb2JqZWN0U3RvcmVOYW1lXSkub2JqZWN0U3RvcmUo
b2JqZWN0U3RvcmVOYW1lKS5wdXQoe30sIGtleTEpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93
bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitFeHBl
Y3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24ob2JqZWN0U3RvcmVOYW1lKS5vYmpl
Y3RTdG9yZShvYmplY3RTdG9yZU5hbWUpLnB1dCh7fSwga2V5Mik7CitQQVNTIEV4Y2VwdGlvbiB3
YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9F
UlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihbb2JqZWN0U3RvcmVO
YW1lXSkub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKS5wdXQoe30sIGtleTEpOworUEFTUyBF
eGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5S
RUFEX09OTFlfRVJSCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24ob2Jq
ZWN0U3RvcmVOYW1lKS5vYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUpLnB1dCh7fSwga2V5MSk7
CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhj
ZXB0aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2Fj
dGlvbihbb2JqZWN0U3RvcmVOYW1lXSkub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKS5kZWxl
dGUoa2V5MSk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRh
dGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBk
Yi50cmFuc2FjdGlvbihvYmplY3RTdG9yZU5hbWUpLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFt
ZSkuZGVsZXRlKGtleTIpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBp
cyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogdGhpcmRfcGFydHkvV2ViS2l0
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNhY3Rp
b25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNhY3Rpb25zLmh0bWwJKHJldmlz
aW9uIDApCisrKyB0aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9yaWdpbmFsIHRlc3Q6IGh0dHA6
Ly9teHIubW96aWxsYS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9tL2luZGV4ZWREQi90ZXN0L3Rl
c3RfcmVhZG9ubHlfdHJhbnNhY3Rpb25zLmh0bWwKKyAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0
OgorICAgICIgQW55IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8gdGhlIFB1YmxpYyBEb21haW4u
CisgICAgICBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAv
ICIKKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rp
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgaW5kZXhlZERCID0gZXZhbEFuZExvZygiaW5kZXhlZERCID0g
d2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJ
bmRleGVkREI7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhlZERCID09IG51bGwiKTsKKyAg
ICBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IGV2YWxBbmRMb2coIklEQkRhdGFiYXNlRXhjZXB0aW9u
ID0gd2luZG93LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFz
ZUV4Y2VwdGlvbjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9
PSBudWxsIik7CisKKyAgICBuYW1lID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOworICAgIGRl
c2NyaXB0aW9uID0gIk15IFRlc3QgRGF0YWJhc2UiOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikiKTsKKyAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcygpCit7CisgICAgZGIgPSBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlQW5kVGVzdFRyYW5zYWN0aW9uczsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY2xlYW5EYXRh
YmFzZUFuZFRlc3RUcmFuc2FjdGlvbnMoKQoreworICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhk
Yik7CisKKyAgICBvYmplY3RTdG9yZU5hbWUgPSAidGVzdCBzdG9yZSI7CisgICAgb2JqZWN0U3Rv
cmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVj
dFN0b3JlTmFtZSwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtvYmplY3RTdG9yZU5hbWVdKS5vYmplY3RTdG9y
ZShvYmplY3RTdG9yZU5hbWUpLmFkZCh7fSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihv
YmplY3RTdG9yZU5hbWUpLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSkuYWRkKHt9KTsiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOworICAgIGtleTEgPSBldmFsQW5k
TG9nKCJrZXkxID0gMTsiKTsKKyAgICBrZXkyID0gZXZhbEFuZExvZygia2V5MiA9IDI7Iik7Cisg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24oW29iamVjdFN0b3JlTmFt
ZV0pLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSkucHV0KHt9LCBrZXkxKTsiLCAiSURCRGF0
YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImRiLnRyYW5zYWN0aW9uKG9iamVjdFN0b3JlTmFtZSkub2JqZWN0U3RvcmUob2JqZWN0U3Rv
cmVOYW1lKS5wdXQoe30sIGtleTIpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlf
RVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24oW29iamVj
dFN0b3JlTmFtZV0pLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSkucHV0KHt9LCBrZXkxKTsi
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKG9iamVjdFN0b3JlTmFtZSkub2JqZWN0U3RvcmUo
b2JqZWN0U3RvcmVOYW1lKS5wdXQoe30sIGtleTEpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5S
RUFEX09OTFlfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rp
b24oW29iamVjdFN0b3JlTmFtZV0pLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSkuZGVsZXRl
KGtleTEpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSIik7CisgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24ob2JqZWN0U3RvcmVOYW1lKS5vYmpl
Y3RTdG9yZShvYmplY3RTdG9yZU5hbWUpLmRlbGV0ZShrZXkyKTsiLCAiSURCRGF0YWJhc2VFeGNl
cHRpb24uUkVBRF9PTkxZX0VSUiIpOworICAgIGRvbmUoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CisKK3Rlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CisKSW5kZXg6IHRoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHRoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
dGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVhZHdyaXRlLXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzggQEAKK1Rlc3QgSW5kZXhlZERCJ3MgcmVhZC93cml0ZSB0cmFuc2FjdGlvbnMKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIg
fHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOworUEFTUyBp
bmRleGVkREIgPT0gbnVsbCBpcyBmYWxzZQorSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cu
SURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9u
OworUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIGlzIGZhbHNlCitJREJUcmFuc2Fj
dGlvbiA9IHdpbmRvdy5JREJUcmFuc2FjdGlvbiB8fCB3aW5kb3cud2Via2l0SURCVHJhbnNhY3Rp
b247CitQQVNTIElEQlRyYW5zYWN0aW9uID09IG51bGwgaXMgZmFsc2UKK2luZGV4ZWREQi5vcGVu
KG5hbWUsIGRlc2NyaXB0aW9uKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CityZXF1ZXN0ID0g
ZGIuc2V0VmVyc2lvbignMScpCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorb2JqZWN0U3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9
KTsKK3JlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihbb3NOYW1lXSwgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5hZGQoe30pOworUEFTUyBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb24ubW9kZSBpcyBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFCitrZXkxID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKK3JlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkuYWRkKHt9KTsKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RQora2V5MiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CityZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24o
W29zTmFtZV0sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSku
cHV0KHt9LCBrZXkxKTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUgaXMgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURQorcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKG9zTmFtZSwg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5wdXQoe30sIGtl
eTIpOworUEFTUyBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSBpcyBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFCityZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24oW29zTmFtZV0sIElEQlRyYW5z
YWN0aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsKK1BB
U1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURQorcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKG9zTmFtZSwgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5wdXQoe30sIGtleTEpOworUEFTUyBldmVudC50
YXJnZXQudHJhbnNhY3Rpb24ubW9kZSBpcyBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFCityZXF1
ZXN0ID0gZGIudHJhbnNhY3Rpb24oW29zTmFtZV0sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
Lm9iamVjdFN0b3JlKG9zTmFtZSkuZGVsZXRlKGtleTEpOworUEFTUyBldmVudC50YXJnZXQudHJh
bnNhY3Rpb24ubW9kZSBpcyBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFCityZXF1ZXN0ID0gZGIu
dHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9y
ZShvc05hbWUpLmRlbGV0ZShrZXkyKTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1v
ZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IHRoaXJkX3BhcnR5L1dlYktpdC9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSB0aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3JpdGUtdHJhbnNhY3Rpb25zLmh0bWwJKHJldmlzaW9u
IDApCisrKyB0aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZWFkd3JpdGUtdHJhbnNhY3Rpb25zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KKyAgb3JpZ2luYWwgdGVzdDogaHR0cDov
L214ci5tb3ppbGxhLm9yZy9tb3ppbGxhMi4wL3NvdXJjZS9kb20vaW5kZXhlZERCL3Rlc3QvdGVz
dF9yZWFkb25seV90cmFuc2FjdGlvbnMuaHRtbAorICBsaWNlbnNlIG9mIG9yaWdpbmFsIHRlc3Q6
CisgICAgIiBBbnkgY29weXJpZ2h0IGlzIGRlZGljYXRlZCB0byB0aGUgUHVibGljIERvbWFpbi4K
KyAgICAgIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8g
IgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlv
bi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIncyByZWFkL3dyaXRlIHRyYW5zYWN0aW9ucyIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIGluZGV4ZWREQiA9IGV2YWxBbmRMb2coImluZGV4ZWREQiA9
IHdpbmRvdy5pbmRleGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96
SW5kZXhlZERCOyIpOworICAgIHNob3VsZEJlRmFsc2UoImluZGV4ZWREQiA9PSBudWxsIik7Cisg
ICAgSURCRGF0YWJhc2VFeGNlcHRpb24gPSBldmFsQW5kTG9nKCJJREJEYXRhYmFzZUV4Y2VwdGlv
biA9IHdpbmRvdy5JREJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Via2l0SURCRGF0YWJh
c2VFeGNlcHRpb247Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiSURCRGF0YWJhc2VFeGNlcHRpb24g
PT0gbnVsbCIpOworICAgIElEQlRyYW5zYWN0aW9uID0gZXZhbEFuZExvZygiSURCVHJhbnNhY3Rp
b24gPSB3aW5kb3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9u
OyIpOworICAgIHNob3VsZEJlRmFsc2UoIklEQlRyYW5zYWN0aW9uID09IG51bGwiKTsKKworICAg
IG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CisgICAgZGVzY3JpcHRpb24gPSAiTXkg
VGVzdCBEYXRhYmFzZSI7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KG5hbWUsIGRlc2NyaXB0aW9uKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nl
c3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisK
K2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdCIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0
YWJhc2VBbmRBZGQ7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Cit9CisKK2Z1bmN0aW9uIGNsZWFuRGF0YWJhc2VBbmRBZGQoKQoreworICAgIGRlbGV0ZUFs
bE9iamVjdFN0b3JlcyhkYik7CisKKyAgICBvc05hbWUgPSAidGVzdCBzdG9yZSI7CisgICAgb2Jq
ZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KG9zTmFtZSwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24oW29zTmFtZV0sIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkuYWRkKHt9KTsiKTsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IHBvc3RBZGQ7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBvc3RBZGQoKQoreworICAgIHNob3VsZEJlKCJl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
Iik7CisgICAga2V5MSA9IGV2YWxBbmRMb2coImtleTEgPSBldmVudC50YXJnZXQucmVzdWx0OyIp
OworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NO
YW1lLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLmFkZCh7
fSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0QWRkMjsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gcG9zdEFkZDIo
KQoreworICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFIik7CisgICAga2V5MiA9IGV2YWxBbmRMb2coImtleTIgPSBl
dmVudC50YXJnZXQucmVzdWx0OyIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gZGIudHJhbnNhY3Rpb24oW29zTmFtZV0sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9i
amVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IHBvc3RQdXQ7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Cit9CisKK2Z1bmN0aW9uIHBvc3RQdXQoKQoreworICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFIik7CisgICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUsIElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXky
KTsiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHBvc3RQdXQyOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBwb3N0UHV0Migp
Cit7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIiwgIklEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVz
dCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5v
YmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBwb3N0UHV0MzsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gcG9zdFB1dDMoKQoreworICAgIHNob3VsZEJlKCJldmVudC50
YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFIik7Cisg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBr
ZXkxKTsiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHBvc3RQdXQ0OworICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBwb3N0UHV0
NCgpCit7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIiwgIklE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVx
dWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KS5vYmplY3RTdG9yZShvc05hbWUpLmRlbGV0ZShrZXkxKTsiKTsKKyAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHBvc3REZWxldGU7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBvc3REZWxldGUoKQoreworICAgIHNob3VsZEJlKCJl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
Iik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihv
c05hbWUsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkuZGVs
ZXRlKGtleTIpOyIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gcG9zdERlbGV0ZTI7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IHBvc3REZWxldGUyKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIGRvbmUoKTsKK30KKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3Rlc3QoKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91214</attachid>
            <date>2011-04-26 19:38:36 -0700</date>
            <delta_ts>2011-04-27 08:33:09 -0700</delta_ts>
            <desc>rebase webkit directory</desc>
            <filename>bug-59465c.patch</filename>
            <type>text/plain</type>
            <size>13846</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg0OTE5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQtMjYgIE1hcmsgUGlsZ3JpbSAgPHBp
bGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcnQgTW96aWxsYSdzIEluZGV4ZWREQiB0ZXN0czogcmVhZG9ubHkgYW5k
IHJlYWQvd3JpdGUgdHJhbnNhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01OTQ2NQorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYTogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25s
eS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jl
YWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMTEtMDQtMjYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5z
dGVpbi4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9u
bHktdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDQgQEAKK1Rlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8
IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK1BBU1MgaW5k
ZXhlZERCID09IG51bGwgaXMgZmFsc2UKK0lEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklE
QkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsK
K1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQoraW5kZXhlZERCLm9w
ZW4obmFtZSwgZGVzY3JpcHRpb24pCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9zTmFtZSwgeyBhdXRvSW5jcmVtZW50OiB0cnVl
IH0pOworRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5v
YmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGlu
ZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0b3JlKG9zTmFt
ZSkuYWRkKHt9KTsKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURC
RGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUgora2V5MSA9IDE7CitrZXkyID0gMjsKK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0U3Rv
cmUob3NOYW1lKS5wdXQoe30sIGtleTEpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BB
U1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitFeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUp
LnB1dCh7fSwga2V5Mik7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlz
IElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24g
ZnJvbSBkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0U3RvcmUob3NOYW1lKS5wdXQoe30s
IGtleTEpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRh
YmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIu
dHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7CitQ
QVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0
aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlv
bihbb3NOYW1lXSkub2JqZWN0U3RvcmUob3NOYW1lKS5kZWxldGUoa2V5MSk7CitQQVNTIEV4Y2Vw
dGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihvc05hbWUp
Lm9iamVjdFN0b3JlKG9zTmFtZSkuZGVsZXRlKGtleTIpOworUEFTUyBFeGNlcHRpb24gd2FzIHRo
cm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlv
bnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9y
aWdpbmFsIHRlc3Q6IGh0dHA6Ly9teHIubW96aWxsYS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9t
L2luZGV4ZWREQi90ZXN0L3Rlc3RfcmVhZG9ubHlfdHJhbnNhY3Rpb25zLmh0bWwKKyAgbGljZW5z
ZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIgQW55IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8g
dGhlIFB1YmxpYyBEb21haW4uCisgICAgICBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJs
aWNkb21haW4vemVyby8xLjAvICIKKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zIik7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaW5kZXhlZERCID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhl
ZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREI7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhl
ZERCID09IG51bGwiKTsKKyAgICBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IGV2YWxBbmRMb2coIklE
QkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRv
dy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJE
YXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIik7CisKKyAgICBuYW1lID0gd2luZG93LmxvY2F0aW9u
LnBhdGhuYW1lOworICAgIGRlc2NyaXB0aW9uID0gIk15IFRlc3QgRGF0YWJhc2UiOworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikiKTsK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Cit7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKwor
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjbGVhbkRhdGFi
YXNlKCkKK3sKKyAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworCisgICAgb3NOYW1lID0g
InRlc3Qgc3RvcmUiOworICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsi
KTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihbb3NOYW1lXSku
b2JqZWN0U3RvcmUob3NOYW1lKS5hZGQoe30pOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFE
X09OTFlfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24o
b3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0
aW9uLlJFQURfT05MWV9FUlIiKTsKKyAgICBrZXkxID0gZXZhbEFuZExvZygia2V5MSA9IDE7Iik7
CisgICAga2V5MiA9IGV2YWxBbmRMb2coImtleTIgPSAyOyIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUpLnB1
dCh7fSwga2V5MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKKyAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0
b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkyKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9P
TkxZX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtv
c05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7IiwgIklEQkRhdGFiYXNl
RXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJk
Yi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsi
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUp
LmRlbGV0ZShrZXkxKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKG9zTmFtZSkub2JqZWN0
U3RvcmUob3NOYW1lKS5kZWxldGUoa2V5Mik7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIiKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiBM
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlv
bnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10
cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitU
ZXN0IEluZGV4ZWREQidzIHJlYWQvd3JpdGUgdHJhbnNhY3Rpb25zCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53
ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK1BBU1MgaW5kZXhlZERCID09
IG51bGwgaXMgZmFsc2UKK0lEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNl
RXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsKK1BBU1MgSURC
RGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQorSURCVHJhbnNhY3Rpb24gPSB3aW5k
b3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uOworUEFTUyBJ
REJUcmFuc2FjdGlvbiA9PSBudWxsIGlzIGZhbHNlCitpbmRleGVkREIub3BlbihuYW1lLCBkZXNj
cmlwdGlvbikKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorcmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJzEnKQorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK29iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUob3NOYW1lLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CityZXF1ZXN0
ID0gZGIudHJhbnNhY3Rpb24oW29zTmFtZV0sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9i
amVjdFN0b3JlKG9zTmFtZSkuYWRkKHt9KTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQora2V5MSA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CityZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7CitQQVNTIGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUKK2tleTIgPSBl
dmVudC50YXJnZXQucmVzdWx0OworcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5
MSk7CitQQVNTIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUKK3JlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkyKTsKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RQorcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7CitQQVNTIGV2ZW50LnRh
cmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUKK3JlcXVl
c3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9i
amVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5z
YWN0aW9uLm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQorcmVxdWVzdCA9IGRiLnRy
YW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9y
ZShvc05hbWUpLmRlbGV0ZShrZXkxKTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1v
ZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQorcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9u
KG9zTmFtZSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5k
ZWxldGUoa2V5Mik7CitQQVNTIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVh
ZHdyaXRlLXRyYW5zYWN0aW9ucy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzMSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9yaWdpbmFsIHRlc3Q6IGh0dHA6Ly9teHIubW96aWxs
YS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9tL2luZGV4ZWREQi90ZXN0L3Rlc3RfcmVhZG9ubHlf
dHJhbnNhY3Rpb25zLmh0bWwKKyAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIgQW55
IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8gdGhlIFB1YmxpYyBEb21haW4uCisgICAgICBodHRw
Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvICIKKy0tPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZC93
cml0ZSB0cmFuc2FjdGlvbnMiKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBpbmRleGVkREIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5k
ZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsi
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJpbmRleGVkREIgPT0gbnVsbCIpOworICAgIElEQkRhdGFi
YXNlRXhjZXB0aW9uID0gZXZhbEFuZExvZygiSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cu
SURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9u
OyIpOworICAgIHNob3VsZEJlRmFsc2UoIklEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwiKTsK
KyAgICBJREJUcmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9uID0gd2luZG93
LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbjsiKTsKKyAgICBz
aG91bGRCZUZhbHNlKCJJREJUcmFuc2FjdGlvbiA9PSBudWxsIik7CisKKyAgICBuYW1lID0gd2lu
ZG93LmxvY2F0aW9uLnBhdGhuYW1lOworICAgIGRlc2NyaXB0aW9uID0gIk15IFRlc3QgRGF0YWJh
c2UiOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNj
cmlwdGlvbikiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBv
cGVuU3VjY2VzcygpCit7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignMScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBjbGVhbkRhdGFiYXNlKCkKK3sKKyAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworCisg
ICAgb3NOYW1lID0gInRlc3Qgc3RvcmUiOworICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygi
b2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVu
dDogdHJ1ZSB9KTsiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnRy
YW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9y
ZShvc05hbWUpLmFkZCh7fSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0QWRkOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5j
dGlvbiBwb3N0QWRkKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIGtleTEgPSBldmFsQW5k
TG9nKCJrZXkxID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygicmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKG9zTmFtZSwgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5hZGQoe30pOyIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gcG9zdEFkZDI7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBvc3RBZGQyKCkKK3sKKyAgICBzaG91bGRCZSgiZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIp
OworICAgIGtleTIgPSBldmFsQW5kTG9nKCJrZXkyID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsK
KyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05h
bWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7
fSwga2V5MSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0UHV0OworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBwb3N0
UHV0KCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAi
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJy
ZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5Mik7Iik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBwb3N0UHV0MjsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKK30KKworZnVuY3Rpb24gcG9zdFB1dDIoKQoreworICAgIHNob3VsZEJlKCJldmVu
dC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFIik7
CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihbb3NO
YW1lXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5wdXQo
e30sIGtleTEpOyIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gcG9zdFB1dDM7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBv
c3RQdXQzKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUi
LCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7Iik7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBwb3N0UHV0NDsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gcG9zdFB1dDQoKQoreworICAgIHNob3VsZEJlKCJl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
Iik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihb
b3NOYW1lXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5k
ZWxldGUoa2V5MSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0RGVsZXRlOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBwb3N0RGVsZXRlKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLmRlbGV0ZShrZXkyKTsiKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IHBvc3REZWxldGUyOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBwb3N0RGVsZXRlMigpCit7CisgICAg
c2hvdWxkQmUoImV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIiwgIklEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUiKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91287</attachid>
            <date>2011-04-27 08:33:09 -0700</date>
            <delta_ts>2011-04-28 05:58:36 -0700</delta_ts>
            <desc>nits addressed once again (regression in previous patch)</desc>
            <filename>bug-59465d.patch</filename>
            <type>text/plain</type>
            <size>13846</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg0OTE5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQtMjYgIE1hcmsgUGlsZ3JpbSAgPHBp
bGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcnQgTW96aWxsYSdzIEluZGV4ZWREQiB0ZXN0czogcmVhZG9ubHkgYW5k
IHJlYWQvd3JpdGUgdHJhbnNhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01OTQ2NQorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYTogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25s
eS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jl
YWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMTEtMDQtMjYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5z
dGVpbi4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9u
bHktdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDQgQEAKK1Rlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8
IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK1BBU1MgaW5k
ZXhlZERCID09IG51bGwgaXMgZmFsc2UKK0lEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklE
QkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsK
K1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQoraW5kZXhlZERCLm9w
ZW4obmFtZSwgZGVzY3JpcHRpb24pCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9zTmFtZSwgeyBhdXRvSW5jcmVtZW50OiB0cnVl
IH0pOworRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5v
YmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGlu
ZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0b3JlKG9zTmFt
ZSkuYWRkKHt9KTsKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURC
RGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUgora2V5MSA9IDE7CitrZXkyID0gMjsKK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0U3Rv
cmUob3NOYW1lKS5wdXQoe30sIGtleTEpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BB
U1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitFeHBlY3Rpbmcg
ZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUp
LnB1dCh7fSwga2V5Mik7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlz
IElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24g
ZnJvbSBkYi50cmFuc2FjdGlvbihbb3NOYW1lXSkub2JqZWN0U3RvcmUob3NOYW1lKS5wdXQoe30s
IGtleTEpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRh
YmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIu
dHJhbnNhY3Rpb24ob3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7CitQ
QVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0
aW9uLlJFQURfT05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlv
bihbb3NOYW1lXSkub2JqZWN0U3RvcmUob3NOYW1lKS5kZWxldGUoa2V5MSk7CitQQVNTIEV4Y2Vw
dGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbihvc05hbWUp
Lm9iamVjdFN0b3JlKG9zTmFtZSkuZGVsZXRlKGtleTIpOworUEFTUyBFeGNlcHRpb24gd2FzIHRo
cm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlv
bnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlvbnMuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9y
aWdpbmFsIHRlc3Q6IGh0dHA6Ly9teHIubW96aWxsYS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9t
L2luZGV4ZWREQi90ZXN0L3Rlc3RfcmVhZG9ubHlfdHJhbnNhY3Rpb25zLmh0bWwKKyAgbGljZW5z
ZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIgQW55IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8g
dGhlIFB1YmxpYyBEb21haW4uCisgICAgICBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJs
aWNkb21haW4vemVyby8xLjAvICIKKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZG9ubHkgdHJhbnNhY3Rpb25zIik7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaW5kZXhlZERCID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhl
ZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREI7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhl
ZERCID09IG51bGwiKTsKKyAgICBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IGV2YWxBbmRMb2coIklE
QkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRv
dy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJE
YXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIik7CisKKyAgICBuYW1lID0gd2luZG93LmxvY2F0aW9u
LnBhdGhuYW1lOworICAgIGRlc2NyaXB0aW9uID0gIk15IFRlc3QgRGF0YWJhc2UiOworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikiKTsK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Cit7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKwor
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7
CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjbGVhbkRhdGFi
YXNlKCkKK3sKKyAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworCisgICAgb3NOYW1lID0g
InRlc3Qgc3RvcmUiOworICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsi
KTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihbb3NOYW1lXSku
b2JqZWN0U3RvcmUob3NOYW1lKS5hZGQoe30pOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFE
X09OTFlfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24o
b3NOYW1lKS5vYmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0
aW9uLlJFQURfT05MWV9FUlIiKTsKKyAgICBrZXkxID0gZXZhbEFuZExvZygia2V5MSA9IDE7Iik7
CisgICAga2V5MiA9IGV2YWxBbmRMb2coImtleTIgPSAyOyIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUpLnB1
dCh7fSwga2V5MSk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKKyAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0
b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkyKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9P
TkxZX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtv
c05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7IiwgIklEQkRhdGFiYXNl
RXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJk
Yi50cmFuc2FjdGlvbihvc05hbWUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsi
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RTdG9yZShvc05hbWUp
LmRlbGV0ZShrZXkxKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKG9zTmFtZSkub2JqZWN0
U3RvcmUob3NOYW1lKS5kZWxldGUoa2V5Mik7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIiKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiBM
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlv
bnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVhZHdyaXRlLXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10
cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitU
ZXN0IEluZGV4ZWREQidzIHJlYWQvd3JpdGUgdHJhbnNhY3Rpb25zCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53
ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK1BBU1MgaW5kZXhlZERCID09
IG51bGwgaXMgZmFsc2UKK0lEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNl
RXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsKK1BBU1MgSURC
RGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQorSURCVHJhbnNhY3Rpb24gPSB3aW5k
b3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uOworUEFTUyBJ
REJUcmFuc2FjdGlvbiA9PSBudWxsIGlzIGZhbHNlCitpbmRleGVkREIub3BlbihuYW1lLCBkZXNj
cmlwdGlvbikKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorcmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJzEnKQorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK29iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUob3NOYW1lLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CityZXF1ZXN0
ID0gZGIudHJhbnNhY3Rpb24oW29zTmFtZV0sIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9i
amVjdFN0b3JlKG9zTmFtZSkuYWRkKHt9KTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQora2V5MSA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CityZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLmFkZCh7fSk7CitQQVNTIGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUKK2tleTIgPSBl
dmVudC50YXJnZXQucmVzdWx0OworcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5
MSk7CitQQVNTIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUKK3JlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpLm9iamVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkyKTsKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RQorcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7CitQQVNTIGV2ZW50LnRh
cmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUKK3JlcXVl
c3QgPSBkYi50cmFuc2FjdGlvbihvc05hbWUsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpLm9i
amVjdFN0b3JlKG9zTmFtZSkucHV0KHt9LCBrZXkxKTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5z
YWN0aW9uLm1vZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQorcmVxdWVzdCA9IGRiLnRy
YW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9y
ZShvc05hbWUpLmRlbGV0ZShrZXkxKTsKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1v
ZGUgaXMgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQorcmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9u
KG9zTmFtZSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5k
ZWxldGUoa2V5Mik7CitQQVNTIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIGlzIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVh
ZHdyaXRlLXRyYW5zYWN0aW9ucy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzMSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9yaWdpbmFsIHRlc3Q6IGh0dHA6Ly9teHIubW96aWxs
YS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9tL2luZGV4ZWREQi90ZXN0L3Rlc3RfcmVhZG9ubHlf
dHJhbnNhY3Rpb25zLmh0bWwKKyAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIgQW55
IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8gdGhlIFB1YmxpYyBEb21haW4uCisgICAgICBodHRw
Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvICIKKy0tPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZC93
cml0ZSB0cmFuc2FjdGlvbnMiKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBpbmRleGVkREIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5k
ZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsi
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJpbmRleGVkREIgPT0gbnVsbCIpOworICAgIElEQkRhdGFi
YXNlRXhjZXB0aW9uID0gZXZhbEFuZExvZygiSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cu
SURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9u
OyIpOworICAgIHNob3VsZEJlRmFsc2UoIklEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwiKTsK
KyAgICBJREJUcmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9uID0gd2luZG93
LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbjsiKTsKKyAgICBz
aG91bGRCZUZhbHNlKCJJREJUcmFuc2FjdGlvbiA9PSBudWxsIik7CisKKyAgICBuYW1lID0gd2lu
ZG93LmxvY2F0aW9uLnBhdGhuYW1lOworICAgIGRlc2NyaXB0aW9uID0gIk15IFRlc3QgRGF0YWJh
c2UiOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNj
cmlwdGlvbikiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBv
cGVuU3VjY2VzcygpCit7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignMScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBjbGVhbkRhdGFiYXNlKCkKK3sKKyAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworCisg
ICAgb3NOYW1lID0gInRlc3Qgc3RvcmUiOworICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygi
b2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVu
dDogdHJ1ZSB9KTsiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnRy
YW5zYWN0aW9uKFtvc05hbWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9y
ZShvc05hbWUpLmFkZCh7fSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0QWRkOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5j
dGlvbiBwb3N0QWRkKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIGtleTEgPSBldmFsQW5k
TG9nKCJrZXkxID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygicmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKG9zTmFtZSwgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5hZGQoe30pOyIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gcG9zdEFkZDI7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBvc3RBZGQyKCkKK3sKKyAgICBzaG91bGRCZSgiZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIp
OworICAgIGtleTIgPSBldmFsQW5kTG9nKCJrZXkyID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsK
KyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKFtvc05h
bWVdLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7
fSwga2V5MSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0UHV0OworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBwb3N0
UHV0KCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUiLCAi
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJy
ZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5Mik7Iik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBwb3N0UHV0MjsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKK30KKworZnVuY3Rpb24gcG9zdFB1dDIoKQoreworICAgIHNob3VsZEJlKCJldmVu
dC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFIik7
CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihbb3NO
YW1lXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5wdXQo
e30sIGtleTEpOyIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gcG9zdFB1dDM7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBv
c3RQdXQzKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUi
LCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKS5vYmplY3RTdG9yZShvc05hbWUpLnB1dCh7fSwga2V5MSk7Iik7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBwb3N0UHV0NDsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gcG9zdFB1dDQoKQoreworICAgIHNob3VsZEJlKCJl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSIsICJJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
Iik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi50cmFuc2FjdGlvbihb
b3NOYW1lXSwgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkub2JqZWN0U3RvcmUob3NOYW1lKS5k
ZWxldGUoa2V5MSk7Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0RGVsZXRlOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlv
biBwb3N0RGVsZXRlKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Lm1vZGUiLCAiSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSIpOworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gZGIudHJhbnNhY3Rpb24ob3NOYW1lLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKS5vYmplY3RTdG9yZShvc05hbWUpLmRlbGV0ZShrZXkyKTsiKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IHBvc3REZWxldGUyOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBwb3N0RGVsZXRlMigpCit7CisgICAg
c2hvdWxkQmUoImV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5tb2RlIiwgIklEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUiKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>