Real files for bad databases.

This commit is contained in:
gholt 2011-08-02 18:21:25 +00:00
parent dfd61697c1
commit 3628c08b3e
3 changed files with 7 additions and 451 deletions

Binary file not shown.

Binary file not shown.

View File

@ -19,7 +19,7 @@ from __future__ import with_statement
import hashlib import hashlib
import os import os
import unittest import unittest
from shutil import rmtree from shutil import rmtree, copy
from StringIO import StringIO from StringIO import StringIO
from time import sleep, time from time import sleep, time
from uuid import uuid4 from uuid import uuid4
@ -210,9 +210,9 @@ class TestDatabaseBroker(unittest.TestCase):
else: else:
qpath = 'quarantined/test/db' qpath = 'quarantined/test/db'
# Test malformed database # Test malformed database
fp = open(os.path.join(self.testdir, '1.db'), 'wb') copy(os.path.join(os.path.dirname(__file__),
fp.write(EXAMPLE_MALFORMED_DB.decode('hex')) 'malformed_example.db'),
fp.close() os.path.join(self.testdir, '1.db'))
broker = DatabaseBroker(os.path.join(self.testdir, '1.db')) broker = DatabaseBroker(os.path.join(self.testdir, '1.db'))
broker.db_type = 'test' broker.db_type = 'test'
exc = None exc = None
@ -225,9 +225,9 @@ class TestDatabaseBroker(unittest.TestCase):
'Quarantined %s to %s due to malformed database' % 'Quarantined %s to %s due to malformed database' %
(self.testdir, qpath)) (self.testdir, qpath))
# Test corrupted database # Test corrupted database
fp = open(os.path.join(self.testdir, '1.db'), 'wb') copy(os.path.join(os.path.dirname(__file__),
fp.write(EXAMPLE_CORRUPTED_DB.decode('hex')) 'corrupted_example.db'),
fp.close() os.path.join(self.testdir, '1.db'))
broker = DatabaseBroker(os.path.join(self.testdir, '1.db')) broker = DatabaseBroker(os.path.join(self.testdir, '1.db'))
broker.db_type = 'test' broker.db_type = 'test'
exc = None exc = None
@ -2012,449 +2012,5 @@ class TestAccountBrokerBeforeMetadata(TestAccountBroker):
conn.execute('SELECT metadata FROM account_stat') conn.execute('SELECT metadata FROM account_stat')
EXAMPLE_MALFORMED_DB = \
'53514c69746520666f726d6174203300040001016a402020000000080000000000000000000' \
'000000000000700000001000000000000000000000001000000000000000000000000000000' \
'00000000000000000000000000000000000000000000000000050000000103fb00000000070' \
'3fb000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000006050d00000000040000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'00000000000000000000000000000000000000000000000a000000000400000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'0000000000000000000000000000000000000000000000000000000000000000000000d0000' \
'000004000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000a00000000040000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'00000000000000000000000000000000000000000d0000000500dd0000dd01a601e102aa02e' \
'500000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000008146010717272701824b7461626c656f7574676f696' \
'e675f73796e636f7574676f696e675f73796e6302435245415445205441424c45206f757467' \
'6f696e675f73796e6320280a2020202020202020202020202020202072656d6f74655f69642' \
'05445585420554e495155452c0a2020202020202020202020202020202073796e635f706f69' \
'6e7420494e54454745522c0a20202020202020202020202020202020757064617465645f617' \
'420544558542044454641554c5420300a20202020202020202020202029390206174d270100' \
'696e64657873716c6974655f6175746f696e6465785f6f7574676f696e675f73796e635f316' \
'f7574676f696e675f73796e63038146030717272701824b7461626c65696e636f6d696e675f' \
'73796e63696e636f6d696e675f73796e6304435245415445205441424c4520696e636f6d696' \
'e675f73796e6320280a2020202020202020202020202020202072656d6f74655f6964205445' \
'585420554e495155452c0a2020202020202020202020202020202073796e635f706f696e742' \
'0494e54454745522c0a20202020202020202020202020202020757064617465645f61742054' \
'4558542044454641554c5420300a20202020202020202020202029390406174d270100696e6' \
'4657873716c6974655f6175746f696e6465785f696e636f6d696e675f73796e635f31696e63' \
'6f6d696e675f73796e6305821805071b352701835d747269676765726f7574676f696e675f7' \
'3796e635f696e736572746f7574676f696e675f73796e630043524541544520545249474745' \
'52206f7574676f696e675f73796e635f696e7365727420414654455220494e53455254204f4' \
'e206f7574676f696e675f73796e630a202020202020202020202020424547494e0a20202020' \
'202020202020202020202020555044415445206f7574676f696e675f73796e630a202020202' \
'0202020202020202020202053455420757064617465645f6174203d205354524654494d4528' \
'272573272c20274e4f5727290a20202020202020202020202020202020574845524520524f5' \
'74944203d206e65772e524f5749443b0a202020202020202020202020454e440d0000000400' \
'7d0002e501ca00af007d0000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000030090617151501457461626c65746573747465737408435245415445205441' \
'424c45207465737420286f6e65205445585429821808071b352701835d74726967676572696' \
'e636f6d696e675f73796e635f757064617465696e636f6d696e675f73796e63004352454154' \
'45205452494747455220696e636f6d696e675f73796e635f757064617465204146544552205' \
'55044415445204f4e20696e636f6d696e675f73796e630a2020202020202020202020204245' \
'47494e0a2020202020202020202020202020202055504441544520696e636f6d696e675f737' \
'96e630a2020202020202020202020202020202053455420757064617465645f6174203d2053' \
'54524654494d4528272573272c20274e4f5727290a202020202020202020202020202020205' \
'74845524520524f574944203d206e65772e524f5749443b0a20202020202020202020202045' \
'4e44821807071b352701835d74726967676572696e636f6d696e675f73796e635f696e73657' \
'274696e636f6d696e675f73796e6300435245415445205452494747455220696e636f6d696e' \
'675f73796e635f696e7365727420414654455220494e53455254204f4e20696e636f6d696e6' \
'75f73796e630a202020202020202020202020424547494e0a20202020202020202020202020' \
'20202055504441544520696e636f6d696e675f73796e630a202020202020202020202020202' \
'0202053455420757064617465645f6174203d205354524654494d4528272573272c20274e4f' \
'5727290a20202020202020202020202020202020574845524520524f574944203d206e65772' \
'e524f5749443b0a202020202020202020202020454e44821806071b352701835d7472696767' \
'65726f7574676f696e675f73796e635f7570646174656f7574676f696e675f73796e6300435' \
'2454154452054524947474552206f7574676f696e675f73796e635f75706461746520414654' \
'455220555044415445204f4e206f7574676f696e675f73796e630a202020202020202020202' \
'020424547494e0a20202020202020202020202020202020555044415445206f7574676f696e' \
'675f73796e630a2020202020202020202020202020202053455420757064617465645f61742' \
'03d205354524654494d4528272573272c20274e4f5727290a20202020202020202020202020' \
'202020574845524520524f574944203d206e65772e524f5749443b0a2020202020202020202' \
'02020454e440d0000000103fb0003fb00000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'0000000000000000000000000301020f31'
EXAMPLE_CORRUPTED_DB = \
'6a756e6b746520666f726d61742033000400010100402020000000080000000000000000000' \
'000000000000700000001000000000000000000000001000000000000000000000000000000' \
'00000000000000000000000000000000000000000000000000050000000103fb00000000070' \
'3fb000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000006050d00000000040000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'00000000000000000000000000000000000000000000000a000000000400000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'0000000000000000000000000000000000000000000000000000000000000000000000d0000' \
'000004000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000a00000000040000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'00000000000000000000000000000000000000000d0000000500dd0000dd01a601e102aa02e' \
'500000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000008146010717272701824b7461626c656f7574676f696' \
'e675f73796e636f7574676f696e675f73796e6302435245415445205441424c45206f757467' \
'6f696e675f73796e6320280a2020202020202020202020202020202072656d6f74655f69642' \
'05445585420554e495155452c0a2020202020202020202020202020202073796e635f706f69' \
'6e7420494e54454745522c0a20202020202020202020202020202020757064617465645f617' \
'420544558542044454641554c5420300a20202020202020202020202029390206174d270100' \
'696e64657873716c6974655f6175746f696e6465785f6f7574676f696e675f73796e635f316' \
'f7574676f696e675f73796e63038146030717272701824b7461626c65696e636f6d696e675f' \
'73796e63696e636f6d696e675f73796e6304435245415445205441424c4520696e636f6d696' \
'e675f73796e6320280a2020202020202020202020202020202072656d6f74655f6964205445' \
'585420554e495155452c0a2020202020202020202020202020202073796e635f706f696e742' \
'0494e54454745522c0a20202020202020202020202020202020757064617465645f61742054' \
'4558542044454641554c5420300a20202020202020202020202029390406174d270100696e6' \
'4657873716c6974655f6175746f696e6465785f696e636f6d696e675f73796e635f31696e63' \
'6f6d696e675f73796e6305821805071b352701835d747269676765726f7574676f696e675f7' \
'3796e635f696e736572746f7574676f696e675f73796e630043524541544520545249474745' \
'52206f7574676f696e675f73796e635f696e7365727420414654455220494e53455254204f4' \
'e206f7574676f696e675f73796e630a202020202020202020202020424547494e0a20202020' \
'202020202020202020202020555044415445206f7574676f696e675f73796e630a202020202' \
'0202020202020202020202053455420757064617465645f6174203d205354524654494d4528' \
'272573272c20274e4f5727290a20202020202020202020202020202020574845524520524f5' \
'74944203d206e65772e524f5749443b0a202020202020202020202020454e440d0000000400' \
'7d0002e501ca00af007d0000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000030090617151501457461626c65746573747465737408435245415445205441' \
'424c45207465737420286f6e65205445585429821808071b352701835d74726967676572696' \
'e636f6d696e675f73796e635f757064617465696e636f6d696e675f73796e63004352454154' \
'45205452494747455220696e636f6d696e675f73796e635f757064617465204146544552205' \
'55044415445204f4e20696e636f6d696e675f73796e630a2020202020202020202020204245' \
'47494e0a2020202020202020202020202020202055504441544520696e636f6d696e675f737' \
'96e630a2020202020202020202020202020202053455420757064617465645f6174203d2053' \
'54524654494d4528272573272c20274e4f5727290a202020202020202020202020202020205' \
'74845524520524f574944203d206e65772e524f5749443b0a20202020202020202020202045' \
'4e44821807071b352701835d74726967676572696e636f6d696e675f73796e635f696e73657' \
'274696e636f6d696e675f73796e6300435245415445205452494747455220696e636f6d696e' \
'675f73796e635f696e7365727420414654455220494e53455254204f4e20696e636f6d696e6' \
'75f73796e630a202020202020202020202020424547494e0a20202020202020202020202020' \
'20202055504441544520696e636f6d696e675f73796e630a202020202020202020202020202' \
'0202053455420757064617465645f6174203d205354524654494d4528272573272c20274e4f' \
'5727290a20202020202020202020202020202020574845524520524f574944203d206e65772' \
'e524f5749443b0a202020202020202020202020454e44821806071b352701835d7472696767' \
'65726f7574676f696e675f73796e635f7570646174656f7574676f696e675f73796e6300435' \
'2454154452054524947474552206f7574676f696e675f73796e635f75706461746520414654' \
'455220555044415445204f4e206f7574676f696e675f73796e630a202020202020202020202' \
'020424547494e0a20202020202020202020202020202020555044415445206f7574676f696e' \
'675f73796e630a2020202020202020202020202020202053455420757064617465645f61742' \
'03d205354524654494d4528272573272c20274e4f5727290a20202020202020202020202020' \
'202020574845524520524f574944203d206e65772e524f5749443b0a2020202020202020202' \
'02020454e440d0000000103fb0003fb00000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'000000000000000000000000000000000000000000000000000000000000000000000000000' \
'0000000000000000000000000301020f31'
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()