"The Stones"

Just a point here - I don't think we know this. All we know is that when it set out it had fuel for 370ly, but there's nothing saying how that corresponds to fullness of the tank. (Unless there's something somewhere that talks about the size of the tank?)
I'm really just putting that 370Ly bit down to narrative licence, as a means to provide the hint that "The relevant system we need to find is 370Ly away", and that we aren't really meant to read too far into how they refuelled (My own take is simply fuel scoops).
 
I'm really just putting that 370Ly bit down to narrative licence, as a means to provide the hint that "The relevant system we need to find is 370Ly away", and that we aren't really meant to read too far into how they refuelled (My own take is simply fuel scoops).
Yeah, I've put it down to similar.
 
Few thought and opinion about all this ;
  • The distance and / time it would take to double back twice just doesnt make sense to me, you dont just turn around a ship that takes hundreds of years to get anywhere.
  • The events in the Coalsack and the ghost ship might be separate but intertwined ( cant explain it yet other then the time and distance dont sit with me )
  • I think the encryption could be using either azure or azmiuth, one is ms slq and the latter is rooted in block chain. Although I am familier with python and a bit of c++, this stuff is way beyond me )
    side note: The paint job they gave everyone is azure and the research group that funded the mission was Azimuth Biochemicals
I asked come fellow programmers but no bites yet. I would think that if it was truly encrypted, you wouldnt be able to read it at all. Most white space is typically removed. So Its probably something can can be solved with pen and paper. More a cypher then full cryptographics.

https://urbit.org/using/install/
this one is kinda interesting because it makes references to comets/ planets and galaxies

https://docs.microsoft.com/en-us/azure/security/fundamentals/encryption-overview
 
I did another brute-force approach at any partial substitution cipher that yields "MUSCA DARK REGION" without success.
So either the LP transmission is not a simple substitution cipher (definitely not top-of-the-line), or the plain text doesn't contain "MUSCA DARK REGION".

The closest I came is only one partial mapping 'T.WR456-2' --> 'MUSCA DRK' that does yield 'MUSCA DARK'; here is the partially decoded version:

Looked at LP text and your code, and thought that it's not a coincidence that it fits 11x17 rectangle. So I tried various permutations of the blocks.
Had to rewrite your code to use multiprocessing and iterators, because permutations quickly fill the memory.

Nothing came out, but it's an example of how to use those modern methods to do massive brute force.

Cheers.

Python:
#!/usr/bin/python3

import functools
import itertools
import logging
import math
import multiprocessing
import queue
import sys
import threading
import time

import string

q = queue.Queue()


def reverse(s): return s[::-1]


def rotate(s): return s[1:] + s[0]


PRINT_EVERY = 10000
COUNT = 0

BITS = ["ABCDEFGHIJKLM", "NOPQRSTUVWXYZ", "0123456789"] + list(" +-.:")


chunks = ['8BFGTY4PLU6', '7-RTYO06.45', ':GN63-74PHG', 'JI E67-:F56', '3-21-574.9 ',
          'ER34.6-DER8', '+WEST U.5 -', 'RTG10 RTH8-', '4 6T.WR4564', '-21 +G134.2',
          ' RT55.4 GDW', ' THE42.1LY ', '764.2Y- 45T', 'G4.BTJ-Y.6O', 'RT437.1D341',
          '-67.Y5DS 24', '3 45TY-3234']

CHARSET = string.ascii_uppercase + "0123456789" + " +-.:"

SENTINELS = ["LATTITUDE", "LONGTITUDE", "MUSCA", "CHUKCHAN", "COALSACK", "ADAMASTOR", "THARGOID", "AZIMUTH", "CARVER"]


def testmap(mapping, ciphertext):
    plain = ciphertext.translate(str.maketrans(CHARSET, mapping))
    for txt in SENTINELS:
        if txt in plain:
            logging.info("\n\n\nFOUND!\n\n\n\n")
            loggin.info(mapping)
            raise SystemExit


def permset(charset_bits, ciphertext):
    # permute every part of charset_bits
    global COUNT
    for perm in itertools.permutations(charset_bits):
        mapping = ''.join(perm)
        if COUNT % PRINT_EVERY == 0:
            # print("%9d %s" % (COUNT, mapping))
            logging.info("%9d %s" % (COUNT, mapping))
        testmap(mapping, ciphertext)
        COUNT += 1


def rotate_reverse_bit(head, tail, ciphertext):
    # print(">>>" + str(head) + str(tail))
    if tail:
        tail = tail[:]  # copy
        bit = tail.pop(0)
        if len(bit) > 2:
            for i in range(len(bit)):
                rotate_reverse_bit(head + [bit], tail, ciphertext)
                rotate_reverse_bit(head + [reverse(bit)], tail, ciphertext)
                bit = rotate(bit)
        elif len(bit) == 2:
            rotate_reverse_bit(head + [bit], tail, ciphertext)
            rotate_reverse_bit(head + [reverse(bit)], tail, ciphertext)
        else:
            rotate_reverse_bit(head + [bit], tail, ciphertext)
    else:  # end  of recursion; do it
        # print(head)
        permset(head, ciphertext)
        return


def count_perms(bits):
    bcount = math.factorial(len(bits))  # base number of permutations
    for bit in bits:
        if len(bit) > 2:
            bcount *= len(bit)  # rotations
        if len(bit) > 1:
            bcount *= 2  # reversal
    return bcount


def worker(head, tail):
    while not q.empty():
        ciphertext = q.get()
        rotate_reverse_bit(head, tail, ciphertext)
        q.task_done()


def split_every(n, iterable):
    i = iter(iterable)
    piece = list(itertools.islice(i, n))
    while piece:
        yield piece
        piece = list(itertools.islice(i, n))


log_format = '[%(threadName)s] %(message)s'
logging.basicConfig(stream=sys.stdout, level=logging.INFO, format=log_format)

all_permutations = itertools.permutations(chunks)
number_of_cores = multiprocessing.cpu_count() * 2

for turn in split_every(number_of_cores, all_permutations):
    threads = []
    for _ in turn:
        q.put("".join(_))

    for _ in range(number_of_cores):
        worker_thread = threading.Thread(target=worker, args=[[], BITS])
        worker_thread.daemon = True
        worker_thread.start()
        threads.append(worker_thread)

    while len(threading.enumerate()) > 1:
        time.sleep(10)
 
Last edited:
I'm really just putting that 370Ly bit down to narrative licence, as a means to provide the hint that "The relevant system we need to find is 370Ly away", and that we aren't really meant to read too far into how they refuelled (My own take is simply fuel scoops).
Speculation,
Encrypted message: 'Rendezvous with Fleet Oiler at blah blah proceed with all speed to blah blah secure at any cost blah and all personnel in contact.
Proceed to blah secure base at blah with all speed, avoid occupied space.
Refuelling will be available en route at blah, blah and blah. Maintain comms security at all times. garbled.
 
Last edited:
I'm really just putting that 370Ly bit down to narrative licence, as a means to provide the hint that "The relevant system we need to find is 370Ly away", and that we aren't really meant to read too far into how they refuelled (My own take is simply fuel scoops).
If they was able to refuel anywhere (fuel scoop) then 370ly hint has zero meaning as they could refuel any time anywhere.
It is same like modern explorer jumped out of system with 10t of fuel. Question, can you find him in Beagle? Yes you can - he had fuel scoop.
If you ignoring this inconsistency, then you're allowed to do any non-logical things with anything else though.
 
Last edited:
If they was able to refuel anywhere (fuel scoop) then 370ly hint has zero meaning as they could refuel any time anywhere.
It is same like modern explorer jumped out of system with 10t of fuel. Question, can you find him in Beagle? Yes you can - he had fuel scoop.
Like I said, it's just some narrative licence. Or the Adamastor simply lied about the amount of fuel they were carrying to provide a misdirection.

Either way, when it comes to narrative licence, look too closely and you see the guys in black holding the strings. Just look where telepresence gets us :/
 
Like I said, it's just some narrative licence. Or the Adamastor simply lied about the amount of fuel they were carrying to provide a misdirection.

Either way, when it comes to narrative licence, look too closely and you see the guys in black holding the strings. Just look where telepresence gets us :/
Yeh...that's a good question to next update :D when we will walk/drive in flesh.
 
Planet 3 for the base?
Spoilers here, so if you want to go check it yourself, don't read on.

seriously. Last chance
I logged off in Musca Dark Region PJ-P B6-1 3, being the first landable in the nearest system in Coalsack with an Ammonia planet. Thargoids, right?

so, on the planet is:
  • A bunch of Barnacles
  • Murphy's Geology Site with some audio logs
  • A thargoid crash site
  • A "Blank" site which has an inty sucking up some green ground.

I'm about to go inspect closer.

View attachment 193216
Yup!
 
Yeah, no idea why i didnt check the first page 🤪 :sleep: so yeah. This LP must point to where we already know.

Could be something else in the LP code but.... hmm im not seeing it
How are you reading that from the LP code atm? (I'm only partially looking atm, so not fully focused on how you're reaching that)

NM, reading ftw XD
 
How are you reading that from the LP code atm? (I'm only partially looking atm, so not fully focused on how you're reaching that)

NM, reading ftw XD

Trust me. I'm seeing numbers even when not looking at forum pages and LP codes right now i have examined that code TOO many times.. in various positions :LOL:

I think @Michael Whatever is on to something here!
 
Trust me. I'm seeing numbers even when not looking at forum pages and LP codes right now i have examined that code TOO many times.. in various positions :LOL:

I think @Michael Whatever is on to something here!
So, interestingly between LONG and 615 LY, there's 32 positions difference... since we're splitting on 8's, it makes sense that the unscrambling would "synch up" again at that point.

I'm gonna write some slightly different code to try something out... see if I can't find words like "Class", "Lat" or other coords.
 
So, interestingly between LONG and 615 LY, there's 32 positions difference... since we're splitting on 8's, it makes sense that the unscrambling would "synch up" again at that point.

I'm gonna write some slightly different code to try something out... see if I can't find words like "Class", "Lat" or other coords.

Good luck (y) while your doing that.. i really need to go to bed :LOL: 4:45am here... last time i checked it was 12am!

Catch you all later

o7
 
Hey guys I just wanted to mention that the 1..ly from the ships log is translated as 1ly in the Spanish version. It could be a translation error.
But what's 1 ly away from the A star? It wouldn't make sense for the ship to jump 1 ly away from the main star. Or is there something on that system that is 1 ly from the star?
 
Back
Top Bottom