TimeTrex Community Edition v16.2.0

This commit is contained in:
2022-12-13 07:10:06 +01:00
commit 472f000c1b
6810 changed files with 2636142 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
--TEST--
test file size that happens to be 512 * n bytes
--SKIPIF--
--FILE--
<?php
$dirname = dirname(__FILE__);
require_once $dirname . '/setup.php.inc';
$tar = new Archive_Tar($dirname . '/512nbytesfile.tar.gz', null, 2048);
$tar->add($dirname .'/testblock3');
$tar->listContent();
$phpunit->assertNoErrors('after tar archive listing');
$returnval = shell_exec('tar -Ptf ' . $dirname . '/512nbytesfile.tar.gz | sort');
$phpunit->assertNoErrors('after shell tar listing');
$expectedvalue =
<<< EOD
$dirname/testblock3
$dirname/testblock3/1024bytes.txt
$dirname/testblock3/randombytes.txt
EOD;
$phpunit->assertEquals($expectedvalue, $returnval, 'wrong output for shell tar verification');
echo 'test done'
?>
--CLEAN--
<?php
$dirname = dirname(__FILE__);
@unlink($dirname.'/512nbytesfile.tar.gz');
?>
--EXPECT--
test done

View File

@@ -0,0 +1,46 @@
--TEST--
test saving of dead symbolic links
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
function fileName($item){
return rtrim($item['filename'],'/').' => '.$item['link'];
}
//prepare filesystem
@mkdir('test');
@mkdir('test/a');
@touch('test/b');
@symlink('a', 'test/dir_link');
@symlink('b', 'test/file_link');
@symlink('dead', 'test/dead_link');
//prepare reference tar
system('tar -cf test1.tar test');
$tar1=new Archive_Tar('test1.tar');
$tar1List=array_map('fileName',$tar1->listContent());
//create tar
$tar2=new Archive_Tar('test2.tar');
$tar2->create(array('test','nonExisting'));// to make sure we are still report nonExisting
$tar2List=array_map('fileName',$tar2->listContent());
$phpunit->assertErrors(array(
array('package' => 'PEAR_Error', 'message' => "File 'nonExisting' does not exist")), 'after 1');
$phpunit->assertEquals($tar1List, $tar2List, 'bla');
echo 'tests done';
?>
--CLEAN--
<?php
@rmdir('test/a');
@unlink('test/b');
@unlink('test/dir_link');
@unlink('test/file_link');
@unlink('test/dead_link');
@rmdir('test');
@unlink('test1.tar');
@unlink('test2.tar');
?>
--EXPECT--
tests done

View File

@@ -0,0 +1,24 @@
--TEST--
test directory traversal security vulnerability
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$me = dirname(__FILE__) . '/testit';
$tar = new Archive_Tar(dirname(__FILE__) . '/hamidTARtester2.tar');
$tar->listContent();
$phpunit->assertErrors(array(
array('package' => 'PEAR_Error', 'message' => 'Malicious .tar detected, file "/../../../../../../../../../../../../../../AAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB.txt" will not install in desired directory tree')
), 'after 1');
$tar->extract();
$phpunit->assertErrors(array(
array('package' => 'PEAR_Error', 'message' => 'Malicious .tar detected, file "/../../../../../../../../../../../../../../AAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB.txt" will not install in desired directory tree')
), 'after 2');
echo 'tests done';
?>
--CLEAN--
<?php
@rmdir('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa');
?>
--EXPECT--
tests done

Binary file not shown.

View File

@@ -0,0 +1,20 @@
--TEST--
test files that happen to contain the endblock
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$tar = new Archive_Tar(dirname(__FILE__) . '/testblock.tar.gz');
$tar->add(dirname(__FILE__) . '/testblock1');
$tar->add(dirname(__FILE__) . '/testblock2');
$tar = new Archive_Tar(dirname(__FILE__) . '/testblock.tar.gz');
$tar->listContent();
$phpunit->assertNoErrors('after');
echo 'tests done';
?>
--CLEAN--
<?php
@unlink(dirname(__FILE__) . '/testblock.tar.gz');
?>
--EXPECT--
tests done

View File

@@ -0,0 +1,20 @@
--TEST--
test saving of dead symbolic links
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$tar1 = new Archive_Tar(dirname(__FILE__) . '/text-0.txt');
$tar1->listContent();
$phpunit->assertErrors(array(
array('package' => 'PEAR_Error', 'message' => "Invalid checksum for file \"4&2Vib~Au.=ZqMTw~=}UoF/~5Gs;JTXF*<FyG\"\n" .
'1Hvu#nol Y 21/{G9i|D=$GTI KREuA\wI<wM@dYOKzS{6&]QE8ud|EPb:f?-Gt' . "\n" .
'I#)E9)@;_.0y9`P,&jY! :\.J8uG/a8,.vT[$Fe;>}hm\"#xO7:46y_tg6c-[A&S]z0fke?(B6?$:W$X{E%PO>~UWl8(' . "\n" .
'.%RWPjN55)cd&?oJPgFFZj#+U<qrF:9yIRe\" : UPJX05Zz extracted')), 'after 1');
echo 'tests done';
?>
--CLEAN--
--EXPECT--
tests done

View File

@@ -0,0 +1,30 @@
--TEST--
test trimming of characters in long filenames
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$dirname = dirname(__FILE__) . '/longfilenamedir/';
for ($i = 0; $i < 8; $i++) {
$dirname .= str_pad('', 64, 'a') . '/';
}
$longfilename = $dirname . "b ";
mkdir($dirname, 0777, true);
touch($longfilename);
$tar = new Archive_Tar(dirname(__FILE__) . '/testlongfilename.tar');
$tar->addModify(array($longfilename), '', dirname(__FILE__));
$tar = new Archive_Tar(dirname(__FILE__) . '/testlongfilename.tar');
$files = $tar->listContent();
$file = reset($files);
$lastChar = $file['filename'][strlen($file['filename']) - 1];
$phpunit->assertEquals(' ', $lastChar, 'should contain space as last character');
echo 'tests done';
?>
--CLEAN--
<?php
$dirname = dirname(__FILE__);
unlink($dirname . '/testlongfilename.tar');
system("rm -r $dirname/longfilenamedir");
?>
--EXPECT--
tests done

View File

@@ -0,0 +1,29 @@
--TEST--
test trimming of characters in long symbolic link targets
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$dirname = dirname(__FILE__) . '/longsymlink/';
$longfilename = $dirname . str_repeat("b", 120) . " ";
$symlinkfilename = $dirname . "a";
mkdir($dirname, 0777, true);
touch($longfilename);
symlink($longfilename, $symlinkfilename);
$tar = new Archive_Tar(dirname(__FILE__) . '/testlongsymlink.tar');
$tar->addModify(array($longfilename, $symlinkfilename), '', dirname(__FILE__));
$tar = new Archive_Tar(dirname(__FILE__) . '/testlongsymlink.tar');
$files = $tar->listContent();
$file = end($files);
$lastChar = $file['link'][strlen($file['link']) - 1];
$phpunit->assertEquals(' ', $lastChar, 'should contain space as last character');
echo 'tests done';
?>
--CLEAN--
<?php
$dirname = dirname(__FILE__);
unlink($dirname . '/testlongsymlink.tar');
system("rm -r $dirname/longsymlink");
?>
--EXPECT--
tests done

View File

@@ -0,0 +1,18 @@
--TEST--
tests writes to out-of-path filenames
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$tar = new Archive_Tar(dirname(__FILE__) . '/out_of_path_symlink.tar');
$tar->extract();
$phpunit->assertErrors(array(array('package' => 'PEAR_Error', 'message' => "Out-of-path file extraction {symlink --> /tmp/}")), 'after 1');
$phpunit->assertFileNotExists('symlink/whatever-filename', 'Out-of-path filename should not have succeeded');
echo 'tests done';
?>
--CLEAN--
<?php
@unlink("symlink");
?>
--EXPECT--
tests done

Binary file not shown.

13
vendor/pear/archive_tar/tests/pax.phpt vendored Normal file
View File

@@ -0,0 +1,13 @@
--TEST--
tests if pax global / extended headers are ignored
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$tar = new Archive_Tar(dirname(__FILE__) . '/testpax.tar');
$phpunit->assertEquals(1, count($tar->listContent()), "count should be 1");
echo 'tests done';
?>
--CLEAN--
--EXPECT--
tests done

View File

@@ -0,0 +1,18 @@
--TEST--
test preserving of permissions
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$tar = new Archive_Tar(dirname(__FILE__) . '/testperms.tar');
$tar->extract('', true);
$phpunit->assertNoErrors('after');
echo 'tests done';
?>
--CLEAN--
<?php
@unlink('a');
@unlink('b');
?>
--EXPECT--
tests done

View File

@@ -0,0 +1,414 @@
<?php
@include_once 'Text/Diff.php';
@include_once 'Text/Diff/Renderer.php';
@include_once 'Text/Diff/Renderer/unified.php';
require_once 'PEAR/ErrorStack.php';
require_once 'PEAR.php';
class PEAR_PHPTest
{
var $_diffonly;
var $_errors;
function __construct($diffonly = false, $noStackCatch = false)
{
$this->_diffonly = $diffonly;
$this->_errors = array();
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'pearerrorCallback'));
if (!$noStackCatch) {
PEAR_ErrorStack::setDefaultCallback(array($this, 'pearerrorstackCallback'));
}
}
function pearerrorCallback($err)
{
PEAR_ErrorStack::staticPush('PEAR_Error', -1, 'error', array('obj' => $err),
$err->getMessage());
}
function pearerrorstackCallback($err)
{
$this->_errors[] = $err;
}
function assertPEARError($err, $message)
{
if (is_a($err, 'PEAR_Error')) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Not a PEAR_Error\n";
return false;
}
function assertNoErrors($message, $trace = null)
{
if (count($this->_errors) == 0) {
return true;
}
if ($trace === null) {
$trace = debug_backtrace();
}
$this->_failTest($trace, $message);
foreach ($this->_errors as $err) {
if ($err['package'] == 'PEAR_Error') {
echo "Unexpected PEAR_Error:\n";
echo 'message "' . $err['message'] . "\"\n";
} else {
echo "Unexpected PEAR_ErrorStack error:\n";
echo 'package "' . $err['package'] . "\"\n";
echo 'message "' . $err['message'] . "\"\n";
}
}
$this->_errors = array();
return false;
}
function assertErrors($errors, $message, $trace = null)
{
if (!count($this->_errors)) {
if ($trace === null) {
$trace = debug_backtrace();
}
$this->_failTest($trace, $message);
echo "No errors caught, but errors were expected\n";
return false;
}
if (!isset($errors[0])) {
$errors = array($errors);
}
$failed = false;
foreach ($errors as $err) {
$found = false;
foreach ($this->_errors as $i => $caughterror) {
if ($caughterror['package'] == $err['package']) {
if ($caughterror['message'] == $err['message']) {
$found = true;
break;
}
}
}
if ($found) {
unset($this->_errors[$i]);
continue;
}
if (!$failed) {
if ($trace === null) {
$trace = debug_backtrace();
}
$failed = true;
$this->_failTest($trace, $message);
}
echo "Unthrown error:\n";
if ($err['package'] == 'PEAR_Error') {
echo "PEAR_Error:\n";
} else {
echo "error package: \"$err[package]\"\n";
}
echo "message: \"$err[message]\"\n";
}
if (count($this->_errors)) {
if (!$failed) {
if ($trace === null) {
$trace = debug_backtrace();
}
$failed = true;
$this->_failTest($trace, $message);
}
foreach ($this->_errors as $err) {
echo "Unexpected error:\n";
if ($err['package'] == 'PEAR_Error') {
echo "PEAR_Error:\n";
} else {
echo "error package: \"$err[package]\"\n";
}
echo "message: \"$err[message]\"\n";
}
}
$this->_errors = array();
return !$failed;
}
function assertTrue($test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if ($test === true) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpected non-true value: \n";
var_export($test);
echo "\n'$message'\n";
return false;
}
function assertIsa($control, $test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if (is_a($test, $control)) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpected non-$control object: \n";
var_export($test);
echo "\n'$message'\n";
return false;
}
function assertNull($test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if ($test === null) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpected non-null value: \n";
var_export($test);
echo "\n'$message'\n";
return false;
}
function assertNotNull($test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if ($test !== null) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpected null: \n";
var_export($test);
echo "\n'$message'\n";
return false;
}
function assertSame($test, $test1, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if ($test === $test1) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpectedly two vars are not the same thing: \n";
echo "\n'$message'\n";
return false;
}
function assertNotSame($test, $test1, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if ($test !== $test1) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpectedly two vars are the same thing: \n";
echo "\n'$message'\n";
return false;
}
function assertFalse($test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if ($test === false) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpected non-false value: \n";
var_export($test);
echo "\n'$message'\n";
return false;
}
function assertNotTrue($test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if (!$test) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpected loose true value: \n";
var_export($test);
echo "\n'$message'\n";
return false;
}
function assertNotFalse($test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if ($test) {
return true;
}
$this->_failTest(debug_backtrace(), $message);
echo "Unexpected loose false value: \n";
var_export($test);
echo "\n'$message'\n";
return false;
}
function assertEquals($control, $test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if (str_replace(array("\r", "\n"), array('', ''),
var_export($control, true)) != str_replace(array("\r", "\n"), array('', ''),
var_export($test, true))) {
$this->_failTest(debug_backtrace(), $message);
if (class_exists('Text_Diff')) {
echo "Diff of expecting/received:\n";
$diff = new Text_Diff(
explode("\n", var_export($control, true)),
explode("\n", var_export($test, true)));
// Output the diff in unified format.
$renderer = new Text_Diff_Renderer_unified();
echo $renderer->render($diff);
if ($this->_diffonly) {
return false;
}
}
echo "Expecting:\n";
var_export($control);
echo "\nReceived:\n";
var_export($test);
echo "\n";
return false;
}
return true;
}
function assertFileExists($fname, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if (!@file_exists($fname)) {
$this->_failTest(debug_backtrace(), $message);
echo "File '$fname' does not exist, and should\n";
return false;
}
return true;
}
function assertFileNotExists($fname, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if (@file_exists($fname)) {
$this->_failTest(debug_backtrace(), $message);
echo "File '$fname' exists, and should not\n";
return false;
}
return true;
}
function assertRegEquals($dump, &$reg, $message)
{
$actualdump = var_export(trim($this->dumpReg($reg)), true);
$testdump = var_export(trim($dump), true);
return $this->assertEquals($testdump, $actualdump, $message);
}
function assertPackageInfoEquals($control, $test, $message)
{
$this->assertNoErrors($message, debug_backtrace());
if (isset($control[0])) {
if (!isset($test[0]) || (count($control) != count($test))) {
echo "Invalid packageInfo\n";
$ret = $this->assertEquals($control, $test, $message);
}
$ret = true;
foreach ($control as $i => $packageinfo) {
$ret = $ret &&
$this->assertPackageInfoEquals($packageinfo, $test[$i], $message . $i);
}
return $ret;
}
if (isset($control['_lastmodified'])) {
if (!isset($test['_lastmodified'])) {
echo "_lastmodified is not set in packageInfo() output\n";
$this->_failTest(debug_backtrace(), $message);
return false;
}
}
$savecontrol = sort($control);
$savetest = sort($test);
unset($control['_lastmodified']);
unset($test['_lastmodified']);
if (var_export($control, true) != var_export($test, true)) {
$this->_failTest(debug_backtrace(), $message);
if (class_exists('Text_Diff')) {
echo "Diff of expecting/received:\n";
$diff = new Text_Diff(
explode("\n", var_export($control, true)),
explode("\n", var_export($test, true)));
// Output the diff in unified format.
$renderer = new Text_Diff_Renderer_unified();
echo $renderer->render($diff);
if ($this->_diffonly) {
return false;
}
}
echo "Expecting:\n";
var_export($savecontrol);
echo "\nReceived:\n";
var_export($savetest);
return false;
}
return true;
}
function _sortRegEntries($a, $b)
{
return strnatcasecmp($a['name'], $b['name']);
}
function dumpReg(&$reg)
{
ob_start();
print "dumping registry...\n";
$infos = $reg->packageInfo(null, null, null);
ksort($infos);
foreach ($infos as $channel => $info) {
echo "channel $channel:\n";
usort($info, array($this, '_sortRegEntries'));
foreach ($info as $pkg) {
print $pkg["name"] . ":";
unset($pkg["name"]);
foreach ($pkg as $k => $v) {
if ($k == '_lastmodified') {
print " _lastmodified is set";
continue;
}
if (is_array($v) && $k == 'filelist') {
print " $k=array(";
$i = 0;
foreach ($v as $k2 => $v2) {
if ($i++ > 0) print ",";
print "{$k2}[";
$j = 0;
foreach ($v2 as $k3 => $v3) {
if ($j++ > 0) print ",";
print "$k3=$v3";
}
print "]";
}
print ")";
} else {
print " $k=\"$v\"";
}
}
print "\n";
}
}
print "dump done\n";
$ret = ob_get_contents();
ob_end_clean();
return $ret;
}
function _failTest($trace, $message)
{
echo 'Test Failure: "' . $message . "\"\n in " . $trace[0]['file'] . ' line ' .
$trace[0]['line'] . "\n";
}
function showAll()
{
$this->_diffonly = false;
}
}
?>

View File

@@ -0,0 +1,26 @@
--TEST--
test symbolic links
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$me = dirname(__FILE__) . '/testit';
$tar = new Archive_Tar(dirname(__FILE__) . '/relativesymlink.tar');
$tar->extract();
$phpunit->assertNoErrors('after');
$phpunit->assertFileExists('testme', 'dir');
$phpunit->assertFileExists('testme/a/file1.txt', 'file1.txt');
$phpunit->assertFileExists('testme/b/symlink.txt', 'symlink.txt');
$phpunit->assertTrue(is_link('testme/b/symlink.txt'), 'is link');
echo 'tests done';
?>
--CLEAN--
<?php
@unlink('testme/a/file1.txt');
@unlink('testme/b/symlink.txt');
@rmdir('testme/a');
@rmdir('testme/b');
@rmdir('testme');
?>
--EXPECT--
tests done

Binary file not shown.

View File

@@ -0,0 +1,5 @@
<?php
error_reporting(E_ALL);
require_once dirname(__FILE__) . '/phpt_test.php.inc';
$phpunit = new PEAR_PHPTest(true);
require_once dirname(dirname(__FILE__)) . '/Archive/Tar.php';

View File

@@ -0,0 +1,24 @@
--TEST--
test symbolic links
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$me = dirname(__FILE__) . '/testit';
$tar = new Archive_Tar(dirname(__FILE__) . '/testsymlink.tar');
$tar->extract();
$phpunit->assertNoErrors('after');
$phpunit->assertFileExists('testme', 'dir');
$phpunit->assertFileExists('testme/file1.txt', 'file1.txt');
$phpunit->assertFileExists('testme/symlink.txt', 'symlink.txt');
$phpunit->assertTrue(is_link('testme/symlink.txt'), 'is link');
echo 'tests done';
?>
--CLEAN--
<?php
@unlink('testme/file1.txt');
@unlink('testme/symlink.txt');
@rmdir('testme');
?>
--EXPECT--
tests done

View File

@@ -0,0 +1,28 @@
--TEST--
test symbolic links
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$me = dirname(__FILE__) . '/testit';
$tar = new Archive_Tar(dirname(__FILE__) . '/testsymlink.tar');
$tar->extract('', false, false);
$phpunit->assertErrors(array(
array(
'package' => 'PEAR_Error',
'message' => 'Symbolic links are not allowed. Unable to extract {testme/symlink.txt}'
),
), 'Warning thrown');
$phpunit->assertFileExists('testme', 'dir');
$phpunit->assertFileNotExists('testme/file1.txt', 'file1.txt');
$phpunit->assertFileNotExists('testme/symlink.txt', 'symlink.txt');
echo 'tests done';
?>
--CLEAN--
<?php
@unlink('testme/file1.txt');
@unlink('testme/symlink.txt');
@rmdir('testme');
?>
--EXPECT--
tests done

View File

@@ -0,0 +1 @@
abc

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,16 @@
194 210 54 166 74 179 115 216 109 21 220 29 144 242 90 206
240 73 172 14 153 163 43 16 233 20 186 91 95 150 60 61
180 187 233 126 130 154 116 206 213 231 202 148 148 12 125 24
6 139 32 235 117 240 56 96 23 1 182 167 116 64 92 73
250 177 157 119 121 148 112 50 89 24 37 214 81 88 201 75
162 108 60 114 137 227 170 186 231 213 177 33 44 143 243 98
14 28 226 77 152 241 243 62 103 237 187 235 227 73 9 119
162 64 127 74 73 90 112 200 39 6 173 251 12 191 166 18
235 100 74 184 126 153 23 118 27 25 128 222 234 246 165 159
170 127 236 199 91 67 96 185 108 159 172 2 245 202 161 177
147 188 0 151 251 230 251 100 226 67 212 38 72 32 44 117
10 39 163 159 0 197 160 225 25 177 16 0 240 16 137 105
187 132 129 98 24 210 169 33 246 77 217 145 242 118 181 47
160 61 62 129 71 52 253 85 2 215 174 241 55 32 236 27
160 120 145 188 132 37 161 178 45 227 209 57 142 19 88 175
230 238 104 128 26 196 126 118 214 122 201 123

View File

@@ -0,0 +1,2 @@
250 97 98 194 5 149 229 27 58 62 133 73 95 230 219 128
224 98 210 250 162 58 240 80 202 249 173 203 125 186

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,16 @@
a8,.vT[$Fe;>}hm\"#xO7:46y_tg6c-[A&S]z0fke?(B6?$:W$X{E%PO>~UWl8(
.%RWPjN55)cd&?oJPgFFZj#+U<qrF:9yIRe\S0F}Y|[`+4^::byA2Is7UY8QShd
v]F 1O0_[Ip7.12B"!u!UPJX05ZzKXP<JJ(X@4r(M2D})|TA@b#2zFlG(EQqT@M
[RKXlK41}Q= uEq4`p"ons9eil/$Tbp>T~!xcu46(QhbViq%FShbsm5Qt:8}[V1
ov!|iNrfBH)JBa)G?P*v!@=?:Y^2!)v `wxPQ^xT[~W6&q^Un@"c#g3=M++ 0.x
]^Lo4{|}Q]YN?GSaA/*s,Az>04&2Vib~Au.=ZqMTw~=}UoF/~5Gs;JTXF*<FyG"
1Hvu#nol Y 21/{G9i|D=$GTI KREuA\wI<wM@dYOKzS{6&]QE8ud|EPb:f?-Gt
I#)E9)@;_.0y9`P,&jY! :\.J8uGnUd},~`DXkJ-4\\xK24FvGqX434G#0hXLrH
q3YXk^{Rgb` Gg&hUJY)+IrJffZ<O/7)UYj^I}gy.>C#&Vx%>lw9AdZ_eM{s8B#
II*pD'_4H[LivE<WtfQW1IK'(6%|sQG=C,6nfeRVXJ{u:tTB(A"({4>(4!$@Ak^
=|U/{r5n)I{(01wGUM53800-aIdiv1U_HDvgp2q}X,v-{O! 'u$8RJbBO]<PTA
CiqiD_L,=;^W&n?,ai}U&MV9nU[=,t_qDiCkR]SM18ok;dVe@g+G*`FYtl/{cMq
B8R6kfeHNA{bZU?]{[LMLCqokIld;w&NebP<. :8l4d2[~P*\m+MYT}1RK.q4bH
,:XUk'YazKlPN@_WBpb!\em%]H|A+_Fbqki<fjpahg89Xb$fB5ME~ItuXM5H4Ol
*a1SfkUQmv|+xM+Rz2Wq{sXA^uTU(j;Ne.Tcd3uW;>lJSI3L"hj=z .Bfl)waj*
8.G,qEubj;:xJc@Y14nZ`V|%dIk$GAks_MI|y^0R3)rIY9I.DfD,kZ9ap{z Xn