Modified: poi/site/publish/changes.html
URL: 
http://svn.apache.org/viewvc/poi/site/publish/changes.html?rev=1800210&r1=1800209&r2=1800210&view=diff
==============================================================================
--- poi/site/publish/changes.html (original)
+++ poi/site/publish/changes.html Wed Jun 28 23:22:37 2017
@@ -264,6 +264,32 @@ if (VERSION > 3) {
     
 
     
+<a name="3.17-beta2"></a>
+<div class="h3">
+<h3>Version 3.17-beta2 (2017-09-??)<a title="Permanent link" 
class="headerlink" href="#3.17-beta2">#</a>
+</h3>
+</div>
+       
+<a name="Changes"></a>
+<div class="h4">
+<h4>Changes<a title="Permanent link" class="headerlink" href="#Changes">#</a>
+</h4>
+</div>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+<thead>
+<tr class="b">
+<th>Type</th><th>Bug</th><th style="min-width: 100px;">Module</th><th 
style="width: 100%;">Description</th>
+</tr>
+</thead>
+<tbody>
+               
+<tr class="b">
+<td style="text-align: center;"><img class="icon" alt="fix" 
src="skin/images/fix.png" title="fix"></td><td><a 
href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61182";>61182</a></td><td>OPC</td><td>Invalid
 signature created for streamed xslx file</td>
+</tr>
+       
+</tbody>
+</table>
+    
 
     
 <a name="3.17-beta1"></a>
@@ -291,9 +317,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes"></a>
+<a name="Changes-N10054"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" href="#Changes">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10054">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -431,9 +457,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N1020E"></a>
+<a name="Summary-N10238"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N1020E">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N10238">#</a>
 </h4>
 </div>
 <ul>
@@ -446,9 +472,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N1021E"></a>
+<a name="Changes-N10248"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1021E">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10248">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -514,9 +540,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N102E8"></a>
+<a name="Summary-N10312"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N102E8">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N10312">#</a>
 </h4>
 </div>
 <ul>
@@ -529,9 +555,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N102F8"></a>
+<a name="Changes-N10322"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N102F8">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10322">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -657,9 +683,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N104B4"></a>
+<a name="Summary-N104DE"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N104B4">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N104DE">#</a>
 </h4>
 </div>
 <ul>
@@ -676,9 +702,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N104CA"></a>
+<a name="Changes-N104F4"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N104CA">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N104F4">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -868,9 +894,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N1077C"></a>
+<a name="Summary-N107A6"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N1077C">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N107A6">#</a>
 </h4>
 </div>
 <ul>
@@ -893,9 +919,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N1079C"></a>
+<a name="Changes-N107C6"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1079C">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N107C6">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -1101,9 +1127,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N10A8D"></a>
+<a name="Summary-N10AB7"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N10A8D">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N10AB7">#</a>
 </h4>
 </div>
 <ul>
@@ -1120,9 +1146,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N10AAF"></a>
+<a name="Changes-N10AD9"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10AAF">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10AD9">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -1316,9 +1342,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N10D65"></a>
+<a name="Summary-N10D8F"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N10D65">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N10D8F">#</a>
 </h4>
 </div>
 <ul>
@@ -1335,9 +1361,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N10D87"></a>
+<a name="Changes-N10DB1"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10D87">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10DB1">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -1443,9 +1469,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N10EDC"></a>
+<a name="Summary-N10F06"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N10EDC">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N10F06">#</a>
 </h4>
 </div>
 <ul>
@@ -1471,9 +1497,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N10F0A"></a>
+<a name="Changes-N10F34"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10F0A">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N10F34">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -1651,9 +1677,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1116B"></a>
+<a name="Changes-N11195"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1116B">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11195">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -1907,9 +1933,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N114E9"></a>
+<a name="Summary-N11513"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N114E9">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N11513">#</a>
 </h4>
 </div>
 <ul>
@@ -1926,9 +1952,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N114FC"></a>
+<a name="Changes-N11526"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N114FC">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11526">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -2114,9 +2140,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1177A"></a>
+<a name="Changes-N117A4"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1177A">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N117A4">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -2226,9 +2252,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N118DE"></a>
+<a name="Summary-N11908"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N118DE">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N11908">#</a>
 </h4>
 </div>
 <ul>
@@ -2241,9 +2267,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N11906"></a>
+<a name="Changes-N11930"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11906">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11930">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -2373,9 +2399,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N11AA9"></a>
+<a name="Changes-N11AD3"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11AA9">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11AD3">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -2534,9 +2560,9 @@ if (VERSION > 3) {
 </div>
 
       
-<a name="Summary-N11CAF"></a>
+<a name="Summary-N11CD9"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N11CAF">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N11CD9">#</a>
 </h4>
 </div>
 <ul>
@@ -2619,9 +2645,9 @@ if (VERSION > 3) {
 </ul>
 
       
-<a name="Changes-N11D2C"></a>
+<a name="Changes-N11D56"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11D2C">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11D56">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -2699,9 +2725,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N11E09"></a>
+<a name="Changes-N11E33"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11E09">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11E33">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -2843,9 +2869,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N11FDD"></a>
+<a name="Changes-N12007"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N11FDD">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12007">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -2887,9 +2913,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N1203F"></a>
+<a name="Summary-N12069"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N1203F">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N12069">#</a>
 </h4>
 </div>
 <ul>
@@ -2917,9 +2943,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N12055"></a>
+<a name="Changes-N1207F"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12055">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1207F">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -2949,9 +2975,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1208D"></a>
+<a name="Changes-N120B7"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1208D">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N120B7">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -3241,9 +3267,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N12485"></a>
+<a name="Changes-N124AF"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12485">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N124AF">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -3417,9 +3443,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N126D6"></a>
+<a name="Changes-N12700"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N126D6">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12700">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -3509,9 +3535,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N127E6"></a>
+<a name="Changes-N12810"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N127E6">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12810">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -3681,9 +3707,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N12A28"></a>
+<a name="Changes-N12A52"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12A28">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12A52">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -4037,9 +4063,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N12F1B"></a>
+<a name="Summary-N12F45"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N12F1B">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N12F45">#</a>
 </h4>
 </div>
 <ul>
@@ -4069,9 +4095,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N12F3D"></a>
+<a name="Changes-N12F67"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12F3D">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N12F67">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -4337,9 +4363,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N132DB"></a>
+<a name="Changes-N13305"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N132DB">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N13305">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -4553,9 +4579,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N135A5"></a>
+<a name="Changes-N135CF"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N135A5">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N135CF">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -4897,9 +4923,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N13A2D"></a>
+<a name="Changes-N13A57"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N13A2D">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N13A57">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -5061,9 +5087,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N13C30"></a>
+<a name="Changes-N13C5A"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N13C30">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N13C5A">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -5173,9 +5199,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N13D85"></a>
+<a name="Changes-N13DAF"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N13D85">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N13DAF">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -5353,9 +5379,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Summary-N13FDC"></a>
+<a name="Summary-N14006"></a>
 <div class="h4">
-<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N13FDC">#</a>
+<h4>Summary<a title="Permanent link" class="headerlink" 
href="#Summary-N14006">#</a>
 </h4>
 </div>
 <ul>
@@ -5438,9 +5464,9 @@ if (VERSION > 3) {
       
 </ul>
       
-<a name="Changes-N1404C"></a>
+<a name="Changes-N14076"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1404C">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N14076">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -5498,9 +5524,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N140EA"></a>
+<a name="Changes-N14114"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N140EA">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N14114">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -5678,9 +5704,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1432F"></a>
+<a name="Changes-N14359"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1432F">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N14359">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -5806,9 +5832,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N144BE"></a>
+<a name="Changes-N144E8"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N144BE">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N144E8">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -6165,9 +6191,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N14985"></a>
+<a name="Changes-N149AF"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N14985">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N149AF">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -6326,9 +6352,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N14B94"></a>
+<a name="Changes-N14BBE"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N14B94">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N14BBE">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -6565,9 +6591,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N14EC7"></a>
+<a name="Changes-N14EF1"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N14EC7">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N14EF1">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -6812,9 +6838,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N15220"></a>
+<a name="Changes-N1524A"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15220">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1524A">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -6995,9 +7021,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N15480"></a>
+<a name="Changes-N154AA"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15480">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N154AA">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -7102,9 +7128,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N155CC"></a>
+<a name="Changes-N155F6"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N155CC">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N155F6">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -7137,9 +7163,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N15610"></a>
+<a name="Changes-N1563A"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15610">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1563A">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -7208,9 +7234,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N156CF"></a>
+<a name="Changes-N156F9"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N156CF">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N156F9">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -7259,9 +7285,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N15740"></a>
+<a name="Changes-N1576A"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15740">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1576A">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -7670,9 +7696,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N15CB2"></a>
+<a name="Changes-N15CDC"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15CB2">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15CDC">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -7797,9 +7823,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N15E46"></a>
+<a name="Changes-N15E70"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15E46">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15E70">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -7892,9 +7918,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N15F6B"></a>
+<a name="Changes-N15F95"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15F6B">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N15F95">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8212,9 +8238,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N163B5"></a>
+<a name="Changes-N163DF"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N163B5">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N163DF">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8323,9 +8349,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16513"></a>
+<a name="Changes-N1653D"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16513">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1653D">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8378,9 +8404,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1659F"></a>
+<a name="Changes-N165C9"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1659F">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N165C9">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8534,9 +8560,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16787"></a>
+<a name="Changes-N167B1"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16787">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N167B1">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8602,9 +8628,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16837"></a>
+<a name="Changes-N16861"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16837">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16861">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8646,9 +8672,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16893"></a>
+<a name="Changes-N168BD"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16893">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N168BD">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8674,9 +8700,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N168B9"></a>
+<a name="Changes-N168E3"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N168B9">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N168E3">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8710,9 +8736,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N168FA"></a>
+<a name="Changes-N16924"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N168FA">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16924">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8746,9 +8772,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16938"></a>
+<a name="Changes-N16962"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16938">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16962">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8786,9 +8812,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1698B"></a>
+<a name="Changes-N169B5"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1698B">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N169B5">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8818,9 +8844,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N169C0"></a>
+<a name="Changes-N169EA"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N169C0">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N169EA">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8846,9 +8872,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N169E6"></a>
+<a name="Changes-N16A10"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N169E6">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16A10">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -8898,9 +8924,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16A57"></a>
+<a name="Changes-N16A81"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16A57">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16A81">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9054,9 +9080,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16C60"></a>
+<a name="Changes-N16C8A"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16C60">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16C8A">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9099,9 +9125,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16CB6"></a>
+<a name="Changes-N16CE0"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16CB6">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16CE0">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9151,9 +9177,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16D18"></a>
+<a name="Changes-N16D42"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16D18">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16D42">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9246,9 +9272,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16E0A"></a>
+<a name="Changes-N16E34"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16E0A">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16E34">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9281,9 +9307,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16E48"></a>
+<a name="Changes-N16E72"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16E48">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16E72">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9334,9 +9360,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16EB6"></a>
+<a name="Changes-N16EE0"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16EB6">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16EE0">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9365,9 +9391,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16EE8"></a>
+<a name="Changes-N16F12"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16EE8">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16F12">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9396,9 +9422,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16F1A"></a>
+<a name="Changes-N16F44"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16F1A">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16F44">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9443,9 +9469,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16F7C"></a>
+<a name="Changes-N16FA6"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16F7C">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16FA6">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9470,9 +9496,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16FA2"></a>
+<a name="Changes-N16FCC"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16FA2">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16FCC">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9513,9 +9539,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N16FEC"></a>
+<a name="Changes-N17016"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N16FEC">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17016">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9540,9 +9566,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N17012"></a>
+<a name="Changes-N1703C"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17012">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1703C">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9567,9 +9593,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N17038"></a>
+<a name="Changes-N17062"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17038">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17062">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9594,9 +9620,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1705E"></a>
+<a name="Changes-N17088"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1705E">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17088">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9639,9 +9665,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N170A8"></a>
+<a name="Changes-N170D2"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N170A8">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N170D2">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9666,9 +9692,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N170CE"></a>
+<a name="Changes-N170F8"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N170CE">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N170F8">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9719,9 +9745,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N17130"></a>
+<a name="Changes-N1715A"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17130">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1715A">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9748,9 +9774,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N17156"></a>
+<a name="Changes-N17180"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17156">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17180">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9793,9 +9819,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N171AC"></a>
+<a name="Changes-N171D6"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N171AC">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N171D6">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9838,9 +9864,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N171F6"></a>
+<a name="Changes-N17220"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N171F6">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17220">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9871,9 +9897,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N17228"></a>
+<a name="Changes-N17252"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17228">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17252">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9898,9 +9924,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1724E"></a>
+<a name="Changes-N17278"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1724E">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17278">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9925,9 +9951,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N17274"></a>
+<a name="Changes-N1729E"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N17274">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1729E">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9952,9 +9978,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N1729A"></a>
+<a name="Changes-N172C4"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N1729A">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N172C4">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -9979,9 +10005,9 @@ if (VERSION > 3) {
 </h3>
 </div>
       
-<a name="Changes-N172C0"></a>
+<a name="Changes-N172EA"></a>
 <div class="h4">
-<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N172C0">#</a>
+<h4>Changes<a title="Permanent link" class="headerlink" 
href="#Changes-N172EA">#</a>
 </h4>
 </div>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">

Modified: poi/site/publish/changes.rss
URL: 
http://svn.apache.org/viewvc/poi/site/publish/changes.rss?rev=1800210&r1=1800209&r2=1800210&view=diff
==============================================================================
--- poi/site/publish/changes.rss (original)
+++ poi/site/publish/changes.rss Wed Jun 28 23:22:37 2017
@@ -1,33 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" 
"http://my.netscape.com/publish/formats/rss-0.91.dtd";>
 <rss version="0.91"><channel><title>Apache POI 
Changes</title><link>https://poi.apache.org/changes.html</link><description>Apache
 POI Changes</description><language>en-us</language>
-<item><title>XSSF: fix(bug 
61203)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61203) - XSSF: XSSFDrawing.getAnchorFromParent handles 
CTOneCellAnchor incorrectly, ignores CTAbsoluteAnchor</description></item>
-<item><title>SXSSF: fix(bug 
56557)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 56557) - SXSSF: Output file get corrupted with 
SXSSFWorkbook and "chart sheet"</description></item>
-<item><title>HSLF: fix(bug 
61045)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61045) - HSLF: Allow for extra bytes in 
FormatRecord</description></item>
-<item><title>SS Common: add(bug 
52063)</title><link>https://poi.apache.org/changes.html</link><description>add 
by POI Developers (bug 52063) - SS Common: Add formula support for 
LOOKUP(lookup_value, array).</description></item>
-<item><title>SL Common: fix(bug 
61169)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61169) - SL Common: Text with Japanese characters 
overflows textbox</description></item>
-<item><title>XSSF: 
add</title><link>https://poi.apache.org/changes.html</link><description>add by 
POI Developers - XSSF: XSSFTable improved support for creating columns and 
setting table areas, without needing to use CT classes</description></item>
-<item><title>XSSF: 
fix</title><link>https://poi.apache.org/changes.html</link><description>fix by 
POI Developers - XSSF: XSSFTable should format numeric/date cells when used as 
Column Header names as Excel does</description></item>
-<item><title>HWPF: add(bug 
61162)</title><link>https://poi.apache.org/changes.html</link><description>add 
by POI Developers (bug 61162) - HWPF: En-/decryption support for 
HWPF</description></item>
-<item><title>XSSF: fix(bug 
60230)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 60230) - XSSF: Round trip workbook encryption and 
decryption</description></item>
-<item><title>XSSF: fix(bug 
58325)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 58325) - XSSF: XSSFDrawing.getShapes() returns zero if 
sheet has more than one embedded OLE object</description></item>
-<item><title>SL Common: fix(bug 
61119)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61119) - SL Common: Fix preset shape rendering and 
shading</description></item>
-<item><title>HSSF: fix(bug 
61059)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61059) - HSSF: Allow workbooks to contain more than 32k 
names</description></item>
-<item><title>XSSF: fix(bug 
github-55)</title><link>https://poi.apache.org/changes.html</link><description>fix
 by POI Developers (bug github-55) - XSSF: Allow XSSFNames set with a long name 
that looks similar to a cell address</description></item>
-<item><title>SXSSF: add(bug 
github-25)</title><link>https://poi.apache.org/changes.html</link><description>add
 by POI Developers (bug github-25) - SXSSF: Add lock/unlock sheet protection 
and tab colors</description></item>
-<item><title>SS Common: update(bug 
github-32)</title><link>https://poi.apache.org/changes.html</link><description>update
 by POI Developers (bug github-32) - SS Common: Speed up Irr() formula 
evaluation</description></item>
-<item><title>scratchpad: add(bug 
github-52)</title><link>https://poi.apache.org/changes.html</link><description>add
 by POI Developers (bug github-52) - scratchpad: Add a function to convert an 
HSSFWorkbook to an HTML document from an InputStream</description></item>
-<item><title>XWPF: fix(bug 
github-53)</title><link>https://poi.apache.org/changes.html</link><description>fix
 by POI Developers (bug github-53) - XWPF: fix NPE when iterating over 
paragraphs in certain *.docx files</description></item>
-<item><title>XSSF: update(bug 
github-54)</title><link>https://poi.apache.org/changes.html</link><description>update
 by POI Developers (bug github-54) - XSSF: Decrease execution time and memory 
consumption when adding XSSFPictures to an XSSFWorkbook</description></item>
-<item><title>HPSF: fix(bug 
52117)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 52117) - HPSF: Invalid "last printed" summary field 
value</description></item>
-<item><title>XSSF: fix(bug 
60352)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 60352) - XSSF: Text extraction: Don't include the text 
"null" for empty cells</description></item>
-<item><title>HPSF: fix(bug 
52372)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 52372) - HPSF: OutOfMemoryError parsing a word 
file</description></item>
-<item><title>HPSF: fix(bug 
61062)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61062) - HPSF: Various HPSF related 
fixes</description></item>
-<item><title>XSSF-SAX: fix(bug 
61034)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61034) - XSSF-SAX: Call to XSSFReader.getSheetsData() 
returns duplicate sheets</description></item>
-<item><title>SS: fix(bug 
61049)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61049) - SS: Fix order of two built-in 
formats</description></item>
-<item><title>XSSF: add(bug 
61021)</title><link>https://poi.apache.org/changes.html</link><description>add 
by POI Developers (bug 61021) - XSSF: Extract Excel 2013 absPath info from 
xlsb</description></item>
-<item><title>HSLF: fix(bug 
60998)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 60998) - HSLF: HSLFTable.setRowHeight sets row height 
incorrect</description></item>
-<item><title>XSSF: fix(bug 
60996)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 60996) - XSSF: Multiple embedded objects on same sheet 
are ignored</description></item>
-<item><title>HSLF: fix(bug 
60993)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 60993) - HSLF: Grid and rowspan calculation in table 
cells is wrong</description></item>
-<item><title>XDGF: fix(bug 
60973)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 60973) - XDGF: Support for "PolylineTo" as well as 
existing alternate spelling "PolyLineTo"</description></item>
+<item><title>OPC: fix(bug 
61182)</title><link>https://poi.apache.org/changes.html</link><description>fix 
by POI Developers (bug 61182) - OPC: Invalid signature created for streamed 
xslx file</description></item>
 </channel></rss>
\ No newline at end of file

Modified: poi/site/publish/encryption.html
URL: 
http://svn.apache.org/viewvc/poi/site/publish/encryption.html?rev=1800210&r1=1800209&r2=1800210&view=diff
==============================================================================
--- poi/site/publish/encryption.html (original)
+++ poi/site/publish/encryption.html Wed Jun 28 23:22:37 2017
@@ -265,11 +265,11 @@ if (VERSION > 3) {
 <h3>Overview<a title="Permanent link" class="headerlink" href="#Overview">#</a>
 </h3>
 </div>
-       
+    
 <p>Apache POI contains support for reading few variants of encrypted office 
files: </p>
-       
+    
 <ul>
-               
+        
 <li>Binary formats (.xls, .ppt, .doc, ...)<br>
         encryption is format-dependent and needs to be implemented per format 
differently.<br>
         Use <a 
href="https://poi.apache.org/apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html";>
@@ -278,7 +278,7 @@ if (VERSION > 3) {
         Setting a null password before saving removes the password 
protection.<br>
         The password is set in a thread local variable. Do not forget to reset 
it to null after text extraction.
         </li>
-               
+        
 <li>XML-based formats (.xlsx, .pptx, .docx, ...)<br>
         use the same encryption logic over all formats. When encrypted, the 
zipped files will be
         stored within an OLE file in the EncryptedPackage stream.<br>
@@ -292,12 +292,12 @@ if (VERSION > 3) {
         <a 
href="http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html";>JDK7</a>,
         <a 
href="http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html";>JDK8</a>).
         </li>
-       
+    
 </ul>
 
-       
+    
 <p>Some "write-protected" files are encrypted with the built-in password 
"VelvetSweatshop", POI can read that files too.</p>
-       
+    
 
     
 <a name="Supported+feature+matrix"></a>
@@ -305,7 +305,7 @@ if (VERSION > 3) {
 <h3>Supported feature matrix<a title="Permanent link" class="headerlink" 
href="#Supported+feature+matrix">#</a>
 </h3>
 </div>
-    
+
     
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
         
@@ -346,7 +346,7 @@ if (VERSION > 3) {
 </tr>
         
 <tr class="b">
-               
+            
 <th colspan="1" rowspan="1"></th>
             <th colspan="1" rowspan="1">XSSF</th>
             <th colspan="1" rowspan="1">XSLF</th>
@@ -391,7 +391,7 @@ if (VERSION > 3) {
 </tr>
     
 </table>
-    
+
     
 <p>*) the xor encryption is flawed and works only for very small files - see 
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59857";>#59857</a>.
     </p>
@@ -399,7 +399,7 @@ if (VERSION > 3) {
     
 <p>**) the <a 
href="https://msdn.microsoft.com/en-us/library/cc313071(v=office.12).aspx">MS-OFFCRYPTO</a>
     documentation only mentions the RC4 (without CryptoAPI) encryption as a 
"in place" encryption, but
-    apparently there's also a container based method with that key generation 
logic. 
+    apparently there's also a container based method with that key generation 
logic.
     </p>
     
 
@@ -409,12 +409,12 @@ if (VERSION > 3) {
 <h3>Binary formats<a title="Permanent link" class="headerlink" 
href="#Binary+formats">#</a>
 </h3>
 </div>
-       
+        
 <p>As mentioned above, use
         <a 
href="https://poi.apache.org/apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html";>
         Biff8EncryptionKey</a>.<a 
href="https://poi.apache.org/apidocs/org/apache/poi/hssf/record/crypto/Biff8EncryptionKey.html#setCurrentUserPassword(java.lang.String)">setCurrentUserPassword</a>(String
 password)
         to specify the password.</p>
-        
+
         
 <pre class="code">
 // XOR/RC4 decryption for xls
@@ -423,7 +423,7 @@ NPOIFSFileSystem fs = new NPOIFSFileSyst
 HSSFWorkbook hwb = new HSSFWorkbook(fs.getRoot(), true);
 Biff8EncryptionKey.setCurrentUserPassword(null);
         </pre>
-        
+
         
 <pre class="code">
 // RC4 CryptoApi support ppt - decryption
@@ -455,11 +455,11 @@ os.close();
 <h3>XML-based formats - Decryption<a title="Permanent link" class="headerlink" 
href="#XML-based+formats+-+Decryption">#</a>
 </h3>
 </div>
-       
+    
 <p>XML-based formats are stored in OLE-package stream "EncryptedPackage". Use 
org.apache.poi.poifs.crypt.Decryptor
-       to decode file:</p>
+    to decode file:</p>
 
-       
+    
 <pre class="code">
 EncryptionInfo info = new EncryptionInfo(filesystem);
 Decryptor d = Decryptor.getInstance(info);
@@ -476,12 +476,12 @@ try {
 } catch (GeneralSecurityException ex) {
     throw new RuntimeException("Unable to process encrypted document", ex);
 }
-       </pre>
+    </pre>
 
-       
+    
 <p>If you want to read file encrypted with build-in password, use 
Decryptor.DEFAULT_PASSWORD.</p>
      
-     
+
      
 <a name="XML-based+formats+-+Encryption"></a>
 <div class="h3">
@@ -512,10 +512,10 @@ opc.close();
 // Write out the encrypted version
 FileOutputStream fos = new FileOutputStream("...");
 fs.writeFilesystem(fos);
-fos.close();     
+fos.close();
      </pre>
      
-     
+
      
 <a name="XML-based+formats+-+Signing+%28XML+Signature%29"></a>
 <div class="h3">
@@ -541,7 +541,7 @@ fos.close();
      
 <li>Apache Santuario "xmlsec" (tested against 2.0.6)</li>
      
-<li>and slf4j-api (tested against 1.7.12)</li>     
+<li>and slf4j-api (tested against 1.7.12)</li>
      
 </ul>
      
@@ -549,12 +549,12 @@ fos.close();
      and the activated <a 
href="https://poi.apache.org/apidocs/org/apache/poi/poifs/crypt/dsig/facets/package-summary.html";>facets</a>
      various <a href="https://en.wikipedia.org/wiki/XAdES";>XAdES levels</a> 
are supported - the support for higher levels (XAdES-T+)
      depend on supporting services and although the code is adopted, the 
integration is not well tested ... please support us on
-     integration (testing) with timestamp and revocation (OCSP) services. 
+     integration (testing) with timestamp and revocation (OCSP) services.
      </p>
      
 <p>Further test examples can be found in the corresponding <a 
href="https://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java?view=markup";>test
 class</a>.</p>
      
-     
+
      
 <a name="Validating+a+signed+office+document"></a>
 <div class="h3">
@@ -573,14 +573,20 @@ boolean isValid = si.verifySignature();
 ...
      </pre>
      
-     
+
      
 <a name="Signing+an+office+document"></a>
 <div class="h3">
 <h3>Signing an office document<a title="Permanent link" class="headerlink" 
href="#Signing+an+office+document">#</a>
 </h3>
 </div>
+
      
+<a name="Signing+a+file"></a>
+<div class="h4">
+<h4>Signing a file<a title="Permanent link" class="headerlink" 
href="#Signing+a+file">#</a>
+</h4>
+</div>
      
 <pre class="code">
 // loading the keystore - pkcs12 is used here, but of course jks &amp; co are 
also valid
@@ -618,6 +624,45 @@ pkg.close();
      
 
      
+<a name="Signing+a+stream+-+in-memory"></a>
+<div class="h4">
+<h4>Signing a stream - in-memory<a title="Permanent link" class="headerlink" 
href="#Signing+a+stream+-+in-memory">#</a>
+</h4>
+</div>
+     
+<p>When saving a OOXML document, POI creates missing relations on the fly. 
Therefore calling the signing method before
+     would result in an invalid signature. Instead of trying to fix all save 
invocations, the user is asked to save the stream
+     before in a intermediate byte array (stream) and process this stream 
instead.</p>
+
+     
+<pre class="code">
+// load the key and setup SignatureConfig ... - see "Signing a file"
+
+SignatureInfo si = new SignatureInfo();
+si.setSignatureConfig(signatureConfig);
+
+// populate sample object
+XSSFWorkbook wb = new XSSFWorkbook();
+wb.createSheet().createRow(1).createCell(1).setCellValue("Test");
+ByteArrayOutputStream bos = new ByteArrayOutputStream(100000);
+wb.write(bos);
+wb.close();
+
+// process the
+OPCPackage pkg = OPCPackage.open(new ByteArrayInputStream(bos.toByteArray()));
+
+signatureConfig.setOpcPackage(pkg);
+si.confirmSignature();
+bos.reset();
+pkg.save(bos);
+pkg.close();
+
+// bos now contains the signed ooxml document
+     </pre>
+     
+     
+
+     
 <a 
name="Encrypting+temporary+files+created+when+unzipping+an+OOXML+document"></a>
 <div class="h3">
 <h3>Encrypting temporary files created when unzipping an OOXML document<a 
title="Permanent link" class="headerlink" 
href="#Encrypting+temporary+files+created+when+unzipping+an+OOXML+document">#</a>
@@ -637,6 +682,153 @@ pkg.close();
        and other <a 
href="https://svn.apache.org/viewvc?view=revision&revision=1768744";>files</a>
        that are needed for this example.</p>
      
+
+     
+<a name="Debugging+XML+signature+issues"></a>
+<div class="h3">
+<h3>Debugging XML signature issues<a title="Permanent link" class="headerlink" 
href="#Debugging+XML+signature+issues">#</a>
+</h3>
+</div>
+       
+<p>Finding the source of a XML signature problem can be sometimes a pain in 
the ... neck, because
+       the hashing of the canonicalized form is more or less intransparent 
done in the background.</p>
+
+       
+       
+<p>One of the tripping hazards are <a 
href="https://stackoverflow.com/questions/36063375";>different
+       linebreaks in Windows/Unix</a>, therefore use the non-indent form of 
the xmls.</p>
+
+       
+<p>The next thing is to compare successful signed documents from Office vs. 
POIs generated signature,
+       i.e. unzip both files and look for differences. Usually the package 
relations (*.rels) will be different,
+       and the sig1.xml, core.xml and [Content_Types].xml due to different 
order of the references.</p>
+
+       
+<p>The package relationsships (*.rels) will be specially handled, i.e. they 
will be filtered and only
+       a subset will be processed - see <a 
href="https://www.ecma-international.org/activities/Office%20Open%20XML%20Formats/Draft%20ECMA-376%203rd%20edition,%20March%202011/Office%20Open%20XML%20Part%202%20-%20Open%20Packaging%20Conventions.pdf";>13.2.4.24
 Relationships Transform Algorithm</a>.</p>
+
+       
+<p>To check the processed files in the canonicalized form, the below 
UnsyncBufferedOutputStream class needs
+       to be injected/replaced. Put the .class file in separate directory and 
add the following JVM parameters:</p>
+
+       
+<pre class="code">
+-Djava.io.tmpdir=<em>&lt;custom temp directory&gt;</em>
+-Xbootclasspath/p:<em>&lt;preload dir, which contains 
/org/apache/xml/security/utils/UnsyncBufferedOutputStream.class&gt;</em>
+-Dorg.apache.poi.util.POILogger=org.apache.poi.util.CommonsLogger
+-Djava.util.logging.config.file=<em>&lt;a dir containing 
...&gt;</em>/logging.properties
+       </pre>
+
+       
+<a name="UnsyncBufferedOutputStream%3A"></a>
+<div class="h4">
+<h4>UnsyncBufferedOutputStream:<a title="Permanent link" class="headerlink" 
href="#UnsyncBufferedOutputStream%3A">#</a>
+</h4>
+</div>
+       
+<pre class="code">
+package org.apache.xml.security.utils;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+public class UnsyncBufferedOutputStream extends OutputStream {
+    static final int size = 8*1024;
+    static int filecnt = 0;
+
+    private int pointer = 0;
+    private final OutputStream out;
+    private final FileOutputStream out2;
+
+    private final byte[] buf;
+
+    public UnsyncBufferedOutputStream(OutputStream out) {
+        buf = new byte[size];
+        this.out = out;
+        synchronized(UnsyncBufferedOutputStream.class) {
+            try {
+                String tmpDir = System.getProperty("java.io.tmpdir");
+                if (tmpDir == null) {
+                    tmpDir = "build";
+                }
+                File f = new File(tmpDir, "unsync-"+filecnt+".xml");
+                out2 = new FileOutputStream(f);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            } finally {
+                filecnt++;
+            }
+        }
+    }
+
+    public void write(byte[] arg0) throws IOException {
+        write(arg0, 0, arg0.length);
+    }
+
+    public void write(byte[] arg0, int arg1, int len) throws IOException {
+        int newLen = pointer+len;
+        if (newLen &gt; size) {
+            flushBuffer();
+            if (len &gt; size) {
+                out.write(arg0, arg1,len);
+                out2.write(arg0, arg1,len);
+                return;
+            }
+            newLen = len;
+        }
+        System.arraycopy(arg0, arg1, buf, pointer, len);
+        pointer = newLen;
+    }
+
+    private void flushBuffer() throws IOException {
+        if (pointer &gt; 0) {
+            out.write(buf, 0, pointer);
+            out2.write(buf, 0, pointer);
+        }
+        pointer = 0;
+
+    }
+
+    public void write(int arg0) throws IOException {
+        if (pointer &gt;= size) {
+            flushBuffer();
+        }
+        buf[pointer++] = (byte)arg0;
+
+    }
+
+    public void flush() throws IOException {
+        flushBuffer();
+        out.flush();
+        out2.flush();
+    }
+
+    public void close() throws IOException {
+        flush();
+        out.close();
+        out2.close();
+    }
+
+}
+</pre>
+
+
+     
+<a name="logging.properties"></a>
+<div class="h4">
+<h4>logging.properties<a title="Permanent link" class="headerlink" 
href="#logging.properties">#</a>
+</h4>
+</div>
+     
+<pre class="code">
+handlers = org.slf4j.bridge.SLF4JBridgeHandler
+.level=ALL
+org.slf4j.bridge.SLF4JBridgeHandler.level=ALL
+     </pre>
+     
+     
   
 
   



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to