This code has a length of 19 characters, so that excludes rectangles from the start.
No explicit numbers or things that we could make numbers in all the right positions, so we’ll probably need some cipher first.
When running this code through the normal initial checks, there is something that draws our attention.
[hint]
What do you see at the end?
Did you see the cow?
[/hint]
Running the code through the Multi-ROT, we see that with ROT 20 we have a good looking, albeit reversed, string. cowtpninkurhtncwvif
Since the written numbers are in reverse order, turn around the string fivwcnthrukninptwoc
Substitute out the numbers to see what we have left. 5wcn3uk9p2c
Now we know that u is not a valid keyword, so a substitute will be needed.
It can resemble a few glyphs which are all valid keywords (present/now, potential), but they all lead to invalid codes this time.
Think back to the days before Smartphones and Instant Messengers, back to when you only had 160 characters for a Short Text Message, back when abbreviations made sense to use.
From that we recall that you can also be written as u.
This is also be called 1337-Speak (Leet-speak).
Substitute the u with you for the final solve. 5wcn3youk9p2c
Code #2
Observations
We have a range of numbers, letters and symbols.
Since there were only two codes hidden in the sourcecode, it is safe to assume that this code might contain two different passcodes.
Part of the <span> tag where this code was hidden, we have a hint of font-size: 3px;.
We also notice a lone HTML encoded character in the string: & is the HTML encoding for &
[hint]
There are two rabbit holes down which you can tumble towards valid passcodes.
Look at the hint and what we see in the code.
[/hint]
Let us assume for now that the HTML encoded & should be decoded first, replace that section with just an &.
We can always code back later if we do get stuck.
First code
For the first code, separate the different types of characters that we have in the code to see the rabbit hole.
e f f e b b f e f g d f f f
% % %%^ ^ % % %@ $ & $ ( %% %%% %@ $% $
5554 7 5555 9515 5 5 5 535 5 5 51 55 457 53
Remember that the hint was 3, which fits nicely with our groups and what they show us.
See that there are never two letters next to each other and we have a good spread of the other two lines?
Also notice that when thinking of the passcode format that we are looking for, that the numbers parts of the format has 5 symbols between two letters?
There is one cipher that has 3 different “symbols” where numbers are 5 “symbols” long: Morse (.- and the separator)
Read numbers as ., symbols as - and letters as separators ....- -. --- .... -.... .-. -.-- -... .- - -.-- ..--- --.. --... -..
Convert morse to text for the solve 4NOH6RYBATY2Z7D
Second code
For this second code, we’ll need to do something that you probably already thought of:
What happens when you convert those symbols to their QWERTY-Keyboard US layout equivalent?
In the original code (after the & replacement), substitute all the symbols with their QWERTY-US layout equivalent numbers and convert all the letters to their alphabet index where a=0 and z=25 55545457555655555469515155515552545354575469555351555552555454575453
Group the numbers into pairs of 2 55 54 54 57 55 56 55 55 54 69 51 51 55 51 55 52 54 53 54 57 54 69 55 53 51 55 55 52 55 54 54 57 54 53
Convert this from Decimal to Text 766978776E33737465696E753774766965
Interesting, another bunch of numbers with some E in there, that might point to a Hex conversion now.
Pair up the characters again into pairs of 2 76 69 78 77 6E 33 73 74 65 69 6E 75 37 74 76 69 65
Convert from Hex to Text for what seems to be almost a finished passcode. vixwn3steinu7tvie
Substituting the roman numerals with numbers, we get a formatted, but invalid passcode 6xwn3steinu7t6e
Although stein is a valid keyword in general, it is not the keyword that would make this a valid passcode.
From the Niantic Project Wiki we learned that Stein is the first name for Stein Lightman.
Substitute stein with lightman for the final solution. 6xwn3lightmanu7t6e