50409
2010-12-03 14:24:23 +0000
Implement IRR function for Excel
2010-12-10 10:00:40 +0000
1
1
1
Unclassified
POI
XSSF
3.8-dev
PC
All
RESOLVED
FIXED
P2
enhancement
---
50437
1
marcel.may.de
dev
marcel.may.de
0
oldest_to_newest
142347
0
marcel.may.de
2010-12-03 14:24:23 +0000
Implements IRR, including test.
142348
1
26372
marcel.may.de
2010-12-03 14:25:43 +0000
Created attachment 26372
Patch against SVN trunk
142505
2
yegor
2010-12-09 05:07:16 +0000
There were a few problems with the code as originally submitted:
(1) Irr incorectly ineterpeted columns and rows. Look at your test case, you populate cells A1:E1, but evaluate A1:A5
+ public void testEvaluateInSheet() {
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("Sheet1");
+ HSSFRow row = sheet.createRow(0);
+
+ row.createCell(0).setCellValue(-4000d);
+ row.createCell(1).setCellValue(1200d);
+ row.createCell(2).setCellValue(1410d);
+ row.createCell(3).setCellValue(1875d);
+ row.createCell(4).setCellValue(1050d);
+
+ HSSFCell cell = row.createCell(5);
+ cell.setCellFormula("IRR(A1:A5)");
+
+ HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+ fe.clearAllCachedResultValues();
+ fe.evaluateFormulaCell(cell);
+ double res = cell.getNumericCellValue();
+ assertEquals(0.143d, Math.round(res * 1000d) / 1000d);
+ }
(2) Avoid implicit casting to TwoDEval or NumberEval. Input arguments can be numbers, strings, booleans, arrays, named ranges or formula results:
=NPV(10%,A2:A6)
=NPV(C2,A2:A6) // where C2=10%
=NPV(C2,A2:A6) // where C2=TRUE which evaluates to 1!
=NPV(named_range1,named_range1)
=NPV(COUNT(A1,A2),INDIRECT("A2:A6"))
=NPV(COUNT(A1,A2),{100, 200, 300})
The best candidate to convert input ValueEvals into an array of doubles is AggregateFunction.ValueCollector, I raised visibility of this class from private to default and changed Irr and Npv to use it.
(3) The implementation of Irr does not properly work for short data series and a negative guess.
I created a sample .xls file based on the data from Excel online documentation and the calculated bresult for =IRR(A2:A4,-10%) is wrong.
See failing TestIrr#testIrrFromSpreadsheet().
Row[14]: IRR(A2:A4,-10%) expected:<-0.443506941334654> but was:<-25833.516857587092>
Row[15]: IRR(A2:A4,irr_guess) expected:<-0.44350694133474056> but was:<-100630.10400193676>
Please take a look at the changes. The updated patch includes both Irr nd Npv implementations.
Regards,
Yegor
142506
3
26383
yegor
2010-12-09 05:08:01 +0000
Created attachment 26383
updated patch
142507
4
26384
yegor
2010-12-09 05:08:42 +0000
Created attachment 26384
test-data/spreadsheet/IrrNpvTestCaseData.xls
142531
5
yegor
2010-12-09 12:28:00 +0000
The proposed implementation is based on the Secant solver which relies on the initial guesses. You start with the bracket [estimatedIrr / 2, estimatedIrr] and it seems not to work if estimatedIrr is negative or the sum of cash flows is negative (that's what I concluded from debugging).
BTW, the Commons-Math's Secant solver seems to handle it OK, at least, I'm getting the same result as Excel. Here is my code (requires commons-math-2.1.jar in the classpath):
import org.apache.commons.math.analysis.UnivariateRealFunction;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolverFactory;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolver;
import org.apache.commons.math.FunctionEvaluationException;
import org.apache.poi.ss.formula.functions.FinanceLib;
import junit.framework.TestCase;
/**
* @author Yegor Kozlov
*/
public class TestCommonsMathSolvers extends TestCase {
public static void main(String[] args) throws Exception {
double[] values = new double[]{-70000d, 12000, 15000};
double guess = -0.1; // not used by the Commons-Math's secant solver
double irr = irr_secant(values, guess);
assertEquals(-0.44, Math.round(irr * 100d) / 100d);
}
public static double irr_secant(final double[] values, final double guess) throws Exception {https://issues.apache.org/bugzilla/show_bug.cgi?id=50409
UnivariateRealFunction function = new UnivariateRealFunction(){
public double value(double x) throws FunctionEvaluationException {
return FinanceLib.npv(x, values);
}
};
UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance();
UnivariateRealSolver solver = factory.newSecantSolver();
return solver.solve(function, values[0], values[values.length - 1], guess);
}
}
Do you have a clue what solver is used by Excel? My guess it is Secant or Newton or a combination to assure convergence.
Yegor
142535
6
marcel.may.de
2010-12-09 13:40:26 +0000
(In reply to comment #5)
...
>
> Do you have a clue what solver is used by Excel? My guess it is Secant or
> Newton or a combination to assure convergence.
>
> Yegor
Not really, sorry. There's a hint here:
"Excel's IRR function uses "plain vanilla" Newton-Raphson root finding algorithm"
http://one-nomads-blog.blogspot.com/2006/07/excels-npv-and-irr-function.html
142570
7
yegor
2010-12-10 10:00:40 +0000
I re-wrote your implementation of IRR to use the Newton-Raphson Method. Now all tests pass and the patch can be checked-in.
My implementation was inspired by the Commons-Math's NewtonSolver:
https://svn.apache.org/repos/asf/commons/proper/math/tags/MATH_2_1/src/main/java/org/apache/commons/math/analysis/solvers/NewtonSolver.java
Applied in r1044370
Yegor
26372
2010-12-03 14:25:43 +0000
2010-12-09 05:08:01 +0000
Patch against SVN trunk
irr.patch.txt
text/plain
8842
marcel.may.de
SW5kZXg6IHNyYy9qYXZhL29yZy9hcGFjaGUvcG9pL3NzL2Zvcm11bGEvZXZhbC9GdW5jdGlvbkV2
YWwuamF2YQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMvamF2YS9vcmcvYXBhY2hlL3BvaS9zcy9mb3JtdWxh
L2V2YWwvRnVuY3Rpb25FdmFsLmphdmEJKHJldmlzaW9uIDEwNDE5NDIpCisrKyBzcmMvamF2YS9v
cmcvYXBhY2hlL3BvaS9zcy9mb3JtdWxhL2V2YWwvRnVuY3Rpb25FdmFsLmphdmEJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMCw2ICsxMDAsNyBAQAogCQlyZXR2YWxbNThdID0gRmluYW5jZUZ1bmN0aW9u
Lk5QRVI7CiAJCXJldHZhbFs1OV0gPSBGaW5hbmNlRnVuY3Rpb24uUE1UOwogCisJCXJldHZhbFs2
Ml0gPSBuZXcgSXJyKCk7CiAJCXJldHZhbFs2M10gPSBOdW1lcmljRnVuY3Rpb24uUkFORDsKIAkJ
cmV0dmFsWzY0XSA9IG5ldyBNYXRjaCgpOwogCQlyZXR2YWxbNjVdID0gRGF0ZUZ1bmMuaW5zdGFu
Y2U7CkluZGV4OiBzcmMvamF2YS9vcmcvYXBhY2hlL3BvaS9zcy9mb3JtdWxhL2Z1bmN0aW9ucy9J
cnIuamF2YQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMvamF2YS9vcmcvYXBhY2hlL3BvaS9zcy9mb3JtdWxh
L2Z1bmN0aW9ucy9JcnIuamF2YQkocmV2aXNpb24gMCkKKysrIHNyYy9qYXZhL29yZy9hcGFjaGUv
cG9pL3NzL2Zvcm11bGEvZnVuY3Rpb25zL0lyci5qYXZhCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDExMSBAQAorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKyAgIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdh
cmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQorICAgY29udHJpYnV0b3IgbGlj
ZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoCisg
ICB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGNvcHlyaWdo
dCBvd25lcnNoaXAuCisgICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZSB0byBZb3UgdW5kZXIg
dGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMAorICAgKHRoZSAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKKyAgIHRoZSBM
aWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAg
ICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgVW5sZXNz
IHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0
d2FyZQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24g
YW4gIkFTIElTIiBCQVNJUywKKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAg
bGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworCitwYWNrYWdl
IG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEuZnVuY3Rpb25zOworCitpbXBvcnQgb3JnLmFwYWNo
ZS5wb2kuc3MuZm9ybXVsYS5Ud29ERXZhbDsKK2ltcG9ydCBvcmcuYXBhY2hlLnBvaS5zcy5mb3Jt
dWxhLmV2YWwuRXJyb3JFdmFsOworaW1wb3J0IG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEuZXZh
bC5OdW1iZXJFdmFsOworaW1wb3J0IG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEuZXZhbC5WYWx1
ZUV2YWw7CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJuYWwgcmF0ZSBvZiByZXR1cm4u
CisgKgorICogU3ludGF4IGlzIElSUih2YWx1ZXMpIG9yIElSUih2YWx1ZXMsZ3Vlc3MpCisgKgor
ICogQGF1dGhvciBNYXJjZWwgTWF5CisgKiBAc2VlIDxhIGhyZWY9Imh0dHA6Ly9lbi53aWtpcGVk
aWEub3JnL3dpa2kvSW50ZXJuYWxfcmF0ZV9vZl9yZXR1cm4jTnVtZXJpY2FsX3NvbHV0aW9uIj5X
aWtpcGVkaWEgb24gSVJSPC9hPgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vb2ZmaWNlLm1pY3Jv
c29mdC5jb20vZW4tdXMvZXhjZWwtaGVscC9pcnItSFAwMDUyMDkxNDYuYXNweCI+RXhjZWwgSVJS
PC9hPgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgSXJyIGltcGxlbWVudHMgRnVuY3Rpb24gewor
CisgICAgcHVibGljIFZhbHVlRXZhbCBldmFsdWF0ZShmaW5hbCBWYWx1ZUV2YWxbXSBhcmdzLCBm
aW5hbCBpbnQgc3JjUm93SW5kZXgsIGZpbmFsIGludCBzcmNDb2x1bW5JbmRleCkgeworICAgICAg
ICBpZiAoYXJncy5sZW5ndGggPT0gMSAmJiBhcmdzWzBdIGluc3RhbmNlb2YgVHdvREV2YWwpIHsK
KyAgICAgICAgICAgIC8vIFVzZSBkZWZhdWx0IGVzdGltYXRlCisgICAgICAgICAgICBkb3VibGVb
XSBudW1iZXJzID0gZXh0cmFjdE51bWJlcnMoKFR3b0RFdmFsKSBhcmdzWzBdKTsKKyAgICAgICAg
ICAgIHJldHVybiBuZXcgTnVtYmVyRXZhbCggaXJyKG51bWJlcnMpKTsKKyAgICAgICAgfSBlbHNl
IGlmIChhcmdzLmxlbmd0aCA9PSAyICAmJiBhcmdzWzBdIGluc3RhbmNlb2YgVHdvREV2YWwgJiYg
YXJnc1sxXSBpbnN0YW5jZW9mIE51bWJlckV2YWwgKSB7CisgICAgICAgICAgICBkb3VibGVbXSBu
dW1iZXJzID0gZXh0cmFjdE51bWJlcnMoKFR3b0RFdmFsKSBhcmdzWzBdKTsKKyAgICAgICAgICAg
IHJldHVybiBuZXcgTnVtYmVyRXZhbCggaXJyKG51bWJlcnMsIGV4dHJhY3REb3VibGUoYXJnc1sx
XSkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdyb25nIG51bWJlciBvZiBh
cmd1bWVudHMKKyAgICAgICAgICAgIHJldHVybiBFcnJvckV2YWwuTkE7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBwcml2YXRlIGRvdWJsZVtdIGV4dHJhY3ROdW1iZXJzKGZpbmFsIFR3b0RFdmFs
IHBBcmcpIHsKKyAgICAgICAgLy8gVmFsaWRhdGUKKyAgICAgICAgaWYgKCFwQXJnLmlzQ29sdW1u
KCkgJiYgIXBBcmcuaXNSb3coKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNl
cHRpb24oImFyZWEiICsgcEFyZy5nZXRXaWR0aCgpICsgIngiICsgcEFyZy5nZXRIZWlnaHQoKSAr
ICIgbXVzdCBiZSBlaXRoZXIgcm93IG9yIGNvbHVtbiIpOworICAgICAgICB9CisgICAgICAgIGRv
dWJsZVtdIHJlcyA9IG5ldyBkb3VibGVbTWF0aC5tYXgocEFyZy5nZXRIZWlnaHQoKSwgcEFyZy5n
ZXRXaWR0aCgpKV07CisgICAgICAgIGlmIChwQXJnLmlzUm93KCkpIHsKKyAgICAgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgcmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgcmVz
W2ldID0gZXh0cmFjdERvdWJsZShwQXJnLmdldFZhbHVlKGksIDApKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgcmVzW2ldID0gZXh0cmFjdERvdWJsZShwQXJn
LmdldFZhbHVlKDAsIGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gcmVzOworICAgIH0KKworICAgIHByaXZhdGUgZG91YmxlIGV4dHJhY3REb3VibGUoZmluYWwg
VmFsdWVFdmFsIHBWYWx1ZSkgeworICAgICAgICBpZiAocFZhbHVlIGluc3RhbmNlb2YgTnVtYmVy
RXZhbCkgeworICAgICAgICAgICAgcmV0dXJuICgoTnVtYmVyRXZhbCkgcFZhbHVlKS5nZXROdW1i
ZXJWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9u
KCJDYW4gbm90IGNvbnZlcnQgdG8gbnVtYmVyOiAiICsgcFZhbHVlKTsKKyAgICB9CisKKworICAg
IC8qKgorICAgICAqIENvbXB1dGVzIHRoZSBpbnRlcm5hbCByYXRlIG9mIHJldHVybiB1c2luZyBh
biBlc3RpbWF0ZWQgaXJyIG9mIDEwIHBlcmNlbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5j
b21lIHRoZSBpbmNvbWUgdmFsdWVzLgorICAgICAqIEByZXR1cm4gdGhlIGlyci4KKyAgICAgKi8K
KyAgICBwdWJsaWMgc3RhdGljIGRvdWJsZSBpcnIoZG91YmxlW10gaW5jb21lKSB7CisgICAgICAg
IHJldHVybiBpcnIoaW5jb21lLCAwLjFkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21w
dXRlcyB0aGUgaW50ZXJuYWwgcmF0ZSBvZiByZXR1cm4gdXNpbmcgYW4gZXN0aW1hdGVkIGlyci4K
KyAgICAgKgorICAgICAqIEBwYXJhbSBpbmNvbWUgICAgICAgdGhlIGluY29tZSB2YWx1ZXMuCisg
ICAgICogQHBhcmFtIGVzdGltYXRlZElyciB0aGUgb3B0aW9uYWwgZXN0aW1hdGVkIGlyci4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBpcnIuCisgICAgICogQHNlZSB7aHR0cDovL2VuLndpa2lwZWRpYS5v
cmcvd2lraS9JbnRlcm5hbF9yYXRlX29mX3JldHVybiNOdW1lcmljYWxfc29sdXRpb259CisgICAg
ICovCisgICAgcHVibGljIHN0YXRpYyBkb3VibGUgaXJyKGRvdWJsZVtdIGluY29tZSwgZG91Ymxl
IGVzdGltYXRlZElycikgeworICAgICAgICBkb3VibGUgcl9wcmV2ID0gZXN0aW1hdGVkSXJyIC8g
MmQ7CisgICAgICAgIGRvdWJsZSBucHZfcHJldiA9IEZpbmFuY2VMaWIubnB2KHJfcHJldiwgaW5j
b21lKTsKKyAgICAgICAgZG91YmxlIHIgPSBlc3RpbWF0ZWRJcnI7CisKKyAgICAgICAgLy8gU3Rv
cCBpdGVyYXRpb24gYnkgaXRlcmF0aW9uIGNvdW50IG9yIGRlbHRhCisgICAgICAgIGludCBpdGVy
ID0gMDsKKyAgICAgICAgd2hpbGUgKE1hdGguYWJzKHIgLSByX3ByZXYpID4gMC4wMDAwMWQgJiYg
aXRlciA8PSAyMCkgeworICAgICAgICAgICAgZG91YmxlIG5wdiA9ICBGaW5hbmNlTGliLm5wdihy
LCBpbmNvbWUpOworICAgICAgICAgICAgZG91YmxlIG9sZF9yID0gcjsKKyAgICAgICAgICAgIHIg
LT0gbnB2ICogKHIgLSByX3ByZXYpIC8gKG5wdiAtIG5wdl9wcmV2KTsKKyAgICAgICAgICAgIG5w
dl9wcmV2ID0gbnB2OworICAgICAgICAgICAgcl9wcmV2ID0gb2xkX3I7CisgICAgICAgICAgICBp
dGVyKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorfQoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogc3JjL2phdmEvb3JnL2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9mdW5jdGlvbnMv
SXJyLmphdmEKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4K
QWRkZWQ6IHN2bjprZXl3b3JkcwogICArIERhdGUgUmV2aXNpb24KQWRkZWQ6IHN2bjplb2wtc3R5
bGUKICAgKyBuYXRpdmUKCkluZGV4OiBzcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUvcG9pL3NzL2Zv
cm11bGEvZnVuY3Rpb25zL1Rlc3RJcnIuamF2YQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMvdGVzdGNhc2Vz
L29yZy9hcGFjaGUvcG9pL3NzL2Zvcm11bGEvZnVuY3Rpb25zL1Rlc3RJcnIuamF2YQkocmV2aXNp
b24gMCkKKysrIHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9mdW5jdGlv
bnMvVGVzdElyci5qYXZhCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY5IEBACisvKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0Yp
IHVuZGVyIG9uZSBvciBtb3JlCisgICBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBT
ZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGgKKyAgIHRoaXMgd29yayBmb3IgYWRk
aXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4KKyAgIFRo
ZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wCisgICAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aAorICAgdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9i
dGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgIGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAor
ICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuCisgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICBsaW1pdGF0aW9ucyB1bmRlciB0
aGUgTGljZW5zZS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5wb2kuc3Mu
Zm9ybXVsYS5mdW5jdGlvbnM7CisKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7Citp
bXBvcnQgb3JnLmFwYWNoZS5wb2kuaHNzZi51c2VybW9kZWwuKjsKKworLyoqCisgKiBUZXN0cyBm
b3Ige0BsaW5rIElycn0KKyAqCisgKiBAYXV0aG9yIE1hcmNlbCBNYXkKKyAqLworcHVibGljIGZp
bmFsIGNsYXNzIFRlc3RJcnIgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICBwdWJsaWMgdm9pZCB0
ZXN0SXJyKCkgeworICAgICAgICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ludGVy
bmFsX3JhdGVfb2ZfcmV0dXJuI0V4YW1wbGUKKyAgICAgICAgZG91YmxlW10gaW5jb21lcyA9IHst
NDAwMGQsIDEyMDBkLCAxNDEwZCwgMTg3NWQsIDEwNTBkfTsKKyAgICAgICAgZG91YmxlIGlyciA9
IElyci5pcnIoaW5jb21lcyk7CisgICAgICAgIGRvdWJsZSBpcnJSb3VuZGVkID0gTWF0aC5yb3Vu
ZChpcnIgKiAxMDAwZCkgLyAxMDAwZDsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJpcnIiLCAwLjE0
M2QsIGlyclJvdW5kZWQpOworCisgICAgICAgIC8vIGh0dHA6Ly93d3cudGVjaG9udGhlbmV0LmNv
bS9leGNlbC9mb3JtdWxhcy9pcnIucGhwCisgICAgICAgIGluY29tZXMgPSBuZXcgZG91YmxlW117
LTc1MDBkLCAzMDAwZCwgNTAwMGQsIDEyMDBkLCA0MDAwZH07CisgICAgICAgIGlyciA9IElyci5p
cnIoaW5jb21lcyk7CisgICAgICAgIGlyclJvdW5kZWQgPSBNYXRoLnJvdW5kKGlyciAqIDEwMGQp
IC8gMTAwZDsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJpcnIiLCAwLjI4ZCwgaXJyUm91bmRlZCk7
CisKKyAgICAgICAgaW5jb21lcyA9IG5ldyBkb3VibGVbXXstMTAwMDBkLCAzNDAwZCwgNjUwMGQs
IDEwMDBkfTsKKyAgICAgICAgaXJyID0gSXJyLmlycihpbmNvbWVzKTsKKyAgICAgICAgaXJyUm91
bmRlZCA9IE1hdGgucm91bmQoaXJyICogMTAwZCkgLyAxMDBkOworICAgICAgICBhc3NlcnRFcXVh
bHMoImlyciIsIDAuMDUsIGlyclJvdW5kZWQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRl
c3RFdmFsdWF0ZUluU2hlZXQoKSB7CisgICAgICAgIEhTU0ZXb3JrYm9vayB3YiA9IG5ldyBIU1NG
V29ya2Jvb2soKTsKKyAgICAgICAgSFNTRlNoZWV0IHNoZWV0ID0gd2IuY3JlYXRlU2hlZXQoIlNo
ZWV0MSIpOworICAgICAgICBIU1NGUm93IHJvdyA9IHNoZWV0LmNyZWF0ZVJvdygwKTsKKworICAg
ICAgICByb3cuY3JlYXRlQ2VsbCgwKS5zZXRDZWxsVmFsdWUoLTQwMDBkKTsKKyAgICAgICAgcm93
LmNyZWF0ZUNlbGwoMSkuc2V0Q2VsbFZhbHVlKDEyMDBkKTsKKyAgICAgICAgcm93LmNyZWF0ZUNl
bGwoMikuc2V0Q2VsbFZhbHVlKDE0MTBkKTsKKyAgICAgICAgcm93LmNyZWF0ZUNlbGwoMykuc2V0
Q2VsbFZhbHVlKDE4NzVkKTsKKyAgICAgICAgcm93LmNyZWF0ZUNlbGwoNCkuc2V0Q2VsbFZhbHVl
KDEwNTBkKTsKKworICAgICAgICBIU1NGQ2VsbCBjZWxsID0gcm93LmNyZWF0ZUNlbGwoNSk7Cisg
ICAgICAgIGNlbGwuc2V0Q2VsbEZvcm11bGEoIklSUihBMTpBNSkiKTsKKworICAgICAgICBIU1NG
Rm9ybXVsYUV2YWx1YXRvciBmZSA9IG5ldyBIU1NGRm9ybXVsYUV2YWx1YXRvcih3Yik7CisgICAg
ICAgIGZlLmNsZWFyQWxsQ2FjaGVkUmVzdWx0VmFsdWVzKCk7CisgICAgICAgIGZlLmV2YWx1YXRl
Rm9ybXVsYUNlbGwoY2VsbCk7CisgICAgICAgIGRvdWJsZSByZXMgPSBjZWxsLmdldE51bWVyaWND
ZWxsVmFsdWUoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDAuMTQzZCwgTWF0aC5yb3VuZChyZXMg
KiAxMDAwZCkgLyAxMDAwZCk7CisgICAgfQorfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogc3JjL3Rl
c3RjYXNlcy9vcmcvYXBhY2hlL3BvaS9zcy9mb3JtdWxhL2Z1bmN0aW9ucy9UZXN0SXJyLmphdmEK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KQWRkZWQ6IHN2
bjprZXl3b3JkcwogICArIERhdGUgUmV2aXNpb24KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBu
YXRpdmUKCg==
26383
2010-12-09 05:08:01 +0000
2010-12-09 05:08:01 +0000
updated patch
irr-npv.patch
text/plain
19807
yegor
SW5kZXg6IHRlc3QtZGF0YS9zcHJlYWRzaGVldC9JcnJOcHZUZXN0Q2FzZURhdGEueGxzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjpt
aW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246
IHRlc3QtZGF0YS9zcHJlYWRzaGVldC9JcnJOcHZUZXN0Q2FzZURhdGEueGxzCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCkluZGV4
OiBzcmMvamF2YS9vcmcvYXBhY2hlL3BvaS9zcy9mb3JtdWxhL2V2YWwvRnVuY3Rpb25FdmFsLmph
dmEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gc3JjL2phdmEvb3JnL2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9ldmFs
L0Z1bmN0aW9uRXZhbC5qYXZhCShyZXZpc2lvbiAxMDQyNzE3KQorKysgc3JjL2phdmEvb3JnL2Fw
YWNoZS9wb2kvc3MvZm9ybXVsYS9ldmFsL0Z1bmN0aW9uRXZhbC5qYXZhCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDAsNiArMTAwLDcgQEAKIAkJcmV0dmFsWzU4XSA9IEZpbmFuY2VGdW5jdGlvbi5OUEVS
OwogCQlyZXR2YWxbNTldID0gRmluYW5jZUZ1bmN0aW9uLlBNVDsKIAorCQlyZXR2YWxbNjJdID0g
bmV3IElycigpOwogCQlyZXR2YWxbNjNdID0gTnVtZXJpY0Z1bmN0aW9uLlJBTkQ7CiAJCXJldHZh
bFs2NF0gPSBuZXcgTWF0Y2goKTsKIAkJcmV0dmFsWzY1XSA9IERhdGVGdW5jLmluc3RhbmNlOwpJ
bmRleDogc3JjL2phdmEvb3JnL2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9mdW5jdGlvbnMvTnB2Lmph
dmEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gc3JjL2phdmEvb3JnL2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9mdW5j
dGlvbnMvTnB2LmphdmEJKHJldmlzaW9uIDEwNDI3MTcpCisrKyBzcmMvamF2YS9vcmcvYXBhY2hl
L3BvaS9zcy9mb3JtdWxhL2Z1bmN0aW9ucy9OcHYuamF2YQkod29ya2luZyBjb3B5KQpAQCAtMTcs
MTEgKzE3LDE0IEBACiAKIHBhY2thZ2Ugb3JnLmFwYWNoZS5wb2kuc3MuZm9ybXVsYS5mdW5jdGlv
bnM7CiAKK2ltcG9ydCBvcmcuYXBhY2hlLnBvaS5zcy5mb3JtdWxhLlR3b0RFdmFsOwogaW1wb3J0
IG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEuZXZhbC5FcnJvckV2YWw7CiBpbXBvcnQgb3JnLmFw
YWNoZS5wb2kuc3MuZm9ybXVsYS5ldmFsLkV2YWx1YXRpb25FeGNlcHRpb247CiBpbXBvcnQgb3Jn
LmFwYWNoZS5wb2kuc3MuZm9ybXVsYS5ldmFsLk51bWJlckV2YWw7CiBpbXBvcnQgb3JnLmFwYWNo
ZS5wb2kuc3MuZm9ybXVsYS5ldmFsLlZhbHVlRXZhbDsKIAoraW1wb3J0IGphdmEudXRpbC5BcnJh
eXM7CisKIC8qKgogICogQ2FsY3VsYXRlcyB0aGUgbmV0IHByZXNlbnQgdmFsdWUgb2YgYW4gaW52
ZXN0bWVudCBieSB1c2luZyBhIGRpc2NvdW50IHJhdGUKICAqIGFuZCBhIHNlcmllcyBvZiBmdXR1
cmUgcGF5bWVudHMgKG5lZ2F0aXZlIHZhbHVlcykgYW5kIGluY29tZSAocG9zaXRpdmUKQEAgLTMw
LDc4ICszMywyNyBAQAogICogaW5jb21lLgogICoKICAqIEBhdXRob3IgU1BldHJha292c2t5Cisg
KiBAYXV0aG9yIE1hcmNlbCBNYXkKICAqLwotcHVibGljIGZpbmFsIGNsYXNzIE5wdiBpbXBsZW1l
bnRzIEZ1bmN0aW9uMkFyZywgRnVuY3Rpb24zQXJnLCBGdW5jdGlvbjRBcmcgeworcHVibGljIGZp
bmFsIGNsYXNzIE5wdiBpbXBsZW1lbnRzIEZ1bmN0aW9uIHsKIAotCi0JcHVibGljIFZhbHVlRXZh
bCBldmFsdWF0ZShpbnQgc3JjUm93SW5kZXgsIGludCBzcmNDb2x1bW5JbmRleCwgVmFsdWVFdmFs
IGFyZzAsIFZhbHVlRXZhbCBhcmcxKSB7Ci0JCWRvdWJsZSByZXN1bHQ7Ci0JCXRyeSB7Ci0JCQlk
b3VibGUgcmF0ZSA9IE51bWVyaWNGdW5jdGlvbi5zaW5nbGVPcGVyYW5kRXZhbHVhdGUoYXJnMCwg
c3JjUm93SW5kZXgsIHNyY0NvbHVtbkluZGV4KTsKLQkJCWRvdWJsZSBkMSA9IE51bWVyaWNGdW5j
dGlvbi5zaW5nbGVPcGVyYW5kRXZhbHVhdGUoYXJnMSwgc3JjUm93SW5kZXgsIHNyY0NvbHVtbklu
ZGV4KTsKLQkJCXJlc3VsdCA9IGV2YWx1YXRlKHJhdGUsIGQxKTsKLQkJCU51bWVyaWNGdW5jdGlv
bi5jaGVja1ZhbHVlKHJlc3VsdCk7Ci0JCX0gY2F0Y2ggKEV2YWx1YXRpb25FeGNlcHRpb24gZSkg
ewotCQkJcmV0dXJuIGUuZ2V0RXJyb3JFdmFsKCk7Ci0JCX0KLQkJcmV0dXJuIG5ldyBOdW1iZXJF
dmFsKHJlc3VsdCk7Ci0JfQotCXB1YmxpYyBWYWx1ZUV2YWwgZXZhbHVhdGUoaW50IHNyY1Jvd0lu
ZGV4LCBpbnQgc3JjQ29sdW1uSW5kZXgsIFZhbHVlRXZhbCBhcmcwLCBWYWx1ZUV2YWwgYXJnMSwK
LQkJCVZhbHVlRXZhbCBhcmcyKSB7Ci0JCWRvdWJsZSByZXN1bHQ7Ci0JCXRyeSB7Ci0JCQlkb3Vi
bGUgcmF0ZSA9IE51bWVyaWNGdW5jdGlvbi5zaW5nbGVPcGVyYW5kRXZhbHVhdGUoYXJnMCwgc3Jj
Um93SW5kZXgsIHNyY0NvbHVtbkluZGV4KTsKLQkJCWRvdWJsZSBkMSA9IE51bWVyaWNGdW5jdGlv
bi5zaW5nbGVPcGVyYW5kRXZhbHVhdGUoYXJnMSwgc3JjUm93SW5kZXgsIHNyY0NvbHVtbkluZGV4
KTsKLQkJCWRvdWJsZSBkMiA9IE51bWVyaWNGdW5jdGlvbi5zaW5nbGVPcGVyYW5kRXZhbHVhdGUo
YXJnMiwgc3JjUm93SW5kZXgsIHNyY0NvbHVtbkluZGV4KTsKLQkJCXJlc3VsdCA9IGV2YWx1YXRl
KHJhdGUsIGQxLCBkMik7Ci0JCQlOdW1lcmljRnVuY3Rpb24uY2hlY2tWYWx1ZShyZXN1bHQpOwot
CQl9IGNhdGNoIChFdmFsdWF0aW9uRXhjZXB0aW9uIGUpIHsKLQkJCXJldHVybiBlLmdldEVycm9y
RXZhbCgpOwotCQl9Ci0JCXJldHVybiBuZXcgTnVtYmVyRXZhbChyZXN1bHQpOwotCX0KLQlwdWJs
aWMgVmFsdWVFdmFsIGV2YWx1YXRlKGludCBzcmNSb3dJbmRleCwgaW50IHNyY0NvbHVtbkluZGV4
LCBWYWx1ZUV2YWwgYXJnMCwgVmFsdWVFdmFsIGFyZzEsCi0JCQlWYWx1ZUV2YWwgYXJnMiwgVmFs
dWVFdmFsIGFyZzMpIHsKLQkJZG91YmxlIHJlc3VsdDsKLQkJdHJ5IHsKLQkJCWRvdWJsZSByYXRl
ID0gTnVtZXJpY0Z1bmN0aW9uLnNpbmdsZU9wZXJhbmRFdmFsdWF0ZShhcmcwLCBzcmNSb3dJbmRl
eCwgc3JjQ29sdW1uSW5kZXgpOwotCQkJZG91YmxlIGQxID0gTnVtZXJpY0Z1bmN0aW9uLnNpbmds
ZU9wZXJhbmRFdmFsdWF0ZShhcmcxLCBzcmNSb3dJbmRleCwgc3JjQ29sdW1uSW5kZXgpOwotCQkJ
ZG91YmxlIGQyID0gTnVtZXJpY0Z1bmN0aW9uLnNpbmdsZU9wZXJhbmRFdmFsdWF0ZShhcmcyLCBz
cmNSb3dJbmRleCwgc3JjQ29sdW1uSW5kZXgpOwotCQkJZG91YmxlIGQzID0gTnVtZXJpY0Z1bmN0
aW9uLnNpbmdsZU9wZXJhbmRFdmFsdWF0ZShhcmczLCBzcmNSb3dJbmRleCwgc3JjQ29sdW1uSW5k
ZXgpOwotCQkJcmVzdWx0ID0gZXZhbHVhdGUocmF0ZSwgZDEsIGQyLCBkMyk7Ci0JCQlOdW1lcmlj
RnVuY3Rpb24uY2hlY2tWYWx1ZShyZXN1bHQpOwotCQl9IGNhdGNoIChFdmFsdWF0aW9uRXhjZXB0
aW9uIGUpIHsKLQkJCXJldHVybiBlLmdldEVycm9yRXZhbCgpOwotCQl9Ci0JCXJldHVybiBuZXcg
TnVtYmVyRXZhbChyZXN1bHQpOwotCX0KLQogCXB1YmxpYyBWYWx1ZUV2YWwgZXZhbHVhdGUoVmFs
dWVFdmFsW10gYXJncywgaW50IHNyY1Jvd0luZGV4LCBpbnQgc3JjQ29sdW1uSW5kZXgpIHsKIAkJ
aW50IG5BcmdzID0gYXJncy5sZW5ndGg7Ci0JCWlmIChuQXJnczwyKSB7CisJCWlmIChuQXJncyA8
IDIpIHsKIAkJCXJldHVybiBFcnJvckV2YWwuVkFMVUVfSU5WQUxJRDsKIAkJfQotCQlpbnQgbnAg
PSBuQXJncy0xOwotCQlkb3VibGVbXSBkcyA9IG5ldyBkb3VibGVbbnBdOwotCQlkb3VibGUgcmVz
dWx0OwotCQl0cnkgeworCisgICAgICAgIHRyeSB7CiAJCQlkb3VibGUgcmF0ZSA9IE51bWVyaWNG
dW5jdGlvbi5zaW5nbGVPcGVyYW5kRXZhbHVhdGUoYXJnc1swXSwgc3JjUm93SW5kZXgsIHNyY0Nv
bHVtbkluZGV4KTsKLQkJCWZvciAoaW50IGkgPSAwOyBpIDwgZHMubGVuZ3RoOyBpKyspIHsKLQkJ
CQlkc1tpXSA9ICBOdW1lcmljRnVuY3Rpb24uc2luZ2xlT3BlcmFuZEV2YWx1YXRlKGFyZ3NbaSsx
XSwgc3JjUm93SW5kZXgsIHNyY0NvbHVtbkluZGV4KTsKLQkJCX0KLQkJCXJlc3VsdCA9IGV2YWx1
YXRlKHJhdGUsIGRzKTsKKyAgICAgICAgICAgIC8vIGNvbnZlcnQgdGFpbCBhcmd1bWVudHMgaW50
byBhbiBhcnJheSBvZiBkb3VibGVzCisgICAgICAgICAgICBWYWx1ZUV2YWxbXSB2YXJncyA9IEFy
cmF5cy5jb3B5T2ZSYW5nZShhcmdzLCAxICwgYXJncy5sZW5ndGgpOworICAgICAgICAgICAgZG91
YmxlW10gdmFsdWVzID0gQWdncmVnYXRlRnVuY3Rpb24uVmFsdWVDb2xsZWN0b3IuY29sbGVjdFZh
bHVlcyh2YXJncyk7CisKKyAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSBGaW5hbmNlTGliLm5w
dihyYXRlLCB2YWx1ZXMpOwogCQkJTnVtZXJpY0Z1bmN0aW9uLmNoZWNrVmFsdWUocmVzdWx0KTsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgTnVtYmVyRXZhbChyZXN1bHQpOwogCQl9IGNhdGNoIChF
dmFsdWF0aW9uRXhjZXB0aW9uIGUpIHsKIAkJCXJldHVybiBlLmdldEVycm9yRXZhbCgpOwogCQl9
Ci0JCXJldHVybiBuZXcgTnVtYmVyRXZhbChyZXN1bHQpOwogCX0KLQotCXByaXZhdGUgc3RhdGlj
IGRvdWJsZSBldmFsdWF0ZShkb3VibGUgcmF0ZSwgZG91YmxlLi4uZHMpIHsKLQkJZG91YmxlIHN1
bSA9IDA7Ci0JCWZvciAoaW50IGkgPSAwOyBpIDwgZHMubGVuZ3RoOyBpKyspIHsKLQkJCXN1bSAr
PSBkc1tpXSAvIE1hdGgucG93KHJhdGUgKyAxLCBpKTsKLQkJfQotCQlyZXR1cm4gc3VtOwotCX0K
IH0KSW5kZXg6IHNyYy9qYXZhL29yZy9hcGFjaGUvcG9pL3NzL2Zvcm11bGEvZnVuY3Rpb25zL0ly
ci5qYXZhCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIHNyYy9qYXZhL29yZy9hcGFjaGUvcG9pL3NzL2Zvcm11bGEv
ZnVuY3Rpb25zL0lyci5qYXZhCShyZXZpc2lvbiAwKQorKysgc3JjL2phdmEvb3JnL2FwYWNoZS9w
b2kvc3MvZm9ybXVsYS9mdW5jdGlvbnMvSXJyLmphdmEJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OTIgQEAKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJl
IEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKyAgIGNvbnRyaWJ1dG9yIGxpY2Vu
c2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUgZGlzdHJpYnV0ZWQgd2l0aAorICAg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLgorICAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUgdG8gWW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAKKyAgICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoCisgICB0aGUgTGlj
ZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAg
aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgIFVubGVzcyBy
ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdh
cmUKKyAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFu
ICJBUyBJUyIgQkFTSVMsCisgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBB
TlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgIFNlZSB0aGUgTGljZW5zZSBm
b3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgIGxp
bWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKworcGFja2FnZSBv
cmcuYXBhY2hlLnBvaS5zcy5mb3JtdWxhLmZ1bmN0aW9uczsKKworaW1wb3J0IG9yZy5hcGFjaGUu
cG9pLnNzLmZvcm11bGEuZXZhbC4qOworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIGludGVybmFs
IHJhdGUgb2YgcmV0dXJuLgorICoKKyAqIFN5bnRheCBpcyBJUlIodmFsdWVzKSBvciBJUlIodmFs
dWVzLGd1ZXNzKQorICoKKyAqIEBhdXRob3IgTWFyY2VsIE1heQorICogQHNlZSA8YSBocmVmPSJo
dHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ludGVybmFsX3JhdGVfb2ZfcmV0dXJuI051bWVy
aWNhbF9zb2x1dGlvbiI+V2lraXBlZGlhIG9uIElSUjwvYT4KKyAqIEBzZWUgPGEgaHJlZj0iaHR0
cDovL29mZmljZS5taWNyb3NvZnQuY29tL2VuLXVzL2V4Y2VsLWhlbHAvaXJyLUhQMDA1MjA5MTQ2
LmFzcHgiPkV4Y2VsIElSUjwvYT4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIElyciBpbXBsZW1l
bnRzIEZ1bmN0aW9uIHsKKworCisgICAgcHVibGljIFZhbHVlRXZhbCBldmFsdWF0ZShmaW5hbCBW
YWx1ZUV2YWxbXSBhcmdzLCBmaW5hbCBpbnQgc3JjUm93SW5kZXgsIGZpbmFsIGludCBzcmNDb2x1
bW5JbmRleCkgeworICAgICAgICBpZihhcmdzLmxlbmd0aCA9PSAwIHx8IGFyZ3MubGVuZ3RoID4g
MikgeworICAgICAgICAgICAgLy8gV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cworICAgICAgICAg
ICAgcmV0dXJuIEVycm9yRXZhbC5WQUxVRV9JTlZBTElEOworICAgICAgICB9CisKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgIGRvdWJsZVtdIHZhbHVlcyA9IEFnZ3JlZ2F0ZUZ1bmN0aW9uLlZh
bHVlQ29sbGVjdG9yLmNvbGxlY3RWYWx1ZXMoYXJnc1swXSk7CisgICAgICAgICAgICBkb3VibGUg
Z3Vlc3M7CisgICAgICAgICAgICBpZihhcmdzLmxlbmd0aCA9PSAyKSB7CisgICAgICAgICAgICAg
ICAgZ3Vlc3MgPSBOdW1lcmljRnVuY3Rpb24uc2luZ2xlT3BlcmFuZEV2YWx1YXRlKGFyZ3NbMV0s
IHNyY1Jvd0luZGV4LCBzcmNDb2x1bW5JbmRleCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIGd1ZXNzID0gMC4xZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRv
dWJsZSByZXN1bHQgPSBpcnIodmFsdWVzLCBndWVzcyk7CisgICAgICAgICAgICBOdW1lcmljRnVu
Y3Rpb24uY2hlY2tWYWx1ZShyZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJF
dmFsKHJlc3VsdCk7CisgICAgICAgIH0gY2F0Y2ggKEV2YWx1YXRpb25FeGNlcHRpb24gZSl7Cisg
ICAgICAgICAgICByZXR1cm4gZS5nZXRFcnJvckV2YWwoKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIC8qKgorICAgICAqIENvbXB1dGVzIHRoZSBpbnRlcm5hbCByYXRlIG9mIHJldHVybiB1c2lu
ZyBhbiBlc3RpbWF0ZWQgaXJyIG9mIDEwIHBlcmNlbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
aW5jb21lIHRoZSBpbmNvbWUgdmFsdWVzLgorICAgICAqIEByZXR1cm4gdGhlIGlyci4KKyAgICAg
Ki8KKyAgICBwdWJsaWMgc3RhdGljIGRvdWJsZSBpcnIoZG91YmxlW10gaW5jb21lKSB7CisgICAg
ICAgIHJldHVybiBpcnIoaW5jb21lLCAwLjFkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBD
b21wdXRlcyB0aGUgaW50ZXJuYWwgcmF0ZSBvZiByZXR1cm4gdXNpbmcgYW4gZXN0aW1hdGVkIGly
ci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmNvbWUgICAgICAgdGhlIGluY29tZSB2YWx1ZXMu
CisgICAgICogQHBhcmFtIGVzdGltYXRlZElyciB0aGUgb3B0aW9uYWwgZXN0aW1hdGVkIGlyci4K
KyAgICAgKiBAcmV0dXJuIHRoZSBpcnIuCisgICAgICogQHNlZSB7aHR0cDovL2VuLndpa2lwZWRp
YS5vcmcvd2lraS9JbnRlcm5hbF9yYXRlX29mX3JldHVybiNOdW1lcmljYWxfc29sdXRpb259Cisg
ICAgICovCisgICAgcHVibGljIHN0YXRpYyBkb3VibGUgaXJyKGRvdWJsZVtdIGluY29tZSwgZG91
YmxlIGVzdGltYXRlZElycikgeworICAgICAgICBkb3VibGUgcl9wcmV2ID0gZXN0aW1hdGVkSXJy
IC8gMmQ7CisgICAgICAgIGRvdWJsZSBucHZfcHJldiA9IEZpbmFuY2VMaWIubnB2KHJfcHJldiwg
aW5jb21lKTsKKyAgICAgICAgZG91YmxlIHIgPSBlc3RpbWF0ZWRJcnI7CisKKyAgICAgICAgLy8g
U3RvcCBpdGVyYXRpb24gYnkgaXRlcmF0aW9uIGNvdW50IG9yIGRlbHRhCisgICAgICAgIGludCBp
dGVyID0gMDsKKyAgICAgICAgd2hpbGUgKE1hdGguYWJzKHIgLSByX3ByZXYpID4gMC4wMDAwMWQg
JiYgaXRlciA8PSAyMCkgeworICAgICAgICAgICAgZG91YmxlIG5wdiA9ICBGaW5hbmNlTGliLm5w
dihyLCBpbmNvbWUpOworICAgICAgICAgICAgZG91YmxlIG9sZF9yID0gcjsKKyAgICAgICAgICAg
IHIgLT0gbnB2ICogKHIgLSByX3ByZXYpIC8gKG5wdiAtIG5wdl9wcmV2KTsKKyAgICAgICAgICAg
IG5wdl9wcmV2ID0gbnB2OworICAgICAgICAgICAgcl9wcmV2ID0gb2xkX3I7CisgICAgICAgICAg
ICBpdGVyKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCit9CkluZGV4
OiBzcmMvamF2YS9vcmcvYXBhY2hlL3BvaS9zcy9mb3JtdWxhL2Z1bmN0aW9ucy9BZ2dyZWdhdGVG
dW5jdGlvbi5qYXZhCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNyYy9qYXZhL29yZy9hcGFjaGUvcG9pL3NzL2Zv
cm11bGEvZnVuY3Rpb25zL0FnZ3JlZ2F0ZUZ1bmN0aW9uLmphdmEJKHJldmlzaW9uIDEwNDI3MTcp
CisrKyBzcmMvamF2YS9vcmcvYXBhY2hlL3BvaS9zcy9mb3JtdWxhL2Z1bmN0aW9ucy9BZ2dyZWdh
dGVGdW5jdGlvbi5qYXZhCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBACiAJCQlyZXR1
cm4gbmV3IE51bWJlckV2YWwocmVzdWx0KTsKIAkJfQogCX0KLQlwcml2YXRlIHN0YXRpYyBmaW5h
bCBjbGFzcyBWYWx1ZUNvbGxlY3RvciBleHRlbmRzIE11bHRpT3BlcmFuZE51bWVyaWNGdW5jdGlv
biB7CisJc3RhdGljIGZpbmFsIGNsYXNzIFZhbHVlQ29sbGVjdG9yIGV4dGVuZHMgTXVsdGlPcGVy
YW5kTnVtZXJpY0Z1bmN0aW9uIHsKIAkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgVmFsdWVDb2xsZWN0
b3IgaW5zdGFuY2UgPSBuZXcgVmFsdWVDb2xsZWN0b3IoKTsKIAkJcHVibGljIFZhbHVlQ29sbGVj
dG9yKCkgewogCQkJc3VwZXIoZmFsc2UsIGZhbHNlKTsKSW5kZXg6IHNyYy90ZXN0Y2FzZXMvb3Jn
L2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9mdW5jdGlvbnMvVGVzdE5wdi5qYXZhCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9mdW5jdGlvbnMvVGVz
dE5wdi5qYXZhCShyZXZpc2lvbiAwKQorKysgc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3BvaS9z
cy9mb3JtdWxhL2Z1bmN0aW9ucy9UZXN0TnB2LmphdmEJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTA0IEBACisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorICAgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgICBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGgKKyAg
IHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4KKyAgIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wCisgICAodGhlICJMaWNlbnNlIik7IHlvdSBt
YXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aAorICAgdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAg
IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICBVbmxlc3Mg
cmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3
YXJlCisgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBh
biAiQVMgSVMiIEJBU0lTLAorICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0Yg
QU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICBTZWUgdGhlIExpY2Vuc2Ug
Zm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICBs
aW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisKK3BhY2thZ2Ug
b3JnLmFwYWNoZS5wb2kuc3MuZm9ybXVsYS5mdW5jdGlvbnM7CisKK2ltcG9ydCBqdW5pdC5mcmFt
ZXdvcmsuVGVzdENhc2U7CitpbXBvcnQganVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVy
cm9yOworaW1wb3J0IG9yZy5hcGFjaGUucG9pLmhzc2YudXNlcm1vZGVsLio7CitpbXBvcnQgb3Jn
LmFwYWNoZS5wb2kuaHNzZi5IU1NGVGVzdERhdGFTYW1wbGVzOworaW1wb3J0IG9yZy5hcGFjaGUu
cG9pLnNzLnVzZXJtb2RlbC5DZWxsOworaW1wb3J0IG9yZy5hcGFjaGUucG9pLnNzLnVzZXJtb2Rl
bC5Sb3c7CitpbXBvcnQgb3JnLmFwYWNoZS5wb2kuc3MudXNlcm1vZGVsLkNlbGxWYWx1ZTsKKwor
LyoqCisgKiBUZXN0cyBmb3Ige0BsaW5rIE5wdn0KKyAqCisgKiBAYXV0aG9yIE1hcmNlbCBNYXkK
KyAqIEBzZWUgPGEgaHJlZj0iaHR0cDovL29mZmljZS5taWNyb3NvZnQuY29tL2VuLXVzL2V4Y2Vs
LWhlbHAvbnB2LUhQMDA1MjA5MTk5LmFzcHgiPkV4Y2VsIEhlbHA8L2E+CisgKi8KK3B1YmxpYyBm
aW5hbCBjbGFzcyBUZXN0TnB2IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgcHVibGljIHZvaWQg
dGVzdEV2YWx1YXRlSW5TaGVldEV4YW1wbGUyKCkgeworICAgICAgICBIU1NGV29ya2Jvb2sgd2Ig
PSBuZXcgSFNTRldvcmtib29rKCk7CisgICAgICAgIEhTU0ZTaGVldCBzaGVldCA9IHdiLmNyZWF0
ZVNoZWV0KCJTaGVldDEiKTsKKyAgICAgICAgSFNTRlJvdyByb3cgPSBzaGVldC5jcmVhdGVSb3co
MCk7CisKKyAgICAgICAgc2hlZXQuY3JlYXRlUm93KDEpLmNyZWF0ZUNlbGwoMCkuc2V0Q2VsbFZh
bHVlKDAuMDhkKTsKKyAgICAgICAgc2hlZXQuY3JlYXRlUm93KDIpLmNyZWF0ZUNlbGwoMCkuc2V0
Q2VsbFZhbHVlKC00MDAwMGQpOworICAgICAgICBzaGVldC5jcmVhdGVSb3coMykuY3JlYXRlQ2Vs
bCgwKS5zZXRDZWxsVmFsdWUoODAwMGQpOworICAgICAgICBzaGVldC5jcmVhdGVSb3coNCkuY3Jl
YXRlQ2VsbCgwKS5zZXRDZWxsVmFsdWUoOTIwMGQpOworICAgICAgICBzaGVldC5jcmVhdGVSb3co
NSkuY3JlYXRlQ2VsbCgwKS5zZXRDZWxsVmFsdWUoMTAwMDBkKTsKKyAgICAgICAgc2hlZXQuY3Jl
YXRlUm93KDYpLmNyZWF0ZUNlbGwoMCkuc2V0Q2VsbFZhbHVlKDEyMDAwZCk7CisgICAgICAgIHNo
ZWV0LmNyZWF0ZVJvdyg3KS5jcmVhdGVDZWxsKDApLnNldENlbGxWYWx1ZSgxNDUwMGQpOworCisg
ICAgICAgIEhTU0ZDZWxsIGNlbGwgPSByb3cuY3JlYXRlQ2VsbCg4KTsKKyAgICAgICAgSFNTRkZv
cm11bGFFdmFsdWF0b3IgZmUgPSBuZXcgSFNTRkZvcm11bGFFdmFsdWF0b3Iod2IpOworCisgICAg
ICAgIC8vIEVudW1lcmF0aW9uCisgICAgICAgIGNlbGwuc2V0Q2VsbEZvcm11bGEoIk5QVihBMiwg
QTQsQTUsQTYsQTcsQTgpK0EzIik7CisgICAgICAgIGZlLmNsZWFyQWxsQ2FjaGVkUmVzdWx0VmFs
dWVzKCk7CisgICAgICAgIGZlLmV2YWx1YXRlRm9ybXVsYUNlbGwoY2VsbCk7CisgICAgICAgIGRv
dWJsZSByZXMgPSBjZWxsLmdldE51bWVyaWNDZWxsVmFsdWUoKTsKKyAgICAgICAgYXNzZXJ0RXF1
YWxzKDE5MjIuMDZkLCBNYXRoLnJvdW5kKHJlcyAqIDEwMGQpIC8gMTAwZCk7CisKKyAgICAgICAg
Ly8gUmFuZ2UKKyAgICAgICAgY2VsbC5zZXRDZWxsRm9ybXVsYSgiTlBWKEEyLCBBNDpBOCkrQTMi
KTsKKworICAgICAgICBmZS5jbGVhckFsbENhY2hlZFJlc3VsdFZhbHVlcygpOworICAgICAgICBm
ZS5ldmFsdWF0ZUZvcm11bGFDZWxsKGNlbGwpOworICAgICAgICByZXMgPSBjZWxsLmdldE51bWVy
aWNDZWxsVmFsdWUoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDE5MjIuMDZkLCBNYXRoLnJvdW5k
KHJlcyAqIDEwMGQpIC8gMTAwZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogZXZhbHVhdGUg
Zm9ybXVsYXMgd2l0aCBOUFYgYW5kIGNvbXBhcmUgdGhlIHJlc3VsdCB3aXRoCisgICAgICogdGhl
IGNhY2hlZCBmb3JtdWxhIHJlc3VsdCBwcmUtY2FsY3VsYXRlZCBieSBFeGNlbAorICAgICAqLwor
ICAgIHB1YmxpYyB2b2lkIHRlc3ROcHZGcm9tU3ByZWFkc2hlZXQoKXsKKyAgICAgICAgSFNTRldv
cmtib29rIHdiID0gSFNTRlRlc3REYXRhU2FtcGxlcy5vcGVuU2FtcGxlV29ya2Jvb2soIklyck5w
dlRlc3RDYXNlRGF0YS54bHMiKTsKKyAgICAgICAgSFNTRlNoZWV0IHNoZWV0ID0gd2IuZ2V0U2hl
ZXQoIklSUi1OUFYiKTsKKyAgICAgICAgSFNTRkZvcm11bGFFdmFsdWF0b3IgZmUgPSBuZXcgSFNT
RkZvcm11bGFFdmFsdWF0b3Iod2IpOworICAgICAgICBTdHJpbmdCdWZmZXIgZmFpbHVyZXMgPSBu
ZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBmYWlsdXJlQ291bnQgPSAwOworICAgICAg
ICAvLyBUT0RPIFlLOiBGb3JtdWxhcyBpbiByb3dzIDE2IGFuZCAxNyBvcGVyYXRlIHdpdGggQXJy
YXlQdGcgd2hpY2ggaXNuJ3QgeWV0IHN1cHBvcnRlZAorICAgICAgICAvLyBGb3JtdWxhRXZhbHVh
dG9yIGFzIG9mIHIxMDQxNDA3IHRocm93cyAiVW5leHBlY3RlZCBwdGcgY2xhc3MgKG9yZy5hcGFj
aGUucG9pLnNzLmZvcm11bGEucHRnLkFycmF5UHRnKSIKKyAgICAgICAgZm9yKGludCByb3dudW0g
PSA5OyByb3dudW0gPD0gMTU7IHJvd251bSsrKXsKKyAgICAgICAgICAgIEhTU0ZSb3cgcm93ID0g
c2hlZXQuZ2V0Um93KHJvd251bSk7CisgICAgICAgICAgICBIU1NGQ2VsbCBjZWxsQiA9IHJvdy5n
ZXRDZWxsKDEpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDZWxsVmFsdWUg
Y3YgPSBmZS5ldmFsdWF0ZShjZWxsQik7CisgICAgICAgICAgICAgICAgYXNzZXJ0Rm9ybXVsYVJl
c3VsdChjdiwgY2VsbEIpOworICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpeworICAg
ICAgICAgICAgICAgIGlmKGZhaWx1cmVzLmxlbmd0aCgpID4gMCkgZmFpbHVyZXMuYXBwZW5kKCdc
bicpOworICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCgiUm93WyIgKyAoY2VsbEIuZ2V0
Um93SW5kZXgoKSArIDEpKyAiXTogIiArIGNlbGxCLmdldENlbGxGb3JtdWxhKCkgKyAiICIpOwor
ICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZChlLmdldE1lc3NhZ2UoKSk7CisgICAgICAg
ICAgICAgICAgZmFpbHVyZUNvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBpZihmYWlsdXJlcy5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBB
c3NlcnRpb25GYWlsZWRFcnJvcihmYWlsdXJlQ291bnQgKyAiIElSUiBldmFsdWF0aW9ucyBmYWls
ZWQ6XG4iICsgZmFpbHVyZXMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBw
cml2YXRlIHN0YXRpYyB2b2lkIGFzc2VydEZvcm11bGFSZXN1bHQoQ2VsbFZhbHVlIGN2LCBIU1NG
Q2VsbCBjZWxsKXsKKyAgICAgICAgZG91YmxlIGFjdHVhbFZhbHVlID0gY3YuZ2V0TnVtYmVyVmFs
dWUoKTsKKyAgICAgICAgZG91YmxlIGV4cGVjdGVkVmFsdWUgPSBjZWxsLmdldE51bWVyaWNDZWxs
VmFsdWUoKTsgLy8gY2FjaGVkIGZvcm11bGEgcmVzdWx0IGNhbGN1bGF0ZWQgYnkgRXhjZWwKKyAg
ICAgICAgYXNzZXJ0RXF1YWxzKGV4cGVjdGVkVmFsdWUsIGFjdHVhbFZhbHVlLCAxRS00KTsgLy8g
c2hvdWxkIGFncmVlIHdpdGhpbiAwLjAxJQorICAgIH0KK30KSW5kZXg6IHNyYy90ZXN0Y2FzZXMv
b3JnL2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9mdW5jdGlvbnMvVGVzdElyci5qYXZhCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS9wb2kvc3MvZm9ybXVsYS9mdW5jdGlvbnMv
VGVzdElyci5qYXZhCShyZXZpc2lvbiAwKQorKysgc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Bv
aS9zcy9mb3JtdWxhL2Z1bmN0aW9ucy9UZXN0SXJyLmphdmEJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTE4IEBACisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgICBjb250cmlidXRvciBs
aWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGgK
KyAgIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJp
Z2h0IG93bmVyc2hpcC4KKyAgIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRl
ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wCisgICAodGhlICJMaWNlbnNlIik7IHlv
dSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aAorICAgdGhl
IExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAg
ICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNv
ZnR3YXJlCisgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBv
biBhbiAiQVMgSVMiIEJBU0lTLAorICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisg
ICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisKK3BhY2th
Z2Ugb3JnLmFwYWNoZS5wb2kuc3MuZm9ybXVsYS5mdW5jdGlvbnM7CisKK2ltcG9ydCBqdW5pdC5m
cmFtZXdvcmsuVGVzdENhc2U7CitpbXBvcnQganVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxl
ZEVycm9yOworaW1wb3J0IG9yZy5hcGFjaGUucG9pLmhzc2YudXNlcm1vZGVsLio7CitpbXBvcnQg
b3JnLmFwYWNoZS5wb2kuaHNzZi5IU1NGVGVzdERhdGFTYW1wbGVzOworaW1wb3J0IG9yZy5hcGFj
aGUucG9pLnNzLnVzZXJtb2RlbC5DZWxsVmFsdWU7CisKKy8qKgorICogVGVzdHMgZm9yIHtAbGlu
ayBJcnJ9CisgKgorICogQGF1dGhvciBNYXJjZWwgTWF5CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFz
cyBUZXN0SXJyIGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgcHVibGljIHZvaWQgdGVzdElycigp
IHsKKyAgICAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JbnRlcm5hbF9yYXRl
X29mX3JldHVybiNFeGFtcGxlCisgICAgICAgIGRvdWJsZVtdIGluY29tZXMgPSB7LTQwMDBkLCAx
MjAwZCwgMTQxMGQsIDE4NzVkLCAxMDUwZH07CisgICAgICAgIGRvdWJsZSBpcnIgPSBJcnIuaXJy
KGluY29tZXMpOworICAgICAgICBkb3VibGUgaXJyUm91bmRlZCA9IE1hdGgucm91bmQoaXJyICog
MTAwMGQpIC8gMTAwMGQ7CisgICAgICAgIGFzc2VydEVxdWFscygiaXJyIiwgMC4xNDNkLCBpcnJS
b3VuZGVkKTsKKworICAgICAgICAvLyBodHRwOi8vd3d3LnRlY2hvbnRoZW5ldC5jb20vZXhjZWwv
Zm9ybXVsYXMvaXJyLnBocAorICAgICAgICBpbmNvbWVzID0gbmV3IGRvdWJsZVtdey03NTAwZCwg
MzAwMGQsIDUwMDBkLCAxMjAwZCwgNDAwMGR9OworICAgICAgICBpcnIgPSBJcnIuaXJyKGluY29t
ZXMpOworICAgICAgICBpcnJSb3VuZGVkID0gTWF0aC5yb3VuZChpcnIgKiAxMDBkKSAvIDEwMGQ7
CisgICAgICAgIGFzc2VydEVxdWFscygiaXJyIiwgMC4yOGQsIGlyclJvdW5kZWQpOworCisgICAg
ICAgIGluY29tZXMgPSBuZXcgZG91YmxlW117LTEwMDAwZCwgMzQwMGQsIDY1MDBkLCAxMDAwZH07
CisgICAgICAgIGlyciA9IElyci5pcnIoaW5jb21lcyk7CisgICAgICAgIGlyclJvdW5kZWQgPSBN
YXRoLnJvdW5kKGlyciAqIDEwMGQpIC8gMTAwZDsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJpcnIi
LCAwLjA1LCBpcnJSb3VuZGVkKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RXZhbHVh
dGVJblNoZWV0KCkgeworICAgICAgICBIU1NGV29ya2Jvb2sgd2IgPSBuZXcgSFNTRldvcmtib29r
KCk7CisgICAgICAgIEhTU0ZTaGVldCBzaGVldCA9IHdiLmNyZWF0ZVNoZWV0KCJTaGVldDEiKTsK
KyAgICAgICAgSFNTRlJvdyByb3cgPSBzaGVldC5jcmVhdGVSb3coMCk7CisKKyAgICAgICAgcm93
LmNyZWF0ZUNlbGwoMCkuc2V0Q2VsbFZhbHVlKC00MDAwZCk7CisgICAgICAgIHJvdy5jcmVhdGVD
ZWxsKDEpLnNldENlbGxWYWx1ZSgxMjAwZCk7CisgICAgICAgIHJvdy5jcmVhdGVDZWxsKDIpLnNl
dENlbGxWYWx1ZSgxNDEwZCk7CisgICAgICAgIHJvdy5jcmVhdGVDZWxsKDMpLnNldENlbGxWYWx1
ZSgxODc1ZCk7CisgICAgICAgIHJvdy5jcmVhdGVDZWxsKDQpLnNldENlbGxWYWx1ZSgxMDUwZCk7
CisKKyAgICAgICAgSFNTRkNlbGwgY2VsbCA9IHJvdy5jcmVhdGVDZWxsKDUpOworICAgICAgICBj
ZWxsLnNldENlbGxGb3JtdWxhKCJJUlIoQTE6RTEpIik7CisKKyAgICAgICAgSFNTRkZvcm11bGFF
dmFsdWF0b3IgZmUgPSBuZXcgSFNTRkZvcm11bGFFdmFsdWF0b3Iod2IpOworICAgICAgICBmZS5j
bGVhckFsbENhY2hlZFJlc3VsdFZhbHVlcygpOworICAgICAgICBmZS5ldmFsdWF0ZUZvcm11bGFD
ZWxsKGNlbGwpOworICAgICAgICBkb3VibGUgcmVzID0gY2VsbC5nZXROdW1lcmljQ2VsbFZhbHVl
KCk7CisgICAgICAgIGFzc2VydEVxdWFscygwLjE0M2QsIE1hdGgucm91bmQocmVzICogMTAwMGQp
IC8gMTAwMGQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RJcnJGcm9tU3ByZWFkc2hl
ZXQoKXsKKyAgICAgICAgSFNTRldvcmtib29rIHdiID0gSFNTRlRlc3REYXRhU2FtcGxlcy5vcGVu
U2FtcGxlV29ya2Jvb2soIklyck5wdlRlc3RDYXNlRGF0YS54bHMiKTsKKyAgICAgICAgSFNTRlNo
ZWV0IHNoZWV0ID0gd2IuZ2V0U2hlZXQoIklSUi1OUFYiKTsKKyAgICAgICAgSFNTRkZvcm11bGFF
dmFsdWF0b3IgZmUgPSBuZXcgSFNTRkZvcm11bGFFdmFsdWF0b3Iod2IpOworICAgICAgICBTdHJp
bmdCdWZmZXIgZmFpbHVyZXMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBmYWls
dXJlQ291bnQgPSAwOworICAgICAgICAvLyBUT0RPIFlLOiBGb3JtdWxhcyBpbiByb3dzIDE2IGFu
ZCAxNyBvcGVyYXRlIHdpdGggQXJyYXlQdGcgd2hpY2ggaXNuJ3QgeWV0IHN1cHBvcnRlZAorICAg
ICAgICAvLyBGb3JtdWxhRXZhbHVhdG9yIGFzIG9mIHIxMDQxNDA3IHRocm93cyAiVW5leHBlY3Rl
ZCBwdGcgY2xhc3MgKG9yZy5hcGFjaGUucG9pLnNzLmZvcm11bGEucHRnLkFycmF5UHRnKSIKKyAg
ICAgICAgZm9yKGludCByb3dudW0gPSA5OyByb3dudW0gPD0gMTU7IHJvd251bSsrKXsKKyAgICAg
ICAgICAgIEhTU0ZSb3cgcm93ID0gc2hlZXQuZ2V0Um93KHJvd251bSk7CisgICAgICAgICAgICBI
U1NGQ2VsbCBjZWxsQSA9IHJvdy5nZXRDZWxsKDApOworICAgICAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgICAgICBDZWxsVmFsdWUgY3YgPSBmZS5ldmFsdWF0ZShjZWxsQSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0Rm9ybXVsYVJlc3VsdChjdiwgY2VsbEEpOworICAgICAgICAgICAgfSBjYXRj
aCAoVGhyb3dhYmxlIGUpeworICAgICAgICAgICAgICAgIGlmKGZhaWx1cmVzLmxlbmd0aCgpID4g
MCkgZmFpbHVyZXMuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVu
ZCgiUm93WyIgKyAoY2VsbEEuZ2V0Um93SW5kZXgoKSArIDEpKyAiXTogIiArIGNlbGxBLmdldENl
bGxGb3JtdWxhKCkgKyAiICIpOworICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZChlLmdl
dE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgZmFpbHVyZUNvdW50Kys7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIEhTU0ZDZWxsIGNlbGxDID0gcm93LmdldENlbGwoMik7IC8vSVJS
LU5QViByZWxhdGlvbnNoaXA6IE5QVihJUlIodmFsdWVzKSwgdmFsdWVzKSA9IDAKKyAgICAgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2VsbFZhbHVlIGN2ID0gZmUuZXZhbHVhdGUoY2Vs
bEMpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygwLCBjdi5nZXROdW1iZXJWYWx1ZSgp
LCAxRS00KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSBlKXsKKyAgICAgICAgICAg
ICAgICBpZihmYWlsdXJlcy5sZW5ndGgoKSA+IDApIGZhaWx1cmVzLmFwcGVuZCgnXG4nKTsKKyAg
ICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQoIlJvd1siICsgKGNlbGxDLmdldFJvd0luZGV4
KCkgKyAxKSsgIl06ICIgKyBjZWxsQy5nZXRDZWxsRm9ybXVsYSgpICsgIiAiKTsKKyAgICAgICAg
ICAgICAgICBmYWlsdXJlcy5hcHBlbmQoZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAg
IGZhaWx1cmVDb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYo
ZmFpbHVyZXMubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9u
RmFpbGVkRXJyb3IoZmFpbHVyZUNvdW50ICsgIiBJUlIgYXNzZXJ0aW9ucyBmYWlsZWQ6XG4iICsg
ZmFpbHVyZXMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHByaXZhdGUg
c3RhdGljIHZvaWQgYXNzZXJ0Rm9ybXVsYVJlc3VsdChDZWxsVmFsdWUgY3YsIEhTU0ZDZWxsIGNl
bGwpeworICAgICAgICBkb3VibGUgYWN0dWFsVmFsdWUgPSBjdi5nZXROdW1iZXJWYWx1ZSgpOwor
ICAgICAgICBkb3VibGUgZXhwZWN0ZWRWYWx1ZSA9IGNlbGwuZ2V0TnVtZXJpY0NlbGxWYWx1ZSgp
OyAvLyBjYWNoZWQgZm9ybXVsYSByZXN1bHQgY2FsY3VsYXRlZCBieSBFeGNlbAorICAgICAgICBh
c3NlcnRFcXVhbHMoIkludmFsaWQgZm9ybXVsYSByZXN1bHQ6ICIgKyBjdi50b1N0cmluZygpLCBI
U1NGQ2VsbC5DRUxMX1RZUEVfTlVNRVJJQywgY3YuZ2V0Q2VsbFR5cGUoKSk7CisgICAgICAgIGFz
c2VydEVxdWFscyhleHBlY3RlZFZhbHVlLCBhY3R1YWxWYWx1ZSwgMUUtNCk7IC8vIHNob3VsZCBh
Z3JlZSB3aXRoaW4gMC4wMSUKKyAgICB9Cit9Cg==
26384
2010-12-09 05:08:42 +0000
2010-12-09 05:08:42 +0000
test-data/spreadsheet/IrrNpvTestCaseData.xls
IrrNpvTestCaseData.xls
application/vnd.ms-excel
28672
yegor
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAANgAAAAAAAAAA
EAAA/v///wAAAAD+////AAAAADUAAAD/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////8J
CBAAAAYFAOwVzQfJAAEABgMAAOEAAgCwBMEAAgAAAOIAAABcAHAADAAAWWVnb3IgS296bG92ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIAAgCwBGEBAgAAAMABAAA9AQYA
AQACAAMAnAACAA4AGQACAAAAEgACAAAAEwACAAAArwECAAAAvAECAAAAPQASAAAAHgDTSjkhOAAA
AAAAAQBYAkAAAgAAAI0AAgAAACIAAgAAAA4AAgABALcBAgAAANoAAgAAADEAHgDcAAAACACQAQAA
AAIA5QcBQwBhAGwAaQBiAHIAaQAxAB4A3AAAAAgAkAEAAAACAOUHAUMAYQBsAGkAYgByAGkAMQAe
ANwAAAAIAJABAAAAAgDlBwFDAGEAbABpAGIAcgBpADEAHgDcAAAACACQAQAAAAIA5QcBQwBhAGwA
aQBiAHIAaQAxAB4A3AAAAAgAkAEAAAACAOUHAUMAYQBsAGkAYgByAGkAMQAeANwAAQAIALwCAAAA
AgDlBwFDAGEAbABpAGIAcgBpADEAHgCgAAAA/3+QAQAAAAIA5QcBQwBhAGwAaQBiAHIAaQAxAB4A
3AAAAAgAkAEAAAACAOUHAUMAYQBsAGkAYgByAGkAMQAeANwAAAAJAJABAAAAAgDlBwFDAGEAbABp
AGIAcgBpADEAHgDcAAAAFACQAQAAAAIA5QcBQwBhAGwAaQBiAHIAaQAxAB4A3AABADQAvAIAAAAC
AOUHAUMAYQBsAGkAYgByAGkAMQAeANwAAQAJALwCAAAAAgDlBwFDAGEAbABpAGIAcgBpADEAHgDc
AAIAFwCQAQAAAAIA5QcBQwBhAGwAaQBiAHIAaQAxAB4A3AAEABQAkAEAAAECAOUHAUMAYQBsAGkA
YgByAGkAMQAeANwAAAARAJABAAAAAgDlBwFDAGEAbABpAGIAcgBpADEAHgAsAQEAOAC8AgAAAAIA
5QcBQwBhAGwAaQBiAHIAaQAxAB4ABAEBADgAvAIAAAACAOUHAUMAYQBsAGkAYgByAGkAMQAeANwA
AQA4ALwCAAAAAgDlBwFDAGEAbABpAGIAcgBpADEAHgDcAAQADACQAQAAAQIA5QcBQwBhAGwAaQBi
AHIAaQAxAB4A3AAAAD4AkAEAAAACAOUHAUMAYQBsAGkAYgByAGkAMQAeANwAAAA0AJABAAAAAgDl
BwFDAGEAbABpAGIAcgBpADEAHgDcAAAAPACQAQAAAAIA5QcBQwBhAGwAaQBiAHIAaQAxAB4A3AAB
AD8AvAIAAAACAOUHAUMAYQBsAGkAYgByAGkAMQAeAGgBAQA4ALwCAAAAAgDlBwFDAGEAbQBiAHIA
aQBhADEAHgDcAAEACAC8AgAAAAIA5QcBQwBhAGwAaQBiAHIAaQAxAB4A3AAAAAoAkAEAAAACAOUH
AUMAYQBsAGkAYgByAGkAHgQcAAUAFwAAIiQiIywjIzBfKTtcKCIkIiMsIyMwXCkeBCEABgAcAAAi
JCIjLCMjMF8pO1tSZWRdXCgiJCIjLCMjMFwpHgQiAAcAHQAAIiQiIywjIzAuMDBfKTtcKCIkIiMs
IyMwLjAwXCkeBCcACAAiAAAiJCIjLCMjMC4wMF8pO1tSZWRdXCgiJCIjLCMjMC4wMFwpHgQ3ACoA
MgAAXygiJCIqICMsIyMwXyk7XygiJCIqIFwoIywjIzBcKTtfKCIkIiogIi0iXyk7XyhAXykeBC4A
KQApAABfKCogIywjIzBfKTtfKCogXCgjLCMjMFwpO18oKiAiLSJfKTtfKEBfKR4EPwAsADoAAF8o
IiQiKiAjLCMjMC4wMF8pO18oIiQiKiBcKCMsIyMwLjAwXCk7XygiJCIqICItIj8/Xyk7XyhAXyke
BDYAKwAxAABfKCogIywjIzAuMDBfKTtfKCogXCgjLCMjMC4wMFwpO18oKiAiLSI/P18pO18oQF8p
HgQVAKQAEAAAIlllcyI7IlllcyI7Ik5vIh4EGgClABUAACJUcnVlIjsiVHJ1ZSI7IkZhbHNlIh4E
FACmAA8AACJPbiI7Ik9uIjsiT2ZmIh4EXQCnACwAAVsAJACsIC0AMgBdAFwAIAAjACwAIwAjADAA
LgAwADAAXwApADsAWwBSAGUAZABdAFwAKABbACQArCAtADIAXQBcACAAIwAsACMAIwAwAC4AMAAw
AFwAKQDgABQAAAAAAPX/IAAAAAAAAAAAAAAAwCDgABQAAQAAAPX/IAAA9AAAAAAAAAAAwCDgABQA
AQAAAPX/IAAA9AAAAAAAAAAAwCDgABQAAgAAAPX/IAAA9AAAAAAAAAAAwCDgABQAAgAAAPX/IAAA
9AAAAAAAAAAAwCDgABQACAAAAPX/IAAA9AAAAAAAAAAAwCDgABQACAAAAPX/IAAA9AAAAAAAAAAA
wCDgABQACAAAAPX/IAAA9AAAAAAAAAAAwCDgABQACAAAAPX/IAAA9AAAAAAAAAAAwCDgABQACAAA
APX/IAAA9AAAAAAAAAAAwCDgABQACAAAAPX/IAAA9AAAAAAAAAAAwCDgABQACAAAAPX/IAAA9AAA
AAAAAAAAwCDgABQACAAAAPX/IAAA9AAAAAAAAAAAwCDgABQACAAAAPX/IAAA9AAAAAAAAAAAwCDg
ABQACAAAAPX/IAAA9AAAAAAAAAAAwCDgABQAAAAAAAEAIAAAAAAAAAAAAAACwCDgABQACAAAAPX/
IAAAtAAAAAAAAAAEnyDgABQACAAAAPX/IAAAtAAAAAAAAAAErSDgABQACAAAAPX/IAAAtAAAAAAA
AAAEqiDgABQACAAAAPX/IAAAtAAAAAAAAAAEriDgABQACAAAAPX/IAAAtAAAAAAAAAAEmyDgABQA
CAAAAPX/IAAAtAAAAAAAAAAEryDgABQACAAAAPX/IAAAtAAAAAAAAAAErCDgABQACAAAAPX/IAAA
tAAAAAAAAAAEnSDgABQACAAAAPX/IAAAtAAAAAAAAAAEiyDgABQACAAAAPX/IAAAtAAAAAAAAAAE
riDgABQACAAAAPX/IAAAtAAAAAAAAAAErCDgABQACAAAAPX/IAAAtAAAAAAAAAAEsyDgABQACQAA
APX/IAAAtAAAAAAAAAAEniDgABQACQAAAPX/IAAAtAAAAAAAAAAEnSDgABQACQAAAPX/IAAAtAAA
AAAAAAAEiyDgABQACQAAAPX/IAAAtAAAAAAAAAAEpCDgABQACQAAAPX/IAAAtAAAAAAAAAAEsSDg
ABQACQAAAPX/IAAAtAAAAAAAAAAEtCDgABQACQAAAPX/IAAAtAAAAAAAAAAEviDgABQACQAAAPX/
IAAAtAAAAAAAAAAEiiDgABQACQAAAPX/IAAAtAAAAAAAAAAEuSDgABQACQAAAPX/IAAAtAAAAAAA
AAAEpCDgABQACQAAAPX/IAAAtAAAAAAAAAAEsSDgABQACQAAAPX/IAAAtAAAAAAAAAAEtSDgABQA
CgAAAPX/IAAAtAAAAAAAAAAErSDgABQACwAAAPX/IAAAlBERlwuXCwAEliDgABQADAAAAPX/IAAA
lGZmvx+/HwAEtyDgABQABQArAPX/IAAA+AAAAAAAAAAAwCDgABQABQApAPX/IAAA+AAAAAAAAAAA
wCDgABQABQAsAPX/IAAA+AAAAAAAAAAAwCDgABQABQAqAPX/IAAA+AAAAAAAAAAAwCDgABQADQAA
APX/IAAA9AAAAAAAAAAAwCDgABQADgAAAPT/AAAA9AAAAAAAAAAAwCDgABQADwAAAPX/IAAAtAAA
AAAAAAAEqiDgABQAEAAAAPX/IAAA1ABQAAAAHwAAwCDgABQAEQAAAPX/IAAA1ABQAAAACwAAwCDg
ABQAEgAAAPX/IAAA1AAgAAAADwAAwCDgABQAEgAAAPX/IAAA9AAAAAAAAAAAwCDgABQAEwAAAPT/
AAAA9AAAAAAAAAAAwCDgABQAFAAAAPX/IAAAlBERlwuXCwAEryDgABQAFQAAAPX/IAAA1ABgAAAA
GgAAwCDgABQAFgAAAPX/IAAAtAAAAAAAAAAEqyDgABQABQAAAPX/IAAAnBERFgsWCwAEmiDgABQA
FwAAAPX/IAAAlBERvx+/HwAEliDgABQABQAJAPX/IAAA+AAAAAAAAAAAwCDgABQAGAAAAPX/IAAA
9AAAAAAAAAAAwCDgABQAGQAAAPX/IAAA1ABhAAA+HwAAwCDgABQAGgAAAPX/IAAA9AAAAAAAAAAA
wCDgABQABgAAAAEAIAAACAAAAAAAAAAAwCDgABQAAAAJAAEAIAAABAAAAAAAAAACwCDgABQABgAA
AAEAIwAAGAAAAAAAAAAAwCDgABQAAAADAAEACQAAVAAAAAAAAAACwCDgABQAAAAAAAEACQAAUAAA
AAAAAAACwCDgABQAAAAIAAEAIAAABAAAAAAAAAACwCDgABQABgADAAEACwAAXAAAAAAAAAAGFiDg
ABQABgAAAAEACwAAWAAAAAAAAAAGFiDgABQABgAAAAEAIAAASAAAAAAAAAAGFiDgABQAAAAxAAEA
IAAABAAAAAAAAAACwCDgABQAAAAxAAEACQAAVAAAAAAAAAACwCCTAhIAEAANAAAyMCUgLSBBY2Nl
bnQxkwISABEADQAAMjAlIC0gQWNjZW50MpMCEgASAA0AADIwJSAtIEFjY2VudDOTAhIAEwANAAAy
MCUgLSBBY2NlbnQ0kwISABQADQAAMjAlIC0gQWNjZW50NZMCEgAVAA0AADIwJSAtIEFjY2VudDaT
AhIAFgANAAA0MCUgLSBBY2NlbnQxkwISABcADQAANDAlIC0gQWNjZW50MpMCEgAYAA0AADQwJSAt
IEFjY2VudDOTAhIAGQANAAA0MCUgLSBBY2NlbnQ0kwISABoADQAANDAlIC0gQWNjZW50NZMCEgAb
AA0AADQwJSAtIEFjY2VudDaTAhIAHAANAAA2MCUgLSBBY2NlbnQxkwISAB0ADQAANjAlIC0gQWNj
ZW50MpMCEgAeAA0AADYwJSAtIEFjY2VudDOTAhIAHwANAAA2MCUgLSBBY2NlbnQ0kwISACAADQAA
NjAlIC0gQWNjZW50NZMCEgAhAA0AADYwJSAtIEFjY2VudDaTAgwAIgAHAABBY2NlbnQxkwIMACMA
BwAAQWNjZW50MpMCDAAkAAcAAEFjY2VudDOTAgwAJQAHAABBY2NlbnQ0kwIMACYABwAAQWNjZW50
NZMCDAAnAAcAAEFjY2VudDaTAggAKAADAABCYWSTAhAAKQALAABDYWxjdWxhdGlvbpMCDwAqAAoA
AENoZWNrIENlbGyTAgQAK4AD/5MCBAAsgAb/kwIEAC2ABP+TAgQALoAH/5MCFQAvABAAAEV4cGxh
bmF0b3J5IFRleHSTAgQAMIAJ/5MCCQAxAAQAAEdvb2STAg4AMgAJAABIZWFkaW5nIDGTAg4AMwAJ
AABIZWFkaW5nIDKTAg4ANAAJAABIZWFkaW5nIDOTAg4ANQAJAABIZWFkaW5nIDSTAgQANoAI/5MC
CgA3AAUAAElucHV0kwIQADgACwAATGlua2VkIENlbGyTAgwAOQAHAABOZXV0cmFskwIEAACAAP+T
AgkAOgAEAABOb3RlkwILADsABgAAT3V0cHV0kwIEADyABf+TAgoAPQAFAABUaXRsZZMCCgA+AAUA
AFRvdGFskwIRAD8ADAAAV2FybmluZyBUZXh0YAECAAAAhQAPAKkzAAAAAAcASVJSLU5QVoUADgAU
QQAAAAAGAFNoZWV0MoUADgBkSAAAAAAGAFNoZWV0M4wABAABAAEArgEEAAMAAQQXAAgAAQAAAAAA
AAAYAB8AAAAABQsAAAABAAAAAAAAYTJfYTY7AAABAAUAAAAAABgAHwAAAAAFCwAAAAEAAAAAAABh
Ml9hNzsAAAEABgAAAAAAGAAhAAAAAAkJAAAAAQAAAAAAAGlycl9ndWVzcx+amZmZmZmpvxgAPwAA
AAAKCAAAAAEAAAAAAABpcnJfdmFsdWVzYAIAANRSMAUCAAABAAAAAAAX8cABAAAAAABwx0ABAAAA
AABMzUDBAQgAwQEAACK+AQD8AFcBEgAAABIAAAAaAABJbml0aWFsIGNvc3Qgb2YgYSBidXNpbmVz
cx0AAE5ldCBpbmNvbWUgZm9yIHRoZSBmaXJzdCB5ZWFyHgAATmV0IGluY29tZSBmb3IgdGhlIHNl
Y29uZCB5ZWFyHQAATmV0IGluY29tZSBmb3IgdGhlIHRoaXJkIHllYXIeAABOZXQgaW5jb21lIGZv
ciB0aGUgZm91cnRoIHllYXIdAABOZXQgaW5jb21lIGZvciB0aGUgZmlmdGggeWVhcgQAAERhdGEL
AABEZXNjcmlwdGlvbgMAAElSUjEAAElSUi1OUFYgUmVsYXRpb25zaGlwOgpOUFYoSVJSKHZhbHVl
cyksdmFsdWVzKSA9IDADAABOUFYHAAAxLjAwMDAxBgAALTcwMDAwBQAAMTIwMDAFAAAxNTAwMAUA
ADE4MDAwBQAAMjEwMDAFAAAyNjAwMP8AGgAIACcSAAAMAAAA+xIAAOAAAABmEwAASwEAAGMIFgBj
CAAAAAAAAAAAAAAWAAAAAAAAAAIAfAgUAHwIAAAAAAAAAAAAAAAASwDyYxcifQgtAH0IAAAAAAAA
AAAAAAAAAAAAAAIADQAUAAMAAAABAAAAADAAMABfACkOAAUAAn0ILQB9CAAAAAAAAAAAAAAAAAUA
AAACAA0AFAADAAAAAQAAAAAwADAAXwApDgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAAGAAAAAgANABQA
AwAAAAEAAAAAMAAwAF8AKQ4ABQACfQgtAH0IAAAAAAAAAAAAAAAABwAAAAIADQAUAAMAAAABAAAA
ADAAMABfACkOAAUAAn0ILQB9CAAAAAAAAAAAAAAAAAgAAAACAA0AFAADAAAAAQAAAAAwADAAXwAp
DgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAAJAAAAAgANABQAAwAAAAEAAAAAMAAwAF8AKQ4ABQACfQgt
AH0IAAAAAAAAAAAAAAAACgAAAAIADQAUAAMAAAABAAAAADAAMABfACkOAAUAAn0ILQB9CAAAAAAA
AAAAAAAAAAsAAAACAA0AFAADAAAAAQAAAAAwADAAXwApDgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAAM
AAAAAgANABQAAwAAAAEAAAAAMAAwAF8AKQ4ABQACfQgtAH0IAAAAAAAAAAAAAAAADQAAAAIADQAU
AAMAAAABAAAAADAAMABfACkOAAUAAn0ILQB9CAAAAAAAAAAAAAAAAA4AAAACAA0AFAADAAAAAQAA
AAAwADAAXwApDgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAAPAAAAAgANABQAAwAAAAEAAAAAMAAwAF8A
KQ4ABQACfQhBAH0IAAAAAAAAAAAAAAAAEAAAAAMADQAUAAMAAAABAAAAADAAMABfACkOAAUAAgQA
FAADAGVmBAAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAEQAAAAMADQAUAAMAAAABAAAAADAA
MABfACkOAAUAAgQAFAADAGVmBQAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAEgAAAAMADQAU
AAMAAAABAAAAADAAMABfACkOAAUAAgQAFAADAGVmBgAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAA
AAAAEwAAAAMADQAUAAMAAAABAAAAADAAMABfACkOAAUAAgQAFAADAGVmBwAAAFsAJACsIC0AfQhB
AH0IAAAAAAAAAAAAAAAAFAAAAAMADQAUAAMAAAABAAAAADAAMABfACkOAAUAAgQAFAADAGVmCAAA
AFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAFQAAAAMADQAUAAMAAAABAAAAADAAMABfACkOAAUA
AgQAFAADAGVmCQAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAFgAAAAMADQAUAAMAAAABAAAA
ADAAMABfACkOAAUAAgQAFAADAMxMBAAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAFwAAAAMA
DQAUAAMAAAABAAAAADAAMABfACkOAAUAAgQAFAADAMxMBQAAAFsAJACsIC0AfQhBAH0IAAAAAAAA
AAAAAAAAGAAAAAMADQAUAAMAAAABAAAAADAAMABfACkOAAUAAgQAFAADAMxMBgAAAFsAJACsIC0A
fQhBAH0IAAAAAAAAAAAAAAAAGQAAAAMADQAUAAMAAAABAAAAADAAMABfACkOAAUAAgQAFAADAMxM
BwAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAGgAAAAMADQAUAAMAAAABAAAAADAAMABfACkO
AAUAAgQAFAADAMxMCAAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAGwAAAAMADQAUAAMAAAAB
AAAAADAAMABfACkOAAUAAgQAFAADAMxMCQAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAHAAA
AAMADQAUAAMAAAAAAAAAADAAMABfACkOAAUAAgQAFAADADIzBAAAAFsAJACsIC0AfQhBAH0IAAAA
AAAAAAAAAAAAHQAAAAMADQAUAAMAAAAAAAAAADAAMABfACkOAAUAAgQAFAADADIzBQAAAFsAJACs
IC0AfQhBAH0IAAAAAAAAAAAAAAAAHgAAAAMADQAUAAMAAAAAAAAAADAAMABfACkOAAUAAgQAFAAD
ADIzBgAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAHwAAAAMADQAUAAMAAAAAAAAAADAAMABf
ACkOAAUAAgQAFAADADIzBwAAAFsAJACsIC0AfQhBAH0IAAAAAAAAAAAAAAAAIAAAAAMADQAUAAMA
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
AHAAdQB0AAAABwABAAwABf8AAP/Mmf8FAAwABf8AAD8/dv8lAAUAAgYADgAF/wAAf39//wEABwAO
AAX/AAB/f3//AQAIAA4ABf8AAH9/f/8BAAkADgAF/wAAf39//wEAkghLAJIIAAAAAAAAAAAAAAEC
GP8LAEwAaQBuAGsAZQBkACAAQwBlAGwAbAAAAAMABQAMAAX/AAD6fQD/JQAFAAIHAA4ABf8AAP+A
Af8GAJIIQQCSCAAAAAAAAAAAAAABARz/BwBOAGUAdQB0AHIAYQBsAAAAAwABAAwABf8AAP/rnP8F
AAwABf8AAJxlAP8lAAUAApIIMwCSCAAAAAAAAAAAAAABAQD/BgBOAG8AcgBtAGEAbAAAAAIABQAM
AAcBAAAAAAD/JQAFAAKSCGIAkggAAAAAAAAAAAAAAQIK/wQATgBvAHQAZQAAAAUAAQAMAAX/AAD/
/8z/BgAOAAX/AACysrL/AQAHAA4ABf8AALKysv8BAAgADgAF/wAAsrKy/wEACQAOAAX/AACysrL/
AQCSCHcAkggAAAAAAAAAAAAAAQIV/wYATwB1AHQAcAB1AHQAAAAHAAEADAAF/wAA8vLy/wUADAAF
/wAAPz8//yUABQACBgAOAAX/AAA/Pz//AQAHAA4ABf8AAD8/P/8BAAgADgAF/wAAPz8//wEACQAO
AAX/AAA/Pz//AQCSCCQAkggAAAAAAAAAAAAAAQUF/wcAUABlAHIAYwBlAG4AdAAAAAAAkggxAJII
AAAAAAAAAAAAAAEDD/8FAFQAaQB0AGwAZQAAAAIABQAMAAcDAAAfSX3/JQAFAAGSCE0AkggAAAAA
AAAAAAAAAQMZ/wUAVABvAHQAYQBsAAAABAAFAAwABwEAAAAAAP8lAAUAAgYADgAHBAAAT4G9/wEA
BwAOAAcEAABPgb3/BgCSCD8AkggAAAAAAAAAAAAAAQIL/wwAVwBhAHIAbgBpAG4AZwAgAFQAZQB4
AHQAAAACAAUADAAF/wAA/wAA/yUABQACjghYAI4IAAAAAAAAAAAAAJAAAAARABEAVABhAGIAbABl
AFMAdAB5AGwAZQBNAGUAZABpAHUAbQA5AFAAaQB2AG8AdABTAHQAeQBsAGUATABpAGcAaAB0ADEA
NgCaCBgAmggAAAAAAAAAAAAAAQAAAAAAAAACAAAAowgQAKMIAAAAAAAAAAAAAAAAAACWCBAAlggA
AAAAAAAAAAAAQuUBAJsIEACbCAAAAAAAAAAAAAABAAAAjAgQAIwIAAAAAAAAAAAAAAAAAAAKAAAA
CQgQAAAGEADsFc0HyQABAAYDAAALAhQAAAAAAAAAAAASAAAAkzgAAEhAAAANAAIAAQAMAAIAZAAP
AAIAAQARAAIAAAAQAAgA/Knx0k1iUD9fAAIAAQAqAAIAAAArAAIAAACCAAIAAQCAAAgAAAAAAAAA
AAAlAgQAAAAdAYEAAgDBBBQAAAAVAAAAgwACAAAAhAACAAAAJgAIAGZmZmZmZuY/JwAIAGZmZmZm
ZuY/KAAIAAAAAAAAAOg/KQAIAAAAAAAAAOg/TQD6AwAARQBQAFMATwBOACAAVABYADUANQAwAFcA
IABTAGUAcgBpAGUAcwAAACAAVABYADUANQAwAFcAIABTAGUAcgAAAAEEEAXcABwDD5uABwEAAQDq
Cm8IZAABAAcAaAECAAEAaAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAA
AAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAQGQRFAFAAUwBPAE4AIABUAFgANQA1ADAAVwAgAFMA
ZQByAGkAZQBzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEEBQMA
AAAAAAAAAAAAAAAAAA0AAAAFAAUAAwD//wQAAQAAAAEAAgAAAAQACADcAAYAAAAAAAAAAgAAAAAA
AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
AAMAAAAEAAAAAAAAAIABAAAAAAAAAAAAAAAAAAAGAAAAEAIAAEAAAABAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPAHAAZQBu
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
ZmZmZuY/JwAIAGZmZmZmZuY/KAAIAAAAAAAAAOg/KQAIAAAAAAAAAOg/TQD6AwAARQBQAFMATwBO
ACAAVABYADUANQAwAFcAIABTAGUAcgBpAGUAcwAAACAAVABYADUANQAwAFcAIABTAGUAcgAAAAEE
EAXcABwDD5uABwEAAQDqCm8IZAABAAcAaAECAAEAaAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAADAAAAAgAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAQGQRFAFAAUwBPAE4AIABU
AFgANQA1ADAAVwAgAFMAZQByAGkAZQBzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AAAAAAAAAAAAAAEEBQMAAAAAAAAAAAAAAAAAAA0AAAAFAAUAAwD//wQAAQAAAAEAAgAAAAQACADc
AAYAAAAAAAAAAgAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAQAAAAMAAAAEAAAAAAAAAIABAAAAAAAAAAAAAAAAAAAGAAAAEAIAAEAAAABA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABPAHAAZQBuACAAYwBmAGcAIABmAGkAbABlACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAUgMAAEwEAAACAAEAAAAAAGgBAABoAQAAoAsAACQPAABoAQAAaAEA
APQLAAB4DwAAKgAAACoAAAAqAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAD0CwAAeA8AACoAAAAqAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAD+/wAABQECAAAAAAAAAAAAAAAAAAAAAAABAAAAAtXN1ZwuGxCTlwgAKyz5rjAA
AAAMAQAACAAAAAEAAABIAAAAFwAAAFAAAAALAAAAWAAAABAAAABgAAAAEwAAAGgAAAAWAAAAcAAA
AA0AAAB4AAAADAAAAMoAAAACAAAA5AQAAAMAAADmFQsACwAAAAAAAAALAAAAAAAAAAsAAAAAAAAA
CwAAAAAAAAAeEAAABQAAAAgAAABJUlItTlBWAAcAAABTaGVldDIABwAAAFNoZWV0MwAQAAAAJ0lS
Ui1OUFYnIWEyX2E2ABAAAAAnSVJSLU5QVichYTJfYTcADBAAAAQAAAAeAAAACwAAAFdvcmtzaGVl
dHMAAwAAAAMAAAAeAAAADQAAAE5hbWVkIFJhbmdlcwADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4A
AAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAA
AB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAA/v///yYAAAAnAAAAKAAAACkAAAAqAAAA
KwAAACwAAAD+////LgAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAAP7////9/////v//////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
//9SAG8AbwB0ACAARQBuAHQAcgB5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAFgAFAf//////////AgAAACAIAgAAAAAAwAAAAAAAAEYAAAAAAAAAAAAAAADwDM6i
fZfLAf7///8AAAAAAAAAAFcAbwByAGsAYgBvAG8AawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAIB////////////////AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPRJAAAAAAAABQBTAHUAbQBtAGEAcgB5AEkAbgBmAG8AcgBt
AGEAdABpAG8AbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAgEBAAAAAwAAAP////8AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAABAAAAAAAAAFAEQAbwBjAHUAbQBl
AG4AdABTAHUAbQBtAGEAcgB5AEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAAAAAAAAAAAAAOAACAf//
/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0AAAAAEAAAAAAA
AA==