From 91e668a5b5805e817f2e258cb0f371e5718bed2d Mon Sep 17 00:00:00 2001 From: Rowdy Chotkan <22516119+InvictusRMC@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:18:51 +0100 Subject: [PATCH] Delete test/FOC directory --- .../tudelft/trustchain/FOC/AppGossiperTest.kt | 115 ------------------ .../tudelft/trustchain/FOC/ExampleUnitTest.kt | 16 --- .../trustchain/FOC/FOCCommunityMock.kt | 65 ---------- .../tudelft/trustchain/FOC/MagnetByteArray.kt | 12 -- 4 files changed, 208 deletions(-) delete mode 100644 freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/AppGossiperTest.kt delete mode 100644 freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/ExampleUnitTest.kt delete mode 100644 freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/FOCCommunityMock.kt delete mode 100644 freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/MagnetByteArray.kt diff --git a/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/AppGossiperTest.kt b/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/AppGossiperTest.kt deleted file mode 100644 index 780c84111..000000000 --- a/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/AppGossiperTest.kt +++ /dev/null @@ -1,115 +0,0 @@ -package nl.tudelft.trustchain.foc - -import android.content.Context -import com.frostwire.jlibtorrent.* -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify -import nl.tudelft.ipv8.Peer -import nl.tudelft.ipv8.keyvault.Key -import nl.tudelft.trustchain.foc.community.FOCMessage -import nl.tudelft.trustchain.foc.util.MagnetUtils.Companion.constructMagnetLink -import org.awaitility.Awaitility.await -import org.junit.Assert -import org.junit.Before -import org.junit.Test -import java.io.File -import java.lang.RuntimeException -import java.util.concurrent.TimeUnit -import kotlin.Pair - -/** - * App Gossiping Tests - */ -class AppGossiperTest { - private lateinit var sessionManager: SessionManager - private lateinit var mainActivity: MainActivityFOC - private lateinit var focCommunityMock: FOCCommunityMock - private lateinit var appGossiper: AppGossiper - private lateinit var cacheDir: File - - private val firstPeerKey = mockk() - private val firstPeerKeyHash = byteArrayOf(0, 1, 2) - private val peer = Peer(firstPeerKey) - private val someTorrentHash = - Sha1Hash( - ByteArray(20) { - 5.toByte() - } - ) - private val someTorrentName = "some-torrent" - private val contextDir = "src/test/resources" - private val filesToUpload = arrayOf(File("$contextDir/some.torrent")) - - private val someMagnetLink = constructMagnetLink(someTorrentHash, someTorrentName) - private val someMagnetLinkByteArray = MagnetByteArray.sampleMagnetByteArray - private val payload = FOCMessage(someMagnetLink) - private val firstIncomingPacket = Pair(peer, payload) - - @OptIn(ExperimentalStdlibApi::class) - @Before - fun setUp() { - sessionManager = mockk(relaxed = true) - val stats = mockk() - every { stats.dhtNodes() } returns (15) - every { sessionManager.stats() } returns (stats) - - every { firstPeerKey.keyToHash() } returns (firstPeerKeyHash) - - mainActivity = mockk(relaxed = true) - val context = mockk() - cacheDir = mockk() - every { cacheDir.listFiles() } returns (filesToUpload) - every { cacheDir.path } returns (contextDir) - every { context.cacheDir } returns (cacheDir) - every { mainActivity.applicationContext } returns (context) - - focCommunityMock = FOCCommunityMock("some-id") - focCommunityMock.addTorrentMessages(firstIncomingPacket) - } - - @Test - fun triesToDownloadGossipedTorrentFromMagnetLink() { - every { sessionManager.fetchMagnet(someMagnetLink, 30) } returns (someMagnetLinkByteArray) - appGossiper = AppGossiper(sessionManager, mainActivity, focCommunityMock, false) - appGossiper.start() - await().atMost(1, TimeUnit.MINUTES).until { appGossiper.signal.count.toInt() == 1 } - val torrentInfoSlot = mutableListOf() - verify(exactly = 1) { sessionManager.fetchMagnet(someMagnetLink, 30) } - verify(exactly = 2) { sessionManager.download(capture(torrentInfoSlot), cacheDir) } - Assert.assertEquals( - torrentInfoSlot.map { it.infoHash() }.sorted(), - listOf( - TorrentInfo.bdecode(someMagnetLinkByteArray).infoHash(), - TorrentInfo(File(contextDir + "/some.torrent")).infoHash() - ).sorted() - ) - } - - @Test - fun usesEvaProtocolAsFallbackWhenTorrentingDoesntWork() { - every { sessionManager.fetchMagnet(someMagnetLink, 30) } throws RuntimeException("No torrenting for you") - appGossiper = AppGossiper(sessionManager, mainActivity, focCommunityMock, false) - appGossiper.start() - await().atMost(1, TimeUnit.MINUTES).until { focCommunityMock.appRequests.size == 1 } - val appRequest = focCommunityMock.appRequests[0] - Assert.assertEquals(someTorrentHash.toString(), appRequest.first) - Assert.assertEquals(firstPeerKeyHash, appRequest.second.key.keyToHash()) - } - - @Test - fun informsPeersAboutLocalFiles() { - every { sessionManager.fetchMagnet(someMagnetLink, 30) } throws RuntimeException("No torrenting for you") - val mockTorrentHandle = mockk(relaxed = true) - every { mockTorrentHandle.isValid } returns true - every { sessionManager.find(any()) } returns mockTorrentHandle - - appGossiper = AppGossiper(sessionManager, mainActivity, focCommunityMock, false) - appGossiper.start() - await().atMost(1, TimeUnit.MINUTES).until { focCommunityMock.torrentsInformedAbout.size == 1 } - val torrentInformedAbout = focCommunityMock.torrentsInformedAbout[0] - val torrentHashInfo = - constructMagnetLink(TorrentInfo(File(contextDir + "/some.torrent")).infoHash(), "some.apk") - Assert.assertEquals(torrentHashInfo, torrentInformedAbout) - } -} diff --git a/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/ExampleUnitTest.kt b/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/ExampleUnitTest.kt deleted file mode 100644 index b821e0470..000000000 --- a/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/ExampleUnitTest.kt +++ /dev/null @@ -1,16 +0,0 @@ -package nl.tudelft.trustchain.foc - -import org.junit.Assert.assertEquals -import org.junit.Test - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, (2 + 2)) - } -} diff --git a/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/FOCCommunityMock.kt b/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/FOCCommunityMock.kt deleted file mode 100644 index 278c5bc66..000000000 --- a/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/FOCCommunityMock.kt +++ /dev/null @@ -1,65 +0,0 @@ -package nl.tudelft.trustchain.foc - -import nl.tudelft.ipv8.Peer -import nl.tudelft.ipv8.messaging.eva.TransferException -import nl.tudelft.ipv8.messaging.eva.TransferProgress -import nl.tudelft.trustchain.foc.community.FOCCommunityBase -import nl.tudelft.trustchain.foc.community.FOCMessage -import java.util.* - -@Suppress("deprecation") -@OptIn(ExperimentalUnsignedTypes::class) -class FOCCommunityMock( - override val serviceId: String -) : FOCCommunityBase() { - init { - evaProtocolEnabled = true - } - - override var torrentMessagesList = ArrayList>() - var appRequests = ArrayList>() - var torrentsInformedAbout = ArrayList() - - fun addTorrentMessages(message: Pair) { - torrentMessagesList.add(message) - } - - override fun setEVAOnReceiveProgressCallback( - f: ( - peer: Peer, - info: String, - progress: TransferProgress - ) -> Unit - ) { - } - - override fun setEVAOnReceiveCompleteCallback( - f: ( - peer: Peer, - info: String, - id: String, - data: ByteArray? - ) -> Unit - ) { - } - - override fun setEVAOnErrorCallback( - f: ( - peer: Peer, - exception: TransferException - ) -> Unit - ) { - } - - override fun informAboutTorrent(torrentName: String) { - torrentsInformedAbout.add(torrentName) - } - - override fun sendAppRequest( - torrentInfoHash: String, - peer: Peer, - uuid: String - ) { - appRequests.add(Pair(torrentInfoHash, peer)) - } -} diff --git a/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/MagnetByteArray.kt b/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/MagnetByteArray.kt deleted file mode 100644 index 700a90d3d..000000000 --- a/freedomOfComputing/src/test/java/nl/tudelft/trustchain/FOC/MagnetByteArray.kt +++ /dev/null @@ -1,12 +0,0 @@ -package nl.tudelft.trustchain.foc - -/** - * Sample Byte Array of data fetched about a torrent - */ -class MagnetByteArray { - companion object { - @Suppress("ktlint:standard:max-line-length") - val sampleMagnetByteArray = - byteArrayOf(100, 49, 51, 58, 99, 114, 101, 97, 116, 105, 111, 110, 32, 100, 97, 116, 101, 105, 49, 54, 52, 57, 56, 54, 51, 56, 57, 50, 101, 52, 58, 105, 110, 102, 111, 100, 54, 58, 108, 101, 110, 103, 116, 104, 105, 49, 54, 51, 51, 50, 56, 49, 101, 52, 58, 110, 97, 109, 101, 49, 48, 58, 115, 101, 97, 114, 99, 104, 46, 97, 112, 107, 49, 50, 58, 112, 105, 101, 99, 101, 32, 108, 101, 110, 103, 116, 104, 105, 49, 54, 51, 56, 52, 101, 54, 58, 112, 105, 101, 99, 101, 115, 50, 48, 48, 48, 58, -18, -109, -57, 33, -93, 5, -86, -127, 57, -82, 39, -57, -67, 87, 8, -84, -57, 112, -42, -48, -18, 84, 26, -44, -105, 14, -33, -127, -114, -88, -68, 16, 49, 115, 71, 90, -114, 0, 114, 106, 117, -126, -105, -68, -98, 62, 97, 46, -48, 81, 42, -31, 94, -126, 127, -38, -57, 40, 19, -123, -109, -111, -104, -124, -17, 52, 113, -6, 74, 99, -37, 39, -103, -32, -68, -16, 106, 8, -21, 121, 103, -121, -73, -14, -26, 113, 65, 65, -34, 29, -26, 50, 13, -88, -76, -18, -24, -93, 84, 78, -81, 113, -29, -128, 122, 13, -41, -101, 92, -80, -37, 84, -72, 33, 35, -99, -62, 38, -78, -3, 82, -56, 94, 59, -115, -39, 110, -93, 119, -32, -88, 110, 94, -45, -94, -114, -11, 30, -94, -40, -53, 4, 115, -83, -30, -17, -51, -57, 93, -93, -6, 50, -34, -28, 119, -50, 89, 105, -126, 70, -110, -27, 64, 96, 117, 66, 122, -86, 110, -32, 24, 32, 1, 80, 30, 120, -111, 62, -109, -35, 102, -104, 19, 88, -116, -72, -84, -38, 115, -80, 125, 49, 50, -62, -62, 4, -6, 83, 45, -110, -115, 68, 33, 67, 4, 39, -47, -99, 68, 64, -43, -41, -8, -70, 123, -25, 27, 60, -50, -98, -50, -7, 37, 76, 84, 30, 113, -58, -119, 105, -31, 6, 26, -75, -48, 54, 18, -103, 114, 71, -95, 56, -56, -37, -72, -38, 59, 19, 10, -24, 127, 61, 75, 75, 36, 126, -7, 47, 33, -85, 101, -62, 76, -77, 46, 54, -119, -34, 35, 14, -18, 12, -97, 32, -50, 99, 100, 85, -35, 62, -61, 57, 27, -54, 99, 111, 123, 11, -124, -36, -86, -66, -92, 34, 70, 101, 10, 47, 41, 95, 39, -68, 11, 79, 75, 5, -90, -86, -54, 18, -30, -57, 58, -46, 3, 122, 94, 112, -108, 77, -67, 95, -45, 95, 120, -116, 24, 126, -2, -108, 5, 47, 35, -85, 23, -60, 110, 70, -74, 45, -16, 95, 3, 116, 34, 37, -119, -100, 127, -46, 14, -77, -23, -108, 20, -107, 39, -110, -116, -83, -36, -96, 56, -69, 64, 55, 80, 97, 59, 12, 60, 50, -75, 126, 74, -26, 29, 50, 66, -84, 125, 81, -81, -82, 90, 89, -105, -22, -28, -4, 53, 66, -51, 27, 123, -86, -95, -113, 22, 6, -84, 82, 58, -26, -17, -43, -39, -79, 124, -25, 126, 70, -91, 6, -82, 12, 30, -27, -23, -43, -28, -66, -123, 111, 30, -124, -58, 109, -65, 68, -56, 78, -100, 65, -95, -5, 101, -6, -114, 60, -126, 70, -123, -122, -3, -72, -91, 18, -61, 90, 101, -40, -15, -103, 11, 4, -100, 95, -61, 2, -24, 69, 58, 52, -95, -110, 9, -101, -55, 43, 89, 85, 57, 19, 4, -91, 19, 69, -91, -121, 75, -78, 56, -11, 6, 84, 92, 87, -57, -31, -36, -98, 65, -76, -55, -9, 108, -122, 61, 70, -18, -73, -23, -15, -80, 117, 87, -64, 40, 28, -28, -26, -18, -38, -24, 79, 52, 62, 41, 91, -80, -15, -96, 100, 103, -88, 20, -83, 67, 123, 24, 123, -121, 3, 124, -16, -22, 68, 86, -71, 35, -99, -48, 61, -105, -14, -87, 9, 107, 122, 10, -82, 63, 95, 46, -38, 61, 105, -61, -37, 105, -48, -34, -114, -49, -27, 109, 87, -46, -60, -116, -51, 9, -91, 71, -30, -47, 58, 33, -44, 93, 110, 84, 110, -31, 113, 82, -82, -101, 41, -38, -123, -101, -123, -62, -9, 62, -74, 49, -125, 14, 57, 45, 123, -4, -117, -68, 80, 98, -14, -7, 58, -104, 30, -74, -39, -93, 91, -91, 64, 82, -44, 55, -2, -79, 20, 106, 103, 31, -85, -86, -68, 26, -97, 49, -28, 18, 5, -43, 105, -5, -86, -19, -113, -5, -123, -29, 10, -73, 67, -24, -109, -122, 9, 111, -91, -15, -33, -45, 126, -113, -64, -121, 12, 106, 61, 5, -123, -36, 52, 1, -122, 112, -44, -12, 49, 10, 19, 7, 31, -49, -8, -108, 60, 59, -46, -64, -11, 112, -11, -108, -115, -14, 50, 10, 126, 67, 22, -12, -11, -2, 17, -92, -6, -98, -66, 64, 62, -20, -27, 11, 29, 100, 89, -96, -30, 23, -5, 68, 101, 109, -124, -86, -90, 29, 23, -102, 32, -46, 62, 89, -7, -38, -63, -80, 92, -121, -51, -5, 22, 4, -111, -102, -9, 3, 109, -43, 66, -9, -75, -41, -34, 110, -109, 9, 63, -71, 37, 42, 92, -43, 97, -71, -17, -69, -128, 63, -5, -26, -88, -114, 107, 72, -30, -71, 69, 9, -60, 33, 18, 9, 33, -65, 22, -31, 41, -59, 46, -52, 87, 57, -52, -104, -2, 68, 68, -25, -71, 59, 73, 69, -79, 57, 23, 9, -8, 48, 7, 48, -66, 55, 38, 53, -10, 34, -121, -86, -88, -100, 44, 81, 93, 4, -99, -44, -110, -72, -7, 83, 92, -121, 98, -59, -74, 89, 22, 90, 121, 85, 103, 60, 97, -26, -59, -6, -67, -54, 117, -38, -77, 76, 8, 82, -126, 1, -69, -42, 119, -1, -37, 46, -15, 85, 17, 114, 77, -60, 96, -16, 127, 61, -98, 49, 123, -96, -41, -43, 20, 118, 107, -121, 70, -40, -10, -46, 90, -14, -4, -88, 10, -56, -48, 67, -7, -124, 56, 108, -72, 120, 42, -61, -73, -38, -39, 51, -81, 37, -12, -128, 10, 118, 23, -13, 33, 28, -31, -68, -111, -82, -33, -10, -75, -59, 30, -94, 20, 23, 105, -10, -14, 120, -79, -37, 64, -67, 48, -91, -86, -49, -23, 114, -58, 46, 92, -66, 95, -35, -71, 96, -123, 68, -83, -33, -43, -92, 13, -33, -20, -28, 99, 109, 121, 26, -49, 72, 9, -89, -118, 34, 68, 126, -88, -12, -79, 41, 17, -109, -64, 11, -58, -18, 85, 108, -79, -25, 92, 38, 51, 91, 18, -66, -104, 67, -52, 125, -127, -66, 36, 92, 33, 22, 62, 30, 78, -18, -32, 10, 103, 35, 99, -120, -73, 93, -30, -10, -77, -90, -71, -54, -95, -62, 17, -112, -63, -20, 63, 61, -24, 34, 71, -98, -83, -93, 114, 56, -114, -111, 6, 43, 58, -14, 82, -2, 111, -39, 59, -35, -122, -57, -27, -27, -3, -65, -28, -55, -22, 58, -73, 5, 71, -82, 76, 82, 29, -15, 26, -61, 58, 6, 80, 53, -11, 63, 16, -33, -56, 102, 34, 67, 41, 63, -12, 74, 82, 46, 17, 103, -94, -50, 65, 34, -127, 29, -101, 111, 101, -2, -46, 55, -108, 126, -60, -74, -110, 52, -14, 89, -88, 49, 19, 63, 10, 125, -87, -21, -25, 14, 6, 21, 51, 50, -53, 30, -19, 90, -90, 24, 23, -79, 5, 68, -108, 62, -63, 94, 126, -5, -105, -23, 67, 64, 20, 4, 60, -17, -51, 56, 85, -103, 103, -35, 52, -113, -74, 99, 36, 24, 87, -127, -5, 37, 49, -56, -45, -116, -27, -113, 4, 93, 109, -32, -9, 25, 12, -85, 14, 32, 76, 98, 31, -28, 14, 56, -88, 33, 80, -58, 44, -114, -83, 81, -40, 83, 16, 18, -11, -28, 57, -120, 116, 49, -92, 51, 74, -6, -12, 98, 16, -60, -62, 20, 67, 105, 93, -32, -114, 57, -55, -44, 25, 119, -86, -60, 29, -21, 45, 71, 50, 27, -53, -23, 21, 28, 93, 10, 86, -117, -22, 41, -66, -9, 81, -89, -2, 121, -72, -94, 61, 119, -108, 23, 127, 46, -127, 121, -45, -7, -73, -84, 12, -97, -68, 114, -6, 84, -126, -120, 63, 113, 27, -96, 51, 97, -105, -80, 109, -19, -98, -110, 104, -21, -86, 59, -76, -47, -112, 127, -71, -119, 112, -122, -25, -127, -3, 126, -127, 40, -123, -59, -104, -84, -9, 64, 22, 73, -55, -3, 93, -79, -11, 87, 15, -34, 64, -109, 116, 95, 94, -116, 105, -52, 50, -26, -29, 118, 101, 115, 70, -117, -1, -114, -13, 40, 95, 96, -53, -75, -111, 1, 74, 25, -58, 8, -78, 10, 9, -43, 116, -18, 102, -22, 43, 105, 19, -90, 26, 6, 79, 98, 40, 37, 9, 73, -26, 55, 28, 1, -128, -128, -46, 45, 59, 69, 19, 2, 22, 62, 74, -54, -43, -89, -64, -67, -17, -1, -112, 77, 95, 98, -54, 35, -9, 77, 25, 58, -37, 20, -109, -62, 55, 43, 106, 15, -69, -35, 66, 24, -26, -6, 6, -75, 75, 112, 53, 119, -10, 19, 70, -20, 56, -72, 111, 6, -103, -5, -58, -46, 121, -57, -17, -84, -16, -90, 75, -64, -32, -7, -75, 7, -120, -112, -60, 48, -70, 105, -11, 96, 96, -44, -68, 94, -7, 72, 46, -46, 40, 2, -96, 28, 34, -75, -65, -63, -95, 6, -53, 69, -103, -3, -35, -38, 58, 49, 85, 72, 54, 100, -70, 22, -28, 42, 113, -115, 6, 19, -78, 71, 104, -30, -38, 111, -34, 24, 113, -62, -94, -32, -85, 41, 66, 46, 34, -121, -88, -14, 120, 5, -82, 121, 50, -12, -125, 125, -44, -52, -56, 104, -83, 77, -30, -75, 71, -122, -46, -103, -12, 90, 56, 2, 4, 63, 28, 91, -68, -96, 117, 0, -120, -90, 42, 81, -111, -94, -22, 56, 61, -72, -97, 94, 64, 29, 70, 26, 17, -27, 16, -122, 65, -36, 66, 117, -15, 80, 40, -55, 82, -63, -92, -43, 114, -119, -60, 31, -122, 124, -115, 119, -33, 54, -38, 4, -112, -13, -19, 32, 8, 71, -115, -24, -29, -35, -33, -86, 3, 33, 6, 94, 116, 104, 10, -61, -29, -60, 114, -70, -94, 34, 1, 118, 95, 40, 39, 7, 75, -85, 14, -66, 112, 74, -67, -78, -83, 83, 4, 115, -115, 96, 72, 35, 63, 45, 117, -113, 78, 29, -73, 7, -64, 72, 77, -39, 37, -73, -97, -101, 94, -75, 10, -18, -29, -128, -47, 47, 53, -115, -102, 39, -3, 124, -82, 17, -26, -115, -117, -18, -72, 108, -82, -4, -54, -115, 111, 72, 33, -101, 75, -35, -67, 55, 107, -71, -35, -102, 34, 66, 30, -31, -60, 86, 55, -116, 15, 98, -120, 76, -5, 34, -23, -123, -3, -26, -12, 93, -31, -126, -128, -2, 69, 14, -50, 50, 10, 118, -99, 33, -102, 61, -115, 31, -1, -102, 92, 49, 49, -45, 119, -105, 111, 98, -54, 86, 28, -86, -94, -88, 83, 112, -74, 35, 3, -38, 89, -89, 26, 42, 126, -86, 68, 45, 95, 70, -73, -38, 60, 85, -13, 70, -46, 95, -101, -49, -57, 9, 49, 96, -43, -3, 96, -31, 55, 27, -70, 48, -106, 113, -42, 4, -87, 115, 118, -40, 56, 69, 117, -124, 10, 48, 102, 110, 85, 62, 20, -125, 59, 10, 38, -93, -33, -4, 65, -69, -84, 79, -4, 17, -107, 11, -74, 67, 1, 109, -106, -51, -64, -88, 82, 33, 4, -94, -15, 42, 66, 89, -10, 78, 40, 0, -123, -124, 14, 72, 49, -96, -78, -73, -79, 24, 106, -19, 77, -117, 86, -112, -79, 108, -76, -101, -57, 110, 36, 76, -21, 17, -19, -45, 83, 43, 37, -52, -61, 69, 88, -12, -107, -102, -43, 111, 121, -47, 52, -58, 84, -17, 24, -125, -69, 3, 83, 74, -112, -120, -8, -56, -76, 21, -11, 60, -122, -26, 36, 63, -119, -8, 91, 62, -6, 42, -39, -111, 105, 50, -21, -19, -113, -101, -92, 14, 20, -71, -125, 67, -9, 91, -41, -115, -79, -70, 21, -22, -112, -107, 54, -91, 30, -17, 36, -84, 126, -103, -7, -30, -31, 43, 31, -43, -62, 24, -84, -36, -126, 33, 20, -105, 33, 118, -117, 42, -95, -12, -68, 111, 7, -33, 120, -123, 29, -103, -90, 39, -121, 42, -109, 85, 85, -54, -73, -78, -53, -17, 48, -9, -111, 115, -5, 93, 23, -84, -81, -25, -21, 116, -14, 38, 119, 95, -98, 45, -100, -104, -21, -14, 67, 67, 35, 108, -6, 125, 114, 99, -62, 101, 101) - } -}